「第1回 MongoDB JP & CouchDB JP 合同勉強会 in Tokyo」を開催してきました!

こんにちは、@です。本日は12月12日(日)行われました「第1回 MongoDB JP & CouchDB JP 合同勉強会 in Tokyo」の報告をします。当日は忙しい時期にも関わらずたくさんの人に参加していただきました。会場準備で色々を手間取ってしまいましたが、会場提供者のニフティさんと参加者の皆様の暖かいご協力もあって無事に勉強会を終えることができました。どうもありがとうございました!また、当日はgihyo.jpさんの協力のもと、Ustream配信も行いました。このUstream動画と共に勉強会報告の方をgihyo.jpさんの方にも書かせていただく予定ですのでぜひともそちらの方も宜しくお願いします。今回の勉強会のツイートがまとめられたTogetter:第1回 MongoDB JP & CouchDB JP 合同勉強会 in Tokyoもなかなかが臨場感があって面白いですね。
当日の発表内容はこちらになります:

  • 「MongoDB_JP 今後の活動計画」:@
  • 「MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜」: @
  • 「Ameba PicoとMongoDB」:@
  • 「Big Couch & CouchDBからのお知らせ」:@
  • 「PostgresSQLからMongoDBへの以降 -アシストオン通販サイトでの実際-」: @
  • 「センサーデータストアとしてのCouchDB 〜そうだ、Couchに入れよう。〜」:@
  • 「MongoDBと位置情報 〜地理空間インデックスの紹介〜」:@
  • CouchDB on Androidでスタンドアローンアプリ。」:@

MongoDB_JP 今後の活動計画

僕の方からは前説としてMongoDB JPの今後の活動計画についてお話しさせて頂きました。ここでの本題は、直近の大きな目標として2011年3月に「MongoDB Conference in Japan」を開催したいという宣言です。(数百名規模を収容する)会場提供者・発表者・スポンサー・協力者を広く募っております。どうぞ宜しくお願いします。

MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜

今回も相変わらずログ解析におけるMongoDBの活用事例をお話しさせて頂きました。3ヶ月以上MongoDBを解析データサーバーとして使ってきて改めて感じるのは、検索クエリの豊富さ、コンソールの扱いやすさ、node.jsやRESTといった機能によるデータの取り出しやすさに非常に助けられているということです。解析者に優しいデータベース、それがMongoDBです。また最近データ量が増えてHadoopとの連携がより重要になってきています。MongoDBの開発元である10genもHadoopとの連携を積極的に進めているようですので今後の動向に注目しつつ、それらの機能は積極的に検証していきたいと思います。

Ameba PicoとMongoDB

@さんからは、累計登録ユーザー数 3,000,000、MAU 560,00を誇る大人気サービスAmeba Pico(アメーバピグの海外版)のMongoDBでの運用について、その具体的な方法と注意点などについてお話していただきました。日本でのMongoDBでの運用事例は非常に稀少ですし、ましてやShardingやReplicationをいったスケーラビリティを考慮しないといけない大規模についての事例はとても貴重です。AmazonEC2での具体的なサーバー構成をお話ししていただいた後、遭遇した様々な問題点とその対象方法を具体的に述べていただきました。例えばShardingが偏ってしまう問題はfoursquareでも発生していて、それにどう対処するのかなどは非常に参考になりました。さらにサーバー負荷のモニタリング方法やJava Asynchronou Driverの開発など、ハイレベルなMongoDBの活用事例に見習うところはたくさんありました。本当にありがとうございました!

Big Couch & CouchDBからのお知らせ

