SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
MongoDBざっくり解説
          ∼「はじめてのMongoDB」を初めて読む方々へ∼




11年12月8日木曜日
自己紹介

          Name:本間 知教(ほんま とものり)
          Twitter:@CkReal
          経歴
              2008年4月∼2011年9月

               国内某ITコンサルティング会社:インフラ担当

              2011年9月∼

               株式会社gumi:インフラand解析チーム

               今週から正社員になりました^^;

          好きなMongoDBの機能:Replica Sets

                                  2
11年12月8日木曜日
はじめに




                                           はじめての


                                                 @doryokujin
                                           日本UNIXユーザ会 勉強会 2011/09/15


                                  http://www.slideshare.net/doryokujin/
              @doryokujinさん                mongodb-9208855


                              3
11年12月8日木曜日
はじめに

          @doryokujinさんはMongoSV出席のため渡米中




                       4
11年12月8日木曜日
発表の目的

          MongoDB人口の増加
              MongoDBの(最低限の)機能紹介

              MongoDBの公式ドキュメントや@doryokujin さん
              の各種資料への誘導

          mongotokyoの登壇者募集
              来年は女性MongoDBエンジニアにも登壇を!




                           5
11年12月8日木曜日
アジェンダ

       1.MongoDBの概要
       2.MongoDBの機能
       3.MongoDBを始めてみる方へ




                      6
11年12月8日木曜日
1.MongoDBの概要




                   7
11年12月8日木曜日
MongoDBの概要
          ドキュメント指向データベース
              JSONでドキュメントを扱う(内部はBSON)

          実装:C++
          開発元:10gen http://www.10gen.com/
          最新版:2.0.1
          ライセンス
              Database: GNU AGPL v3.0 License

              Driver:   Apache License v2.0

          OS:Linux,Mac,Windows,Solaris
          Driver: C , C++, Python, Java, Ruby, PHP, Perl,etc…

                                              8
11年12月8日木曜日
MongoDBの導入事例

          世界中で利用されつつあるデータベース
              解析用途だけではなく、Webサービスでも使われる

              海外の事例




              国内の事例



                        9
11年12月8日木曜日
Mongo Tokyo 2012

          1月18日品川でカンファレンスが開催されます
              12月18日まではEarly Bird料金で参加可能!!




    http://www.10gen.com/events/mongo-tokyo-2012        今年のMongoDB勉強会の様子
                                                   10
11年12月8日木曜日
2.MongoDBの機能




                   11
11年12月8日木曜日
データの保存&検索

          通常のRDBとは、用語が異なる

          RDB               データベース                 テーブル                レコード                   カラム

       MongoDB              データベース コレクション ドキュメント                                         フィールド


                                           MongoDB Server
                           Database                                           Database
              Collection              Collection                 Collection              Collection

      Document      Document    Document    Document        Document   Document    Document    Document


      Document      Document    Document    Document        Document   Document    Document    Document



                                                       12
11年12月8日木曜日
データの保存&検索

          スキーマレス
              カラム追加・削除の手間がない

   # mongo
   > use hoge
   > db.piyo.save({fuga:1})
   > show dbs
   hoge 0.203125GB
   > db.piyo.find()
   { "_id" : ObjectId("4ec5fd452d9d5991cd323c20"), "fuga" : 1 }
                                13
11年12月8日木曜日
データの保存&検索

          トランザクションやJOINがない
              パフォーマンスとスケーラビリティを優先

               挿入・検索速度:MySQL<MongoDB<KVS

          ディスクへの書き込みは非同期
              ジャーナリング機能(v1.8~)の使用を推奨

          インデックスサポート
              あらゆる属性でインデックスを貼れる

                             14
