レポート

「第2回 MongoDB JP 勉強会 in Tokyo」レポート

この記事を読むのに必要な時間:およそ 6 分

@yamaneko1212さん「地理空間インデックスを使ったWebアプリケーション」

@yamaneko1212さんからはMongoDBの地理インデックスについて説明していただき,それを活用したWebアプリケーション,G#(現在開発中)がデモとともに紹介されました。

@yamaneko1212氏

Webアプリケーション紹介

G#はTwitterのハッシュタグに位置情報を付与してそれをGoogleMap上に可視化することができるサービスです。これから色々おもしろい機能が実装されていくとのことで,今後が非常に楽しみです。

地理空間インデックス

G#で使われる位置情報はMongoDBに格納され,MongoDBの提供する地理情報に対する各種の機能を利用して可視化や検索を可能にしています。そこでMongoDBにおける地理情報データの具体的な扱い方をサンプルコードとともに説明されました。次に,散り空間インデックスを利用する際の注意点,v.1.7からSphereクエリが利用可能なこと,Sharding環境では未対応(2011前半中に対応するらしいです)であることが紹介されました。

WebアプリケーションとMongoDB

WebアプリケーションでMongoDBを使用する際における以下の注意点を,PythonのWebフレームワークであるDjangoを例にして紹介されました。

  • 設計レベルでの複雑性の低減のために,データを抽象化したオブジェクトを使うこと
  • カジュアルなドキュメント指向の危険性を指摘し,安易なスキーマ設計を行わないこと

おまけ(デマったーの紹介など)

さらにMongoDBを採用しているサービス,デマったーが限定で公開されました。非常におもしろい展開になりましたので,詳細はビデオをご覧ください。

筆者の感想

実際のWebアプリケーションへのMongoDBの活用例(かつ地理情報インデックスを利用した貴重な例)として貴重なお話が聞けました。何より@yamaneko1212さんが話し上手で,常に笑いが絶えない発表となりました。今後もこのような具体的なサービスを見ながらバックで利用しているMongoDBを紹介する,といった形態が増えてくるといっそう理解が深まると良いですね。

@joe_hrmnさん「Tachy with MongoDB」

MongoDBを実サービスで大規模運用を行われているサイバーエージェントの @joe_hrmn さんが現在プレリリース中の実名SNS制サービス「Tachy」におけるMongoDBの利用事例が紹介していただきました。

@fjoe_hrmn氏

システム構成

Tachyを構成する主な技術構成は「MongoDB+ActiveMQ+MySQL」となっています。MongoDB v.1.6.5(現在の最新Stable版)を,Replica Set + Sharding環境で利用されています。言語はJavaで,あわせてmorphiaライブラリを使用されているとのことです。

MongoDBの使いどころ

TachyのデータがMongoDBにどのように格納されているのか,実際のコレクションの紹介とともに使いどころが説明されました。特に,紹介されたコレクションは発言やコメントを取得する⁠Entry⁠⁠・ユーザーのタイムラインを取得する⁠Timeline⁠⁠,Room情報を取得する⁠Room⁠⁠,それらの具体的なスキーマ構成やデータ挿入の方法が説明されました。

苦労した話・これから

1件ずつのインサートには非常に時間がかかるためBulk Insertを活用したこと,Masterのスイッチングがうまく行われないこと,Sharding環境ではSlaveへの書き込みを可能にする⁠Slave OK⁠コマンドが効かない,といった問題点やTipsが紹介されました。また,今後はより複雑なクエリでの性能検証やコレクション構成の再検討,バックアップ・リストアの検証などを予定されているとのことです。

筆者の感想

まだ正式な発表のないサービスを具体例に話をしていただくという貴重な機会でした。ソーシャルサービスでのMongoDBの活用について,頻繁に書き込みのあるTimelineデータを格納する仕組みなど,大変参考なるお話が多かったと思います。これを期に,今後もソーシャルサービスでのMongoDB活用例が増えてくることを楽しみにしています。また,サービス開発とともに,MongoDBのパフォーマンスを今後もどんどん検証予定とのことですので,次回の発表を期待しています。

懇親会

懇親会もたくさんの方が参加され,大いに盛り上がりました。

@fjoe_hrmn氏

今後のmongotokyoの活動について

毎月開催の「MongoDB勉強会」に加え,「MongoDBソースコードリーディング勉強会」・「スキーマデザイン討論会」

mongotokyoは今後も勢力的に活動を続けて行きたいと思っています。毎月開催の「MongoDB勉強会」を中心に,今回の勉強会・懇親会で要望の多かった「MongoDBソースコードリーディング勉強会⁠⁠・⁠スキーマデザイン討論会」も開催を検討しています。まずは5月中旬に「第3回MongoDB勉強会」を開催予定です。この勉強会に向けての発表者・スタッフを募集を開始いたします。筆者のTwitterアカウント @doryokujin かメールアドレス mr.stoicman[at]gmail.com まで連絡をお待ちしております。

Production Deploymentsなどのメディアへの掲載

また,企業でMongoDBを導入されている方には本家サイトの Production Deployments をはじめとしたメディアに掲載して頂ける様に働きかけて行きますので筆者にお気軽にお声掛けください。現在すでに Preferred InfrastructureVuzzが掲載されています。また近日, CyberAgent芸者東京エンターテインメントも掲載される予定です。

その他ドキュメントの整備など

MongoDBはv.1.8が登場し,多くの機能の改善がもたらされました(リリースノートはこちら⁠。それを日本語ドキュメントにも反映させていくなど,日本語ドキュメントの整備をよりいっそう進めて行きたいと思います。今後ともMongoDBをよろしくお願いします。

著者プロフィール

井上敬浩(いのうえたかひろ)

MongoDB JP主催者。MongoDB日本語ドキュメント訳もしています。芸者東京エンターテインメントGTE所属(データマイングエンジニア)。Hadoop,MongoDB,GraphDB(Neo4j),Redis等を使用して,大規模かつ複雑なソーシャルデータの解析を行っています。解析技術においては業界一を本気で目指しています。

Twitter:@doryokujin