丸の内MongoDB勉強会 #16

野村総合研究所さんを会場に行われました「丸の内MongoDB勉強会 #16」のTweetをまとめました。主にぼくがせこせこタイプしたものなので特に最後の方の質疑応答は拾いきれてない(記録が間違ってる)可能性があります。気づいた人コメント下さい。修正します。
1
Naruhiko Ogasawara @naru0ga

#mongonouchi ケース4:ログ情報の蓄積。様々な形式のログを蓄積可能。キャップ付きコレクションでログローテートが楽。貯めといて他で集計とかイイネ。レプリケーションで冗長化。

2014-03-19 19:56:10
Naruhiko Ogasawara @naru0ga

#mongonouchi NRI。fluentdでログかき集めてMongoDBにぶっこむ。いろんなサーバを見て回らなくてよくなり障害対応効率UP

2014-03-19 19:57:32
Naruhiko Ogasawara @naru0ga

#mongonouchi パターン1〜4は割と今までの教科書通り。MongoDBの使い方として新たなパターンが登場してきた。それをこれから紹介。

2014-03-19 19:58:23
Naruhiko Ogasawara @naru0ga

#mongonouchi パターン5:データ統合。多数の分散された既存データベースをMongoDBに集約してビューとして見る。既存のデータベースには手を入れない。アプリに対してビューを提供する感じ。

2014-03-19 19:59:29
Naruhiko Ogasawara @naru0ga

#mongonouchi ペタデータ社。データ統合を専門にするSIer。音楽配信実績情報のアグリゲーション。スキーマが揺れるのでMongoDBがいい。手作業が減って嬉しい。

2014-03-19 20:03:50
Naruhiko Ogasawara @naru0ga

#mongonouchi もいっちょペタデータ社。製薬会社の温度センサー網の集積。センサー情報が変更されることがありテーブル書き換えが辛い。INPUTはXMLだったのでツリー構造として取り込みたい。JSONいいね。

2014-03-19 20:05:27
Naruhiko Ogasawara @naru0ga

#mongonouchi パターン6:データハブ。いろんなアプリケーションといろんなデータベースがあってネットワーク的構成になってるとき、MongoDBを間に入れることでデータのI/OをMongoDBにまとめることができシステムがすっきりする。

2014-03-19 20:06:37
Naruhiko Ogasawara @naru0ga

#mongonouchi グローバル信託銀行の例。うーむ。細かいとこ聞き落とした。まあいいや。すんません

2014-03-19 20:07:49
Naruhiko Ogasawara @naru0ga

#mongonouchi パターン7:拠点間連携。各拠点をまたがってレプリカセットを組むことによって、すべての拠点で同じデータを見ることができる。WRITE CONCERNやhidden,delayedノードを使うことで柔軟な構成が可能。

2014-03-19 20:09:30
Naruhiko Ogasawara @naru0ga

#mongonouchi 再びグローバル信託銀行。今まではバッチでコピってて最大36時間の遅れが起きてたけど、自動レプリケーションを利用してSLAの違約金大きく節約!

2014-03-19 20:11:18
Naruhiko Ogasawara @naru0ga

#mongonouchi ビデオオンデマンド業者。ビデオのメタデータやユーザの行動履歴などを格納。スキーマが揺れる。日本全国にデータを分散させたい。商用DB高いのでMongoDBで。ただし課金部分はRDBMSを使ってます

2014-03-19 20:12:45
Naruhiko Ogasawara @naru0ga

#mongonouchi 最後にMongoDB Incのお話。去年約150億円の増資を受けた(業界の期待値)。昔はエンジニアカンパニーだったけど最近ビジネススタッフも増えてる

2014-03-19 20:15:53
Naruhiko Ogasawara @naru0ga

#mongonouchi 単なるDB屋ではなくてDBをコアにしたソリューションを提供する会社になりつつある。日本でもそういう話が増えるといいですね :)

2014-03-19 20:17:11
Naruhiko Ogasawara @naru0ga

#mongonouchi 事例が増えればユーザーも増えてまた事例が増えていいサイクルになる。MongoDBには(少し古い)悪い噂があるので事例で上書きしたい。事例PLZ!

2014-03-19 20:19:01

ここから書き写すのいっぱいいっぱいで解釈とか間違えてる可能性あるので聞いてた人「あれ、なんか違わね?」とか思ったら指摘して下さい。

Naruhiko Ogasawara @naru0ga

#mongonouchi 窪田さんによる補足。拠点間連携がなぜMongoDBでうまく行くか。実はMongoDBはマスターから常にデータをシンクするわけではない。近くになってレイテンシが低いところから適当にコピーする。なのでプライマリーの負荷が上がらない。すばらしい。

2014-03-19 20:21:37
Naruhiko Ogasawara @naru0ga

#mongonouchi 窪田さんによる補足その2。データハブについて。Javaにはmuleってデータハブがあるんだけど遅いし高い。MongoDBでJSONで統一するというのは賢いしいいと思う。

2014-03-19 20:23:07
Naruhiko Ogasawara @naru0ga

#mongonouchi Q.ログ収集ってホントに得意なの?ネットで苦手って聞いたんだけど。A.(窪田さん)解析でMongoDBのMapReduce使うとイマイチ。時系列で解析したいのでスケールしない。どう解析するかは考えたほうがいい。貯めるだけなら問題ない。

2014-03-19 20:24:47
Naruhiko Ogasawara @naru0ga

#mongonouchi fluentdのTreasure DataのバックエンドはHIVEだけど同じように単位時間内のクエリが集中すると他のノードは空いてても一部のノードが詰まることがある。MongoDBだけの話ではない。

2014-03-19 20:28:10

と、思ったら、ちょっとツッコミをもらいました。たしか長い時間ログを貯めた状態で短い時間に対してMapReduceすると性能が出ないけど、それはMongoDBでなくても一般論としてそうだよという話だったと記憶しているのですが……。

SKS rep @repeatedly

@naru0ga 「Treasure DataのバックエンドはHIVEだけど同じように単位時間内のクエリが集中すると他のノードは空いてても一部のノードが詰まることがある」ってどういう意味か分かります?MapReduceの話ですかね?

2014-03-19 21:21:25
Naruhiko Ogasawara @naru0ga

@repeatedly すみません、ぼくの聞き取りと要約が適切でなかった可能性も高いですが、MapReduceの文脈だったのは確かです。

2014-03-19 21:30:34
SKS rep @repeatedly

@naru0ga なるほど.クエリによってはreducerが分割できなくて詰まる云々の話ですかね…

2014-03-19 21:41:39