11年12月8日木曜日
ドキュメント例(gumiの場合)
    MongoDBへ格納するドキュメントは、ユーザ/時のアクション状況で格納
    例)MongoDB格納後のログ(一部整形&省略)
       "_id" : "df41b04eb72d29b4a30955f2de1a20134e187cd6f59f0d3df0468d22",
       "app" : "hogehoge",
       "userid" : "12345",
       "dateint" : 20111101,
       "hourint" : 23,                                    ユーザIDごとに、
       "actions" : [
                                                      アクションレコードを格納
            "CONSUME_POWER",
            "ADD_MONEY"
       ],                                            時刻フィールドを利用して、
       "records" : [                                MongoDBのShardingキーとする
          {
             "action" : "ADD_MONEY",
             "timeint" : 235959,                     ユーザごとの各アクションを
          }                                                 配列として格納
       ]
                                        15
11年12月8日木曜日
MongoDBを運用する

          Replica Sets
              更新はPrimary,参照はSecondary

              自動フェイルオーバー機能を持つ

                          自動フェイルオーバーの流れ


                         同期     Primary     同期



                    Secondary             Secondary


                                  16
11年12月8日木曜日
MongoDBを運用する

          Replica Sets
              更新はPrimary,参照はSecondary

              自動フェイルオーバー機能を持つ

                         自動フェイルオーバーの流れ


                                Primary


                                 選出
                    Secondary             Secondary


                                  17
11年12月8日木曜日
MongoDBを運用する

          Replica Sets
              更新はPrimary,参照はSecondary

              自動フェイルオーバー機能を持つ

                         自動フェイルオーバーの流れ


                               Recovering


                                 同期
                     Primary                Secondary


                                   18
11年12月8日木曜日
MongoDBを運用する

          Replica Sets
              更新はPrimary,参照はSecondary

              自動フェイルオーバー機能を持つ

                          自動フェイルオーバーの流れ


                               Secondary
                         同期

                                 同期
                     Primary               Secondary


                                  19
11年12月8日木曜日
MongoDBを運用する

          Mongo Sharding
              Auto-balancing機能を持つ

              Sharding Keyに基づき、コレクションを分割

              Shardingは、3種類のサーバで構成される

               mongos,config,mongod

              Migrationは、Chunk単位で行われる

               document単位ではないことに注意

                                     20
11年12月8日木曜日
MongoDBを運用する

          Mongo Sharding
              mongos経由で、mongodのドキュメントを操作する

    各Shardに関する
  (永続的な)情報を保持


                                実際のドキュメントは、
                                 mongodに格納される

                                クライアントのアクセス
                                は、mongosに対して行う

                           21
11年12月8日木曜日
MongoDBを運用する

          Mongo Shardingの注意点
              Shard KeyはCollection内のどれか1つから選択

              各Shardは、重複しないレンジで分割される

               例)Shard1:0~10, Shard1:11~20, Shard2:21~30…

              分散させやすいKeyを選ぶことが重要

               良い例:ユーザ名,時刻,検索頻度が多いキーなど

               悪い例:大陸名,単純増加のIDなど


                                     22
11年12月8日木曜日
MongoDBを運用する

          Auto-balancingの注意点
               Migration中は、2重にカウントされる

               Auto-balancingはOFFにしておける。
         Shard1                 Shard2                      Shard1                 Shard2
       DatabaseA              DatabaseA                   DatabaseA              DatabaseA
        CollectionA            CollectionA                 CollectionA            CollectionA

    Document   Document    Document   Document         Document   Document    Document   Document

    Document   Document    Document   Document         Document   Document    Document   Document

    Document    Document   Document    Document        Document    Document   Document    Document

    Document    Document                               Document    Document   Document    Document

    Document    Document



      Shardの偏り                                               Migration(Chunk単位で実施)
                                                  23
11年12月8日木曜日
その他

          その他にも機能やTipsがたくさん
              Capped Collection,Map Reduce,GridFS…

              クエリチューニング

          参考文献
              NoSQLデータベースファーストガイド

              MongoDB JPの各種資料

              @doryokujinさんのブログ

                                 24
11年12月8日木曜日
3. MongoDBを始めてみる方へ




               25
