SlideShare a Scribd company logo
2011/03/02 増田謙䞀
                     Mongo Tokyo のレポヌト


抂芁
 Mongo Tokyo ずは、NoSQL のなかでも昚今泚目を济びおいる MongoDB に関するカンフ
       1)
ァレンスである 。 カンファレンスでは、10gen の開発者である Roger Bodamer の講挔や、
㈱芞者東京゚ンタヌテむンメントや㈱サむバヌ゚ヌゞェント等で導入された事䟋が玹介さ
れ、MongoDB の仕組みずケヌススタディを䌺うこずができた。このレポヌトの目的は、その
情報を共有するこずにある。


MongoDB ずは
                                                 2)
 昚今 NoSQL が泚目を济びおおり、昚幎行われた NoSQL afternoon in Japan での事䟋か
らも分かるように囜内倖含め倚くの NoSQL が開発されおきおいる。そのなかでも、珟圚
MongoDB は月 12 䞇のダりンロヌドがなされ、非垞に泚目を济びおいる NoSQL の䞀぀で
ある。䞊述した NoSQL afternoon のずきには、 9 䞇ダりンロヌドず説明されおいたため、
                              月
ここ 3 ヶ月でもダりンロヌド数を着実に䌞ばしおきおおり、非垞に泚目されおいるこずが分
  2)
かる 。導入事䟋も 1000 プロダクトを超え、囜内でも導入䟋が増えおおり、これからも曎な
る䌞びが期埅される NoSQL ず蚀えるだろう。


MongoDB の仕組み
 MongoDB は極めお簡単なコマンドでデヌタの挿入、怜玢を行うこずができる。ここでは
NoSQL afternoon で発衚された資料も亀えお説明しおいく。 1 図はブログの蚘事を、
                                   第            タグ
を぀けおそのたた挿入するコマンドである。




                            3)
 第 1 図MongoDB におけるデヌタの挿入




                             1
MongoDB は BSON ず呌ばれる JSON をバむナリ化した圢匏でデヌタを扱っおいるが、
衚面的には JSON ず倉わらない圢で操䜜するこずができ、䞊蚘の䟋でも JSON ずほが同じ
圢で「p」に代入されおいるのが分かる。次に怜玢を芋おみよう。




                        3)
 第 2 図MongoDB における怜玢


 第 2 図では、タグが存圚する蚘事、著者名が k から始たる蚘事、著者名が roger の蚘事、を
怜玢する䟋が描かれおいる。MongoDB のみならず NoSQL の利点ずしおスキヌマフリヌず
いう点が挙げられ、そのために正芏衚珟や自由な蚘述によっおデヌタを怜玢しやすくなっ
おいる。したがっお、倚くのデヌタをできるだけ取り蟌み、必芁に応じお、必芁なデヌタを怜
玢するのに極めお向いた仕組みずも蚀えるだろう。逆を蚀えば、そういった偎面を匷調しお
いるため、合蚈倀を取るなど耇数のデヌタを合わせお䜕かを行うずいうこずがしにくいず
いう偎面もある。


MongoDB の䜍眮づけ
 このようにスキヌマフリヌでデヌタを自由に扱える MongoDB であるが、Roger は KVS
ずも RDBMS ずも異なった䜍眮づけを行っおいる。資料があがっおないので、ここはあず
で 




MongoDB ケヌススタディ
 今回の MongoDB Conference では、㈱芞者東京゚ンタヌテむンメント、㈱サむバヌ゚ヌゞ
ェント、 Preferred Infrastructure、
    ㈱                         関心空間の事䟋が玹介された。そのなかでも、㈱芞者東
京゚ンタヌテむンメント、㈱サむバヌ゚ヌゞェントに泚目しお、玹介する。


                             2
㈱芞者東京゚ンタヌテむンメントに関しおは、@doryokujin さんが発衚を行った。実䟋ず
しおは、「おみせやさん」ずいう゜ヌシャルアプリでログ解析のバック゚ンドずし お
MongoDB を䜿っおいるずいうものであった。




                                   4)
 第 3 図おみせやさんのバック゚ンド偎のアヌキテクチャ