@さんからは CouchDBCouchDB JPの2010年の活動を振り返えったあと、Big Couchについてお話ししていただきました。CouchDB JPの皆様は非常に精力的な活動を続けられていますので、MongoDB JPの方も負けじと頑張っていきたいですね。
CouchDBとは何か、Big Couchとは何かの紹介を面白くわかりやすく紹介していただいたあと、Big Couchの仕組みと動かし方を詳細に発表していただきました。特に実際の動かし方の手順をわかりやすく述べて頂いたあと、様々な実験検証を行い、q: シャード数・n: 複製するシャード数・w: 書き込み保証数・r: 読み込み保証数のトレードオフと、それによる運用の難しさをお話ししていただきました。素晴らしい内容でした。ありがとうございました。また、@さんはnode.jsに関して色々と活動をされているみたいなので、そちらの方にも注目・期待しております。

PostgresSQLからMongoDBへの移行 -アシストオン通販サイトでの実際-

@さんからは、構造がしっかりしていないといけないECサイトながら、様々なオーナーの要望に応えないといけないという状況の中でその双方の制約を叶えるのがMongoDB、というステキなイントダクションの後に、原宿の人気セレクトショップのECサイトアシストオン通販サイトを事例にしたMongoDBを使った環境への移行についてお話ししていただきました。元々の構成(PostgresSQL + PHP)から新しい構成(MongoDB + Lithium)への移行について、LithiumでどうMongoDBからデータを取得するのか、その時にどういった所に注意する必要があるのか、その方法と注意点が非常に具体的で非常に参考になりました。さすが@さん、非常に話し上手でわかりやすい、最後まで魅力的な発表でした。ありがとうございました。

センサーデータストアとしてのCouchDB 〜そうだ、Couchに入れよう。〜

@さんからは、CouchAppを使ってとにかくあらゆるデータをCouchDBに入れていこうという話。なんとそのデータの対象が家の中のセンサーデータという斬新な題材であったので、会場は大いに盛り上がりました。「Arduino + ethernet shield + センサー」をCouchDBでモニタリングすれば数千円でオール電化が実現しますとのこと(笑)。SDカードにCouchDBを入れて、ACアダプタサイズのサーバに挿入すれば簡単にホームサーバーのできあがり。構築なんて必要無い、Relax。CouchDBの良さを活かした面白いプレゼンでした。ありがとうございました。sensmonは商標登録した方がいいですね。

MongoDBと位置情報 〜地理空間インデックスの紹介〜

@さんからはMongoDBの特徴的な機能でありながら実はあまり知られていない(かもしれない)地理空間インデックスについて、丁寧にお話ししていただけました。2次元の地理空間情報インデックスして検索が行える機能がver.1.3.3以上で使えるようになりました。Indexの作成の仕方から$near、$maxDistanceなどのクエリ使った検索の仕方について、具体例とともに紹介していただきました。しかし「地球は丸かった」(笑)ということで平面上での近傍検索しか行えない先ほどのクエリに対して、$Sphere という球体情報を考慮した画期的なクエリ(ver.1.7)についてお話し頂きました。非常にエキサイティングで面白かったです。ありがとうございました。

CouchDB on Androidでスタンドアローンアプリ。

@さんからは最後の締めを飾るにふさわしく、まさに漢の家計簿管理方法:CouchDBJQueryとCouchAppを用いた家計簿管理アプリ」についてデモともにわかりやすくご紹介いただきました。ポイントはJavaScriptのみで書かれたスタンドアローンアプリであることで、それだけで簡単に実務に役立つアプリが作れてしまうということです。CouchDBの面白いところですね。最後にCouchDBjquery-mobileで使用する際の注意点などをお話ししていただきました。CouchDBとモバイル端末との連携はアツいですね、今後に期待です。ありがとうございました。

最後に

ユーザーグループの主催、勉強会の主催というのを今回初めて経験させてもらっていますが、非常に楽しく刺激的でもあり、一方で色々と大変だなぁというのが正直な印象です。しかしそこに非常にたくさんの方々の協力支援があって、着々と良い方向に向かって前進していることを確信しています。これからも皆様のお力を借りながら、これらの活動がもっとたくさんの人達を巻き込んで、ハッピーにしていけたらなぁと思っています。いつも助けていただいている皆さん、本当にありがとうございます。今後ともどうぞ宜しくお願いします。