11年12月8日木曜日
MongoDBの構築メモ

          MongoDBを動かすのはすごく簡単
              Macでもmac ports,homebrewなどですぐに入る

          様々なログ形式を突っ込めるストレージDB
              挿入・検索速度>一貫性

              データ設計が柔軟に行えるDB

          MongoDBのクエリは豊富
              コマンドを忘れたら、help()で確認

                              26
11年12月8日木曜日
MongoDBの運用メモ

              実運用には十分耐えられる
               約1000万件での検索時間は平均0.066sec

              監視用ツール類も充実
               munin,Ganglia,cacti,ZABBIX,Nagios

              MongoDBを検討する際は、検証期間を取る
               Sharding環境には慣れが必要

               configデータベース内の統計値なども見ておく

                                  27
11年12月8日木曜日
MongoDB勉強会
                     &
              ソースコードリーディング勉強会
 での出席(and登壇)お待ちしております!!



                     28
11年12月8日木曜日
ご清聴ありがとうございました。




                    29
11年12月8日木曜日

Más contenido relacionado

La actualidad más candente

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足CROOZ, inc.
 
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)Ryuji Tamagawa
 
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersHiroaki Kubota
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!Tetsutaro Watanabe
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!Naruhiko Ogasawara
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandMasakazu Matsushita
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについてippei_suzuki
 
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたMongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたhtty_hasumi
 
NoSQLデータベースと位置情報
NoSQLデータベースと位置情報NoSQLデータベースと位置情報
NoSQLデータベースと位置情報Koji Ichiwaki
 
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~Akihiro Kuwano
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストAkihiro Kuwano
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualYasuhiro Matsuo
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説Shoken Fujisaki
 