「䞭心的なデヌタサヌバAs a Central Data Server」ず曞かれおいるように、あらゆる
ログが MongoDB に流し蟌たれる。デヌタ量は、圧瞮した状態でアクセスログ䞀日 15GB、行
動ログ䞀日 5GB ずなっおいる。そしお、MongoDB に入ったこのログを曎に MongoDB 偎で
グルヌプ集蚈を行い、フロントぞず提䟛を行う。




                          4)
 第 4 図おみせやさんのフロント偎の UI


                               3
このようにおみせやさんでは、過去䞀日分のデヌタを MongoDB 䞊で様々な操䜜を行い、
敎圢した䞊でフロントに提䟛するこずを行っおいる。MongoDB は自身でも map や reduce
ができ、hadoop 含め分散環境にも察応しおいるので、過去のログを集蚈する䟋ずしお行っ
たのがこのおみせやさんの䟋ず蚀えるだろう。


 次にみるのは、@snamura さんが発衚されたアメヌバピコでの MongoDB の導入事䟋で
ある。MongoDB 自䜓は半幎ほど前からピコで導入されおいるようだが、今回の発衚ではピ
コの環境䞋で行われるできごずをリアルタむムでフロント偎に返す際のケヌススタディに
぀いお玹介がなされた。ただ開発䞭か぀管理甚のツヌルであるため、ナヌザにも枡すような
デヌタの扱いはしおいないこずは留意すべきだろう。




                                 5)
 第 5 図アメヌバピコの解析システムのためのサヌバ構成


 この図から分かるようにサヌバサむドに node.js を甚い非同期通信で凊理をさせ、そのデ
ヌタを MongoDB に流しこむずいうこずを行っおいる。そしお、珟圚開発されおいる管理偎
のフロントが以䞋のようになっおいる。




                         4
5)
 第 6 図ピグのフロント偎レポヌトシステム


 この図の䞭心郚にあるリアルタむム販売デヌタは珟圚ピコで販売されたデヌタが、即時
に反映されおすぐ曎新されるような仕組みずなっおいる。MongoDB の利点ずしお、スキヌ
マがないため、たずえアむテムの項目に䜕か远加があったずしおも、カラム定矩などは䞀切
無く、単にデヌタを投入すればよいだけであり、その点で倉曎の倚い゜ヌシャルアプリには
極めお向いた DB でもあったず蚀える。特に node.js のような Javascript や JSON を扱いや
すいシステムずは極めお盞性がよいず仰っおいお、フロントで起きた出来事をすぐ DB に反
映させおレスポンスを返すシステムずしおは、MongoDB は䞀぀の遞択肢ずしおありえるよ
うに感じた。


考察
 MongoDB の実䟋やコマンドのレファレンスなどはここ数ヶ月のあいだだけでも増えお
きたものの、実際の負荷やさばける量に察する考察が少なく、クラむアントで INSERT を発
行しただけで成功を送っおしたい、サヌバ偎の結果を芋おいない郚分があるなど、実際に導
入するずなるずロストしおはいけないデヌタにどこたで䜿えるかは甚だ疑問である。たた
゚ラヌを怜知できる関数があるようだが、その際にパフォヌマンスが萜ちるずのこずで、そ
の点もどの皋床が確認しおいかなければならない。


                             5
たた、第 7 図を芋おいただきたい。




                                      3)
 第 7 図MongoDB におけるレプリケヌションずレプリカセット


 この図はレプリケヌションレプリカセットずいう MongoDB が掚奚する最䜎限のシス
テム構成である。ここから分かるように、マスタヌ・スレヌブ・コヌルドスタンバむによる
3 台構成で䞀぀のレプリカセットが䜜られ、このレプリカセットが耇数個䜜られるこずで、
スケヌルアりトが図られる。特に BSON 圢匏は垞にキヌや括匧を倚く含むため、デヌタ量の
増倧はかなりあるず蚀われおおり、倧量のデヌタをスケヌルアりト環境で挿入しようずし
た堎合に非垞に倚くの台数が必芁になるのは目に芋えおいる。したがっお、 党おを
MongoDB にするのではなく、ログや分散が必芁な郚分ず、提䟛する郚分などに圹割を分け
お運甚しない限り、珟実的なサヌビス提䟛は厳しいように思う。
 しかしながら、node.js ずの盞性含め、内郚運甚ツヌルずしお実隓的に行うなど、営業偎に
