MongoDB(モンゴデービー) 最新情報
バージョンアップ情報MongoDBのバージョンアップ情報 |
年間保守サービスMongoDBの年間保守サービス |
導入支援サービスMongoDBの導入支援サービス |
活用例・導入事例MongoDBの活用例・導入事例 |
|||||||||||
MongoDB(モンゴデービー)とは
MongoDB(モンゴ・デービー)とは、NoSQLに分類されるドキュメント志向(JSON※.1)型データベースシステムです。
NoSQLデータベースのデファクトスタンダードと言われるほど世界中で最も利用され、最も技術者が多いのがMongoDBです。
名称の由来は、英単語の「humongous(とてつもなく大きい)」から名付けられています。
MongoDB(モンゴ・デービー)はJSON形式データにより、KVS(※.2)よりもリッチなデータを取り扱えます。(図.1参照)
そしてNoSQLデータベースでありながらSQL文法に近いクエリが利用でき、RDBMS以上のインデックスをサポートしているのでRDBよりもスケーラブルなデータベースです。
■MongoDBのデータ構造
MongoDBのデータ構造はドキュメント形式となります。
リレーショナルデータベース
ドキュメント形式
キーバリュー
■MongoDBの利点
MongoDB(モンゴ・デービー)の主な利点は「柔軟なデータ処理」と「スケーラビリティ」があげられます。
MongoDB(モンゴ・デービー)はNoSQL市場では最も多く利用され、その利用用途はIoTやM2Mなどによる大量データを蓄積するデータベース基盤、様々なシステムの大量の監査ログの格納、システム間連携のデータ集約基盤、ソーシャルゲーム基盤などに採用されています。
※.1 JSONとはJavaScript Object Notationの略で、XMLなどと同様のテキストベースのデータフォーマットです。
※.2 データを非定型のデータ構造の集合体として管理します。このデータの集合を「ドキュメント」と呼び、ドキュメントの集合を「コレクション」として管理しています。
※.3 (Key-Valueストア:任意の保存したいデータ(value)に対し、対応する一意の標識(key)を設定し、これらをペアで保存する方式)
MongoDBの特長
1) ドキュメント指向型データベース
MongoDBはドキュメント指向のJSON形式対応のデータベースです。
MongoDBではドキュメント(≒JSON形式データ)として取り扱い、コレクション配下に格納されます。
データベース
└コレクション
└ドキュメント(≒JSON形式データ)
JSON形式データ(右図参照)はRDBでは表現できない複雑なデータ構造も簡単に扱えます。
JSONは近年のデータ通信やアプリケーションログなどの標準形式になりつつあるJSON形式を取り扱う代表的なデータベースがMongoDBです。
JSON形式データ(参考)
{
"name": “Jhon Tomas",
"age": 40,
"titles": [“King",“Star”,”Singer”,”Artists"],
"married": true
}
2) 柔軟な構造変更が可能
RDBはテーブル/レコード定/データ型の定義が必要ですが、MongoDBはスキーマ定義は不要(スキーマレス)です。
前述のJSON形式であれば、どのような構造のデータもドキュメントとして格納する事ができます。
特にアジャイル開発を行う場合、開発中にデータ構造の変更が必要とされるケースではMongoDBのスキーマレスは大きなメリットを感じることと思います。
開発に対するメリットだけでなく企業間のシステム間連携を行う場合、相手企業のデータ構造に合わせたスキーマ変更が不要となりますのでデータ連携に関する運用負荷を軽減する事ができます。
3) 耐障害性
MongoDBは、簡単にプライマリ/セカンダリ型のレプリカセットと言われる冗長構成(クラスタ)構成を作る事ができます。しかもセカンダリは複数作成する事ができます。
プライマリ側に書き込まれたデータは全てのセカンダリに速やかに全て複製されます。
レプリカセットではプライマリに障害が発生した際はセカンダリをプライマリに昇格させてサービス継続を行う事ができます。
レプリカセットの利点
・クラスタソフトウェア不要
・仮想IP不要
・単一障害点(SPOF)は無いため極めて高い耐障害性と高可用性を提供
・水平分散(シャーディング)と組み合わせれば高いパフォーマンスを発揮
4) スケーラビリティ
MongoDBはコレクションを水平分割する水平分散(シャーディング)構成が可能です。
データの自動バランシング機能もあり、大量のリクエスト、大量のデータ量にも対応する事ができます。
5) 簡単なインストール
各ディストリビューション毎にインストールパッケージが用意されているので比較的容易にインストールする事が可能です。
6) 管理機能
MMS:MongoDB Management Service
MongoDBには管理サービス機能(GUI)が提供され、以下の代表的な機能があります。
監視・統計
- 監視:設定した閾値と比較して警告メール送信
- 統計:MongoDBの情報収集と統計・グラフ化
バックアップ・リストア
- バックアップ(スナップショット、差分など)
- リストア(時間指定リカバリ、全リストア、差分リストアなど)※シャーディング環境にも対応
オートメーション
- 無停止によるバージョンアップが可能
- 簡単に環境構築・スケールアウト
■MongoDB利用の注意事項
1) トランザクション処理が無い
2) 結合(JOIN)ができない
3) スキーマが無い
4) メモリ領域がある程度必要
■MongoDBが適している利用用途
CMS
リアルタイム統計基盤
認証ログ/セッションログ/アーカイブログ/イベントログ/監査ログなどのログデータの格納
センサー/デバイスなどの測定情報の格納
SNSのコメントや投稿、ツイートなどの格納
スマートデバイスやGPSモバイルなどの位置情報・地理情報などの格納
WEBサービスのクリックログや属性収集による統計傾向分析のデータソース
ソーシャルゲーム基盤
MongoDBのライセンス
MongoDBのライセンスには2種類あります。
・オープンソースライセンス(AGPL3.0)で提供されているコミュニティ版
・10gen社から提供されているエンタープライズ版
※Production Supportはコミュニティ版もサポート可能
コミュニティ版ライセンス:GNU Affero General Public License (AGPL 3.0)
エンタープライズ版ライセンス:Subscription Agreement
サブスクリプション | Production Support | Enterprise Edition |
サポート提供 | ○ | ○ |
利用可能バイナリ | コ ミュニティ版 | 商用版 |
商用版 | ||
緊急パッチ | × | ○ |
オンプレミス版 管理機能 MongoDB Management Service |
× | ○ |
ケルベロス/LDAP認証 | × | ○ |
監査機能サポート | × | ○ |
ケルベロス/LDAP認証 | × | ○ |
Red Hat Identity Management の認定 | × | ○ |
プ ラットフォーム認定 | × | ○ |
(RedHat,Canonical等) | ||
SNMP サポート | × | ○ |
MongoDBの入手先
MongoDBのパッケージは以下よりダウンロード可能です。
エンタープライズ版は評価版の申込となります。