La actualidad más candente (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
初めてのMongo db
初めてのMongo db初めてのMongo db
初めてのMongo db
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足
 
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
 
はじめてのMongoDB
はじめてのMongoDBはじめてのMongoDB
はじめてのMongoDB
 
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
Case study to use MongoDB in middle-class SIer / (中規模) SIerだってMongoDBできたよ!
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
 
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたMongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみた
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
Cassandra v0.6-siryou
 
NoSQLデータベースと位置情報
NoSQLデータベースと位置情報NoSQLデータベースと位置情報
NoSQLデータベースと位置情報
 
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 

Destacado

MongoDB全機能解説1
MongoDB全機能解説1MongoDB全機能解説1
MongoDB全機能解説1Takahiro Inoue
 
MongoDB全機能解説2
MongoDB全機能解説2MongoDB全機能解説2
MongoDB全機能解説2Takahiro Inoue
 
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能youten (ようてん)
 
MongoDBを使用したモバイルゲーム開発
MongoDBを使用したモバイルゲーム開発MongoDBを使用したモバイルゲーム開発
MongoDBを使用したモバイルゲーム開発Genki Yamada
 
はじめてのMongoDB
はじめてのMongoDBはじめてのMongoDB
はじめてのMongoDBTakahiro Inoue
 
20110514 mongo dbチューニング
20110514 mongo dbチューニング20110514 mongo dbチューニング
20110514 mongo dbチューニングYuichi Matsuo
 
Clojureによるログ収集と解析
Clojureによるログ収集と解析Clojureによるログ収集と解析
Clojureによるログ収集と解析Yoshitaka Kawashima
 
世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート
世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート
世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムートtora_ana
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testingussy
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日Nanae Hibino
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!Ra Zon
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 

Destacado (14)

MongoDB全機能解説1
MongoDB全機能解説1MongoDB全機能解説1
MongoDB全機能解説1
 
MongoDB全機能解説2
MongoDB全機能解説2MongoDB全機能解説2
MongoDB全機能解説2
 
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
 
MongoDB Oplog入門
MongoDB Oplog入門MongoDB Oplog入門
MongoDB Oplog入門
 
MongoDBを使用したモバイルゲーム開発
MongoDBを使用したモバイルゲーム開発MongoDBを使用したモバイルゲーム開発
MongoDBを使用したモバイルゲーム開発
 
はじめてのMongoDB
はじめてのMongoDBはじめてのMongoDB
はじめてのMongoDB
 
20110514 mongo dbチューニング
20110514 mongo dbチューニング20110514 mongo dbチューニング
20110514 mongo dbチューニング
 
Clojureによるログ収集と解析
Clojureによるログ収集と解析Clojureによるログ収集と解析
Clojureによるログ収集と解析
 
世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート
世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート
世界500万人を巻き込み“ゲーム内の国家”を作った神撃のバハムート
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testing
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 

Similar a MongoDBざっくり解説

mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springichikaway
 
ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例知教 本間
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDBmoai kids
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例知教 本間
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会otmb
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsNaoki Sega
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレするAkihiro Kuwano
 
Db tech showcase2015
Db tech showcase2015Db tech showcase2015
Db tech showcase2015emin_press
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
Osc2012.dbに行ってきました
Osc2012.dbに行ってきましたOsc2012.dbに行ってきました
Osc2012.dbに行ってきましたMasaru Kobashigawa
 
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyFluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyDaisuke Ando
 
Mongo db使ってみよう
Mongo db使ってみようMongo db使ってみよう
Mongo db使ってみようOda Shinsuke
 
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse MoonlinxOsc2008 Opensuse Moonlinx
Osc2008 Opensuse MoonlinxKazuhisa Hara
 

Similar a MongoDBざっくり解説 (20)

mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
 
20120831 mongoid
20120831 mongoid20120831 mongoid
20120831 mongoid
 
ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例ソーシャルゲームのEMR活用事例
ソーシャルゲームのEMR活用事例
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDB
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
 
20110302 Mongo Tokyo
20110302 Mongo Tokyo20110302 Mongo Tokyo
20110302 Mongo Tokyo
 
20110301 Mongo Tokyo
20110301 Mongo Tokyo20110301 Mongo Tokyo
20110301 Mongo Tokyo
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
Mongodb
MongodbMongodb
Mongodb
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレする
 
Db tech showcase2015
Db tech showcase2015Db tech showcase2015
Db tech showcase2015
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
Osc2012.dbに行ってきました
Osc2012.dbに行ってきましたOsc2012.dbに行ってきました
Osc2012.dbに行ってきました
 
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyFluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
 
MongoDB勉強会資料
MongoDB勉強会資料MongoDB勉強会資料
MongoDB勉強会資料
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
Mongo db使ってみよう
Mongo db使ってみようMongo db使ってみよう
Mongo db使ってみよう
 
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse MoonlinxOsc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
 

Más de 知教 本間

gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例知教 本間
 
GitHubEnterpriseからBitbucket(Stash) への移行事例
GitHubEnterpriseからBitbucket(Stash) への移行事例GitHubEnterpriseからBitbucket(Stash) への移行事例
GitHubEnterpriseからBitbucket(Stash) への移行事例知教 本間
 
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化についてAWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について知教 本間
 
Use case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in productionUse case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in production知教 本間
 
チームでChef serverを運用するには
チームでChef serverを運用するにはチームでChef serverを運用するには
チームでChef serverを運用するには知教 本間
 
Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史知教 本間
 
ソーシャルゲームログ解析基盤のHadoop活用事例
ソーシャルゲームログ解析基盤のHadoop活用事例ソーシャルゲームログ解析基盤のHadoop活用事例
ソーシャルゲームログ解析基盤のHadoop活用事例知教 本間
 

Más de 知教 本間 (7)

gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例
 
GitHubEnterpriseからBitbucket(Stash) への移行事例
GitHubEnterpriseからBitbucket(Stash) への移行事例GitHubEnterpriseからBitbucket(Stash) への移行事例
GitHubEnterpriseからBitbucket(Stash) への移行事例
 
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化についてAWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
 
Use case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in productionUse case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in production
 
チームでChef serverを運用するには
チームでChef serverを運用するにはチームでChef serverを運用するには
チームでChef serverを運用するには
 
Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史
 
ソーシャルゲームログ解析基盤のHadoop活用事例
ソーシャルゲームログ解析基盤のHadoop活用事例ソーシャルゲームログ解析基盤のHadoop活用事例
ソーシャルゲームログ解析基盤のHadoop活用事例
 

Último

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Último (11)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

MongoDBざっくり解説

  • 1. MongoDBざっくり解説 ∼「はじめてのMongoDB」を初めて読む方々へ∼ 11年12月8日木曜日
  • 2. 自己紹介 Name:本間 知教(ほんま とものり) Twitter:@CkReal 経歴 2008年4月∼2011年9月 国内某ITコンサルティング会社:インフラ担当 2011年9月∼ 株式会社gumi:インフラand解析チーム 今週から正社員になりました^^; 好きなMongoDBの機能:Replica Sets 2 11年12月8日木曜日
  • 3. はじめに はじめての @doryokujin 日本UNIXユーザ会 勉強会 2011/09/15 http://www.slideshare.net/doryokujin/ @doryokujinさん mongodb-9208855 3 11年12月8日木曜日
  • 4. はじめに @doryokujinさんはMongoSV出席のため渡米中 4 11年12月8日木曜日
  • 5. 発表の目的 MongoDB人口の増加 MongoDBの(最低限の)機能紹介 MongoDBの公式ドキュメントや@doryokujin さん の各種資料への誘導 mongotokyoの登壇者募集 来年は女性MongoDBエンジニアにも登壇を! 5 11年12月8日木曜日
  • 6. アジェンダ 1.MongoDBの概要 2.MongoDBの機能 3.MongoDBを始めてみる方へ 6 11年12月8日木曜日
  • 7. 1.MongoDBの概要 7 11年12月8日木曜日
  • 8. MongoDBの概要 ドキュメント指向データベース JSONでドキュメントを扱う(内部はBSON) 実装:C++ 開発元:10gen http://www.10gen.com/ 最新版:2.0.1 ライセンス Database: GNU AGPL v3.0 License Driver: Apache License v2.0 OS:Linux,Mac,Windows,Solaris Driver: C , C++, Python, Java, Ruby, PHP, Perl,etc… 8 11年12月8日木曜日
  • 9. MongoDBの導入事例 世界中で利用されつつあるデータベース 解析用途だけではなく、Webサービスでも使われる 海外の事例 国内の事例 9 11年12月8日木曜日
  • 10. Mongo Tokyo 2012 1月18日品川でカンファレンスが開催されます 12月18日まではEarly Bird料金で参加可能!! http://www.10gen.com/events/mongo-tokyo-2012 今年のMongoDB勉強会の様子 10 11年12月8日木曜日
  • 11. 2.MongoDBの機能 11 11年12月8日木曜日
  • 12. データの保存&検索 通常のRDBとは、用語が異なる RDB データベース テーブル レコード カラム MongoDB データベース コレクション ドキュメント フィールド MongoDB Server Database Database Collection Collection Collection Collection Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document 12 11年12月8日木曜日
  • 13. データの保存&検索 スキーマレス カラム追加・削除の手間がない # mongo > use hoge > db.piyo.save({fuga:1}) > show dbs hoge 0.203125GB > db.piyo.find() { "_id" : ObjectId("4ec5fd452d9d5991cd323c20"), "fuga" : 1 } 13 11年12月8日木曜日
  • 14. データの保存&検索 トランザクションやJOINがない パフォーマンスとスケーラビリティを優先 挿入・検索速度:MySQL<MongoDB<KVS ディスクへの書き込みは非同期 ジャーナリング機能(v1.8~)の使用を推奨 インデックスサポート あらゆる属性でインデックスを貼れる 14 11年12月8日木曜日
  • 15. ドキュメント例(gumiの場合) MongoDBへ格納するドキュメントは、ユーザ/時のアクション状況で格納 例)MongoDB格納後のログ(一部整形&省略) "_id" : "df41b04eb72d29b4a30955f2de1a20134e187cd6f59f0d3df0468d22", "app" : "hogehoge", "userid" : "12345", "dateint" : 20111101, "hourint" : 23, ユーザIDごとに、 "actions" : [ アクションレコードを格納 "CONSUME_POWER", "ADD_MONEY" ], 時刻フィールドを利用して、 "records" : [ MongoDBのShardingキーとする { "action" : "ADD_MONEY", "timeint" : 235959, ユーザごとの各アクションを } 配列として格納 ] 15 11年12月8日木曜日
  • 16. MongoDBを運用する Replica Sets 更新はPrimary,参照はSecondary 自動フェイルオーバー機能を持つ 自動フェイルオーバーの流れ 同期 Primary 同期 Secondary Secondary 16 11年12月8日木曜日
  • 17. MongoDBを運用する Replica Sets 更新はPrimary,参照はSecondary 自動フェイルオーバー機能を持つ 自動フェイルオーバーの流れ Primary 選出 Secondary Secondary 17 11年12月8日木曜日
  • 18. MongoDBを運用する Replica Sets 更新はPrimary,参照はSecondary 自動フェイルオーバー機能を持つ 自動フェイルオーバーの流れ Recovering 同期 Primary Secondary 18 11年12月8日木曜日
  • 19. MongoDBを運用する Replica Sets 更新はPrimary,参照はSecondary 自動フェイルオーバー機能を持つ 自動フェイルオーバーの流れ Secondary 同期 同期 Primary Secondary 19 11年12月8日木曜日
  • 20. MongoDBを運用する Mongo Sharding Auto-balancing機能を持つ Sharding Keyに基づき、コレクションを分割 Shardingは、3種類のサーバで構成される mongos,config,mongod Migrationは、Chunk単位で行われる document単位ではないことに注意 20 11年12月8日木曜日
  • 21. MongoDBを運用する Mongo Sharding mongos経由で、mongodのドキュメントを操作する 各Shardに関する (永続的な)情報を保持 実際のドキュメントは、 mongodに格納される クライアントのアクセス は、mongosに対して行う 21 11年12月8日木曜日
  • 22. MongoDBを運用する Mongo Shardingの注意点 Shard KeyはCollection内のどれか1つから選択 各Shardは、重複しないレンジで分割される 例)Shard1:0~10, Shard1:11~20, Shard2:21~30… 分散させやすいKeyを選ぶことが重要 良い例:ユーザ名,時刻,検索頻度が多いキーなど 悪い例:大陸名,単純増加のIDなど 22 11年12月8日木曜日
  • 23. MongoDBを運用する Auto-balancingの注意点 Migration中は、2重にカウントされる Auto-balancingはOFFにしておける。 Shard1 Shard2 Shard1 Shard2 DatabaseA DatabaseA DatabaseA DatabaseA CollectionA CollectionA CollectionA CollectionA Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Document Shardの偏り Migration(Chunk単位で実施) 23 11年12月8日木曜日
  • 24. その他 その他にも機能やTipsがたくさん Capped Collection,Map Reduce,GridFS… クエリチューニング 参考文献 NoSQLデータベースファーストガイド MongoDB JPの各種資料 @doryokujinさんのブログ 24 11年12月8日木曜日
  • 25. 3. MongoDBを始めてみる方へ 25 11年12月8日木曜日
  • 26. MongoDBの構築メモ MongoDBを動かすのはすごく簡単 Macでもmac ports,homebrewなどですぐに入る 様々なログ形式を突っ込めるストレージDB 挿入・検索速度>一貫性 データ設計が柔軟に行えるDB MongoDBのクエリは豊富 コマンドを忘れたら、help()で確認 26 11年12月8日木曜日
  • 27. MongoDBの運用メモ 実運用には十分耐えられる 約1000万件での検索時間は平均0.066sec 監視用ツール類も充実 munin,Ganglia,cacti,ZABBIX,Nagios MongoDBを検討する際は、検証期間を取る Sharding環境には慣れが必要 configデータベース内の統計値なども見ておく 27 11年12月8日木曜日
  • 28. MongoDB勉強会 & ソースコードリーディング勉強会 での出席(and登壇)お待ちしております!! 28 11年12月8日木曜日
  • 29. ご清聴ありがとうございました。 29 11年12月8日木曜日