瀺す䞀぀の方法ずしおはピコの䟋を芋おいおもありえるように思えた。あずは出来る限り、
倚くのデヌタを投入し、レプリカセット・レプリケヌションをはっお、怜蚌しおいくこずが
求められる。




 ※瀟倖向けに䞀郚改倉したした。




                        6
参考資料
1) Mongo Tokyo: MongoDB conference in Tokyo, Japan.
http://www.10gen.com/conferences/mongotokyo2011. (accessed 2011-03-02)
2) 「 NOSQL afternoon in Japan 」 開 催 の お 知 ら せ  NOSQL の 開 発 者 が 集 た り た す
   http://atnd.org/events/8460. (accessed 2011-03-02)
3) Bodamer,Roger. Mongo db japan.
http://www.slideshare.net/rogerbodamer/mongo-db-japan. (accessed 2011-03-02)
4) Takahiro, Inoue. Social Data and Log Analysis Using MongoDB.
http://www.slideshare.net/doryokujin/social-data-and-log-analysis-using-mongodb. (accessed
   2011-03-02)
5) Suguru, Namura. MongoDB + node.js で䜜る゜ヌシャルゲヌム.
http://www.slideshare.net/snamura/mongodb-nodejs. (accessed 2011-03-02)




                                             7

More Related Content

What's hot

GeoCSVのススメ
GeoCSVのススメGeoCSVのススメ
GeoCSVのススメAyumiShibamoto
 
MongoDBCSharp
MongoDBCSharpMongoDBCSharp
MongoDBCSharpytanno
 
Mongo db䜿っおみよう
Mongo db䜿っおみようMongo db䜿っおみよう
Mongo db䜿っおみようOda Shinsuke
 
Web Packaging - Use cases and Loading
Web Packaging - Use cases and LoadingWeb Packaging - Use cases and Loading
Web Packaging - Use cases and LoadingKinuko Yasuda
 

What's hot (6)

GeoCSVのススメ
GeoCSVのススメGeoCSVのススメ
GeoCSVのススメ
 
MongoDBCSharp
MongoDBCSharpMongoDBCSharp
MongoDBCSharp
 
Mongo db䜿っおみよう
Mongo db䜿っおみようMongo db䜿っおみよう
Mongo db䜿っおみよう
 
20120525 mt websocket
20120525 mt websocket20120525 mt websocket
20120525 mt websocket
 
Web Packaging - Use cases and Loading
Web Packaging - Use cases and LoadingWeb Packaging - Use cases and Loading
Web Packaging - Use cases and Loading
 
Cocos2dx tips
Cocos2dx tipsCocos2dx tips
Cocos2dx tips
 

Viewers also liked

Mid course presentation
Mid course presentationMid course presentation
Mid course presentationsimbachiri
 
6th & waller art fashion event
6th & waller art   fashion event6th & waller art   fashion event
6th & waller art fashion eventstrongdeer
 
20110302 Mongo Tokyo
20110302 Mongo Tokyo20110302 Mongo Tokyo
20110302 Mongo TokyoKenichi Masuda
 
2011-04-09 #qpstudy ケヌブルのお話
2011-04-09 #qpstudy ケヌブルのお話2011-04-09 #qpstudy ケヌブルのお話
2011-04-09 #qpstudy ケヌブルのお話Kenichi Masuda
 
20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"Kenichi Masuda
 
REBGV Stats for Sept 2011 Mike Stewart
REBGV Stats for Sept 2011 Mike StewartREBGV Stats for Sept 2011 Mike Stewart
REBGV Stats for Sept 2011 Mike StewartMike Stewart
 
道具を磚くこずのススメ
道具を磚くこずのススメ道具を磚くこずのススメ
道具を磚くこずのススメKenichi Masuda
 
Mafia for ever
Mafia for everMafia for ever
Mafia for everSkordo
 
Bcm introduction
Bcm introductionBcm introduction
Bcm introductionFiona Connolly
 
September 2015 rebgv statistics package mike stewart
September 2015 rebgv statistics package mike stewartSeptember 2015 rebgv statistics package mike stewart
September 2015 rebgv statistics package mike stewartMike Stewart
 
20110806 LT資料
20110806 LT資料20110806 LT資料
20110806 LT資料Kenichi Masuda
 
May 2016 Real Estate Board of Greater Vancouver Statistics Package
May 2016 Real Estate Board of Greater Vancouver Statistics PackageMay 2016 Real Estate Board of Greater Vancouver Statistics Package
May 2016 Real Estate Board of Greater Vancouver Statistics PackageMike Stewart
 

Viewers also liked (14)

Mid course presentation
Mid course presentationMid course presentation
Mid course presentation
 
砎壊
砎壊砎壊
砎壊
 
6th & waller art fashion event
6th & waller art   fashion event6th & waller art   fashion event
6th & waller art fashion event
 
Forté Institute Introduction
Forté Institute IntroductionForté Institute Introduction
Forté Institute Introduction
 
20110302 Mongo Tokyo
20110302 Mongo Tokyo20110302 Mongo Tokyo
20110302 Mongo Tokyo
 
2011-04-09 #qpstudy ケヌブルのお話
2011-04-09 #qpstudy ケヌブルのお話2011-04-09 #qpstudy ケヌブルのお話
2011-04-09 #qpstudy ケヌブルのお話
 
20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"
 
REBGV Stats for Sept 2011 Mike Stewart
REBGV Stats for Sept 2011 Mike StewartREBGV Stats for Sept 2011 Mike Stewart
REBGV Stats for Sept 2011 Mike Stewart
 
道具を磚くこずのススメ
道具を磚くこずのススメ道具を磚くこずのススメ
道具を磚くこずのススメ
 
Mafia for ever
Mafia for everMafia for ever
Mafia for ever
 
Bcm introduction
Bcm introductionBcm introduction
Bcm introduction
 
September 2015 rebgv statistics package mike stewart
September 2015 rebgv statistics package mike stewartSeptember 2015 rebgv statistics package mike stewart
September 2015 rebgv statistics package mike stewart
 
20110806 LT資料
20110806 LT資料20110806 LT資料
20110806 LT資料
 
May 2016 Real Estate Board of Greater Vancouver Statistics Package
May 2016 Real Estate Board of Greater Vancouver Statistics PackageMay 2016 Real Estate Board of Greater Vancouver Statistics Package
May 2016 Real Estate Board of Greater Vancouver Statistics Package
 

Similar to 20110301 Mongo Tokyo

MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説知教 本間
 
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springichikaway
 
20120831 mongoid
20120831 mongoid20120831 mongoid
20120831 mongoidTakeshi AKIMA
 
初心者向けMongoDBのキホン
初心者向けMongoDBのキホン初心者向けMongoDBのキホン
初心者向けMongoDBのキホンTetsutaro Watanabe
 
比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx
比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx
比ぞ゙おみよう リレヌショナル vs ドキュメント.pptxMariMurotani
 
掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版
掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版
掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版moai kids
 
[倧図解]ピグラむフはこう動いおいる
[倧図解]ピグラむフはこう動いおいる[倧図解]ピグラむフはこう動いおいる
[倧図解]ピグラむフはこう動いおいるAkihiro Kuwano
 
NoSQLデヌタベヌスず䜍眮情報
NoSQLデヌタベヌスず䜍眮情報NoSQLデヌタベヌスず䜍眮情報
NoSQLデヌタベヌスず䜍眮情報Koji Ichiwaki
 
Mongo db勉匷䌚
Mongo db勉匷䌚Mongo db勉匷䌚
Mongo db勉匷䌚otmb
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDBmoai kids
 
MongoDB_JP 今埌の掻動蚈画
MongoDB_JP 今埌の掻動蚈画MongoDB_JP 今埌の掻動蚈画
MongoDB_JP 今埌の掻動蚈画Takahiro Inoue
 
Osc2012.dbに行っおきたした
Osc2012.dbに行っおきたしたOsc2012.dbに行っおきたした
Osc2012.dbに行っおきたしたMasaru Kobashigawa
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろうCROOZ, inc.
 
Mongoざっくり玹介
Mongoざっくり玹介Mongoざっくり玹介
Mongoざっくり玹介masakazuyamanaka
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西Ryuji Tamagawa
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
がっ぀りMongoDB事䟋玹介
がっ぀りMongoDB事䟋玹介がっ぀りMongoDB事䟋玹介
がっ぀りMongoDB事䟋玹介Tetsutaro Watanabe
 

Similar to 20110301 Mongo Tokyo (20)

Mongo db world 2018
Mongo db world 2018Mongo db world 2018
Mongo db world 2018
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説
 
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
 
20120831 mongoid
20120831 mongoid20120831 mongoid
20120831 mongoid
 
初心者向けMongoDBのキホン
初心者向けMongoDBのキホン初心者向けMongoDBのキホン
初心者向けMongoDBのキホン
 
比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx
比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx
比ぞ゙おみよう リレヌショナル vs ドキュメント.pptx
 
掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版
掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版
掲瀺板時間軞コヌパスを甚いたワヌドトレンド解析公開版
 
[倧図解]ピグラむフはこう動いおいる
[倧図解]ピグラむフはこう動いおいる[倧図解]ピグラむフはこう動いおいる
[倧図解]ピグラむフはこう動いおいる
 
NoSQLデヌタベヌスず䜍眮情報
NoSQLデヌタベヌスず䜍眮情報NoSQLデヌタベヌスず䜍眮情報
NoSQLデヌタベヌスず䜍眮情報
 
Mongo db勉匷䌚
Mongo db勉匷䌚Mongo db勉匷䌚
Mongo db勉匷䌚
 
Mongodb
MongodbMongodb
Mongodb
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDB
 
MongoDB_JP 今埌の掻動蚈画
MongoDB_JP 今埌の掻動蚈画MongoDB_JP 今埌の掻動蚈画
MongoDB_JP 今埌の掻動蚈画
 
第回20210710第12−13ç« 
第回20210710第12−13章第回20210710第12−13ç« 
第回20210710第12−13ç« 
 
Osc2012.dbに行っおきたした
Osc2012.dbに行っおきたしたOsc2012.dbに行っおきたした
Osc2012.dbに行っおきたした
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろう
 
Mongoざっくり玹介
Mongoざっくり玹介Mongoざっくり玹介
Mongoざっくり玹介
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
がっ぀りMongoDB事䟋玹介
がっ぀りMongoDB事䟋玹介がっ぀りMongoDB事䟋玹介
がっ぀りMongoDB事䟋玹介
 

20110301 Mongo Tokyo

  • 1. 2011/03/02 増田謙䞀 Mongo Tokyo のレポヌト 抂芁 Mongo Tokyo ずは、NoSQL のなかでも昚今泚目を济びおいる MongoDB に関するカンフ 1) ァレンスである 。 カンファレンスでは、10gen の開発者である Roger Bodamer の講挔や、 ㈱芞者東京゚ンタヌテむンメントや㈱サむバヌ゚ヌゞェント等で導入された事䟋が玹介さ れ、MongoDB の仕組みずケヌススタディを䌺うこずができた。このレポヌトの目的は、その 情報を共有するこずにある。 MongoDB ずは 2) 昚今 NoSQL が泚目を济びおおり、昚幎行われた NoSQL afternoon in Japan での事䟋か らも分かるように囜内倖含め倚くの NoSQL が開発されおきおいる。そのなかでも、珟圚 MongoDB は月 12 䞇のダりンロヌドがなされ、非垞に泚目を济びおいる NoSQL の䞀぀で ある。䞊述した NoSQL afternoon のずきには、 9 䞇ダりンロヌドず説明されおいたため、 月 ここ 3 ヶ月でもダりンロヌド数を着実に䌞ばしおきおおり、非垞に泚目されおいるこずが分 2) かる 。導入事䟋も 1000 プロダクトを超え、囜内でも導入䟋が増えおおり、これからも曎な る䌞びが期埅される NoSQL ず蚀えるだろう。 MongoDB の仕組み MongoDB は極めお簡単なコマンドでデヌタの挿入、怜玢を行うこずができる。ここでは NoSQL afternoon で発衚された資料も亀えお説明しおいく。 1 図はブログの蚘事を、 第 タグ を぀けおそのたた挿入するコマンドである。 3) 第 1 図MongoDB におけるデヌタの挿入 1
  • 2. MongoDB は BSON ず呌ばれる JSON をバむナリ化した圢匏でデヌタを扱っおいるが、 衚面的には JSON ず倉わらない圢で操䜜するこずができ、䞊蚘の䟋でも JSON ずほが同じ 圢で「p」に代入されおいるのが分かる。次に怜玢を芋おみよう。 3) 第 2 図MongoDB における怜玢 第 2 図では、タグが存圚する蚘事、著者名が k から始たる蚘事、著者名が roger の蚘事、を 怜玢する䟋が描かれおいる。MongoDB のみならず NoSQL の利点ずしおスキヌマフリヌず いう点が挙げられ、そのために正芏衚珟や自由な蚘述によっおデヌタを怜玢しやすくなっ おいる。したがっお、倚くのデヌタをできるだけ取り蟌み、必芁に応じお、必芁なデヌタを怜 玢するのに極めお向いた仕組みずも蚀えるだろう。逆を蚀えば、そういった偎面を匷調しお いるため、合蚈倀を取るなど耇数のデヌタを合わせお䜕かを行うずいうこずがしにくいず いう偎面もある。 MongoDB の䜍眮づけ このようにスキヌマフリヌでデヌタを自由に扱える MongoDB であるが、Roger は KVS ずも RDBMS ずも異なった䜍眮づけを行っおいる。資料があがっおないので、ここはあず で  MongoDB ケヌススタディ 今回の MongoDB Conference では、㈱芞者東京゚ンタヌテむンメント、㈱サむバヌ゚ヌゞ ェント、 Preferred Infrastructure、 ㈱ 関心空間の事䟋が玹介された。そのなかでも、㈱芞者東 京゚ンタヌテむンメント、㈱サむバヌ゚ヌゞェントに泚目しお、玹介する。 2
  • 3. ㈱芞者東京゚ンタヌテむンメントに関しおは、@doryokujin さんが発衚を行った。実䟋ず しおは、「おみせやさん」ずいう゜ヌシャルアプリでログ解析のバック゚ンドずし お MongoDB を䜿っおいるずいうものであった。 4) 第 3 図おみせやさんのバック゚ンド偎のアヌキテクチャ 「䞭心的なデヌタサヌバAs a Central Data Server」ず曞かれおいるように、あらゆる ログが MongoDB に流し蟌たれる。デヌタ量は、圧瞮した状態でアクセスログ䞀日 15GB、行 動ログ䞀日 5GB ずなっおいる。そしお、MongoDB に入ったこのログを曎に MongoDB 偎で グルヌプ集蚈を行い、フロントぞず提䟛を行う。 4) 第 4 図おみせやさんのフロント偎の UI 3
  • 4. このようにおみせやさんでは、過去䞀日分のデヌタを MongoDB 䞊で様々な操䜜を行い、 敎圢した䞊でフロントに提䟛するこずを行っおいる。MongoDB は自身でも map や reduce ができ、hadoop 含め分散環境にも察応しおいるので、過去のログを集蚈する䟋ずしお行っ たのがこのおみせやさんの䟋ず蚀えるだろう。 次にみるのは、@snamura さんが発衚されたアメヌバピコでの MongoDB の導入事䟋で ある。MongoDB 自䜓は半幎ほど前からピコで導入されおいるようだが、今回の発衚ではピ コの環境䞋で行われるできごずをリアルタむムでフロント偎に返す際のケヌススタディに ぀いお玹介がなされた。ただ開発䞭か぀管理甚のツヌルであるため、ナヌザにも枡すような デヌタの扱いはしおいないこずは留意すべきだろう。 5) 第 5 図アメヌバピコの解析システムのためのサヌバ構成 この図から分かるようにサヌバサむドに node.js を甚い非同期通信で凊理をさせ、そのデ ヌタを MongoDB に流しこむずいうこずを行っおいる。そしお、珟圚開発されおいる管理偎 のフロントが以䞋のようになっおいる。 4
  • 5. 5) 第 6 図ピグのフロント偎レポヌトシステム この図の䞭心郚にあるリアルタむム販売デヌタは珟圚ピコで販売されたデヌタが、即時 に反映されおすぐ曎新されるような仕組みずなっおいる。MongoDB の利点ずしお、スキヌ マがないため、たずえアむテムの項目に䜕か远加があったずしおも、カラム定矩などは䞀切 無く、単にデヌタを投入すればよいだけであり、その点で倉曎の倚い゜ヌシャルアプリには 極めお向いた DB でもあったず蚀える。特に node.js のような Javascript や JSON を扱いや すいシステムずは極めお盞性がよいず仰っおいお、フロントで起きた出来事をすぐ DB に反 映させおレスポンスを返すシステムずしおは、MongoDB は䞀぀の遞択肢ずしおありえるよ うに感じた。 考察 MongoDB の実䟋やコマンドのレファレンスなどはここ数ヶ月のあいだだけでも増えお きたものの、実際の負荷やさばける量に察する考察が少なく、クラむアントで INSERT を発 行しただけで成功を送っおしたい、サヌバ偎の結果を芋おいない郚分があるなど、実際に導 入するずなるずロストしおはいけないデヌタにどこたで䜿えるかは甚だ疑問である。たた ゚ラヌを怜知できる関数があるようだが、その際にパフォヌマンスが萜ちるずのこずで、そ の点もどの皋床が確認しおいかなければならない。 5
  • 6. たた、第 7 図を芋おいただきたい。 3) 第 7 図MongoDB におけるレプリケヌションずレプリカセット この図はレプリケヌションレプリカセットずいう MongoDB が掚奚する最䜎限のシス テム構成である。ここから分かるように、マスタヌ・スレヌブ・コヌルドスタンバむによる 3 台構成で䞀぀のレプリカセットが䜜られ、このレプリカセットが耇数個䜜られるこずで、 スケヌルアりトが図られる。特に BSON 圢匏は垞にキヌや括匧を倚く含むため、デヌタ量の 増倧はかなりあるず蚀われおおり、倧量のデヌタをスケヌルアりト環境で挿入しようずし た堎合に非垞に倚くの台数が必芁になるのは目に芋えおいる。したがっお、 党おを MongoDB にするのではなく、ログや分散が必芁な郚分ず、提䟛する郚分などに圹割を分け お運甚しない限り、珟実的なサヌビス提䟛は厳しいように思う。 しかしながら、node.js ずの盞性含め、内郚運甚ツヌルずしお実隓的に行うなど、営業偎に 瀺す䞀぀の方法ずしおはピコの䟋を芋おいおもありえるように思えた。あずは出来る限り、 倚くのデヌタを投入し、レプリカセット・レプリケヌションをはっお、怜蚌しおいくこずが 求められる。 ※瀟倖向けに䞀郚改倉したした。 6
  • 7. 参考資料 1) Mongo Tokyo: MongoDB conference in Tokyo, Japan. http://www.10gen.com/conferences/mongotokyo2011. (accessed 2011-03-02) 2) 「 NOSQL afternoon in Japan 」 開 催 の お 知 ら せ  NOSQL の 開 発 者 が 集 た り た す http://atnd.org/events/8460. (accessed 2011-03-02) 3) Bodamer,Roger. Mongo db japan. http://www.slideshare.net/rogerbodamer/mongo-db-japan. (accessed 2011-03-02) 4) Takahiro, Inoue. Social Data and Log Analysis Using MongoDB. http://www.slideshare.net/doryokujin/social-data-and-log-analysis-using-mongodb. (accessed 2011-03-02) 5) Suguru, Namura. MongoDB + node.js で䜜る゜ヌシャルゲヌム. http://www.slideshare.net/snamura/mongodb-nodejs. (accessed 2011-03-02) 7