OSS紹介

PostgreSQL

MongoDB最新情報

NRIのOpenStandiaが提供するMongoDB最新情報

MongoDBの保守サポートサービスの内容はこちら MongoDBの導入についてはこちら OSS全般の事例紹介はこちら

MongoDB最新トピック

■2016-06-06
[ニュース・市場動向] MongoDBの高可用構成(後編)
■2016-05-24
[イベント・セミナー] 2016年05月27日(金) Mongo DBチューニング勉強会 進行表テンプレートの例
■2016-05-24
[ニュース・市場動向] MongoDBの高可用構成(前編)
■2016-03-21
[イベント・セミナー] NoSQLデータベース(MongoDB)を使ったデータ管理 (IoT/ビッグデータセミナー第5回)
■2016-03-07
[ニュース・市場動向] MongoDBの管理サービスMongoLabが名前をmLabに変えて新分野への進出を目指す
■2016-02-22
[ニュース・市場動向] MSのモバイル求人ページが一時無防備な状態に--運用委託先の「MongoDB」設定に問題、修正済み
■2016-02-01
[ニュース・市場動向] NoSQLは、従来のSQLリレーショナルデータベースと何が違うのか? どう捉えればよいのか?
■2016-01-18
[ニュース・市場動向] 2015年のデータベース・オブ・ザ・イヤーは「Oracle」、第2位は「MongoDB」
■2015-11-23
[ニュース・市場動向] MongoDB シャーディングにおける性能(後編)
■2015-11-16
[ニュース・市場動向] MongoDB 3.2登場 ドキュメント・バリデーション、暗号化機能、BI向けのMongoDB Connectorなど

すべてを見る

MongoDBバージョンアップ情報

■2016-06-14
[VerUP]MongoDB 3.2.7(リリース日:2016/06/07)
■2016-05-17
[VerUP]MongoDB 3.0.12(リリース日:2016/05/09)
■2016-04-18
[VerUP]MongoDB 3.2.5(リリース日:2016/04/13)
■2016-04-11
[VerUP]MongoDB 3.0.11(リリース日:2016/03/31)
■2016-03-28
[VerUP]MongoDB 2.6.12(リリース日:2016/03/24)
■2016-03-21
[VerUP]MongoDB 3.0.10(リリース日:2016/03/08)
■2016-03-14
[VerUP]MongoDB 3.2.4(リリース日:2016/03/07)
■2016-02-22
[VerUP]MongoDB 3.2.3(リリース日:2016/02/17)
■2016-02-01
[VerUP]MongoDB 3.0.9(リリース日:2016/01/26)
■2016-01-18
[VerUP]MongoDB 3.2.1(リリース日:2016/01/11)

すべてを見る

MongoDBの概要

MongoDB(モンゴデービー)とは、JSON(※1)形式のデータを蓄えるデータベース管理システム(DBMS)です。ドキュメント指向データベース(※2)に分類されます。

MongoDB(モンゴデービー)は、ドキュメント指向データベースの中で最も利用されている製品の一つであり、C++で書かれています。
MongoDB(モンゴデービー)は、アメリカの10gen社によって開発され、2009年2月に初期バージョンがリリースされています。

MongoDB(モンゴデービー)は、その性能や高可用性、開発の容易性、スケーラビリティなどが評価されており、最近のIT潮流として取り上げられる大規模データ、アジャイルソフトウェア開発、クラウドコンピューティングといった技術に適したデータベースアーキテクチャとして、世界中で注目を集めています。
アメリカIDG傘下のIT情報サイトInfoWorldが主催する、優れたオープンソースを4カテゴリから選ぶオープンソース賞「Best of Open Source Software(Bossies)2011」の「アプリケーション開発」カテゴリで選出されるなど、すでに欧米では高い評価を得ているMongoDB(モンゴデービー)ですが、今後日本でも本格的な導入が進んでいくことが期待されています。

現在の最新バージョンは、2.2.7、2.4.14、2.6.12、3.0.12、3.2.7です。(2016年6月現在)

※1 JSON(ジェイソン、JavaScript Object Notation)は、JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語です。
※2 ドキュメント指向データベースは、1件分のデータを「ドキュメント」と呼び、具体的にはJSONというデータ形式でデータを扱います。
ドキュメント指向データベースは、データを表形式で保存するリレーショナルデータベースと異なり、スキーマ(テーブル定義)が必要ないことが大きな特徴です。 ドキュメントを複雑な階層でも管理することができるうえ、クエリやインデックスの作成が容易である、大量データでもスケールしやすい仕組みを持つなどの理由から近年注目を集めています。
スキーマレスデータベース(スキーマが必要ない)、NoSQLデータベース(リレーショナルデータベースだけではない)という呼ばれ方もされています。

TOPに戻る

MongoDBのライセンス

MongoDB(モンゴデービー)のライセンスは、GNU Affero General Public License(GNU AGPL) v3.0 (ドライバはApache license)です。ソフトウェアのコピーや配布、ソースコードの公開を原則として、ソースコードの自由な改変も認められています。
MongoDB(モンゴデービー)の有償サブスクリプション(ライセンス)についてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

MongoDBの動作環境

前提となる動作環境は、以下のとおりです。(バージョン2.6.4の場合)

  • OS
    ・Mac OS X
    ・Linux
    ・Windows Server 2008 R2 64bit
    ・Windows 7 (32 bit、64 bit)
    ・Windows Vista
    ・Solarisプラットフォーム
  • ハードウェア
    ・MongoDBのコアコンポーネントは、主に x86/x86_64プロセッサのリトルエンディアンハードウェア上で稼働
    ・Clientライブラリ(つまりドライバー)はビッグ/リトルエンディアンのシステム上で実行可能
    ・SATA SSD(ソリッドステートディスク)を利用すると価格性能比が良い
    ・ほとんどのMongoDBのデプロイにおいて、RAID-10ディスクの利用が必要
  • ストレージサイズ
    ・MongoDB 64ビットビルドを実行する場合は、事実上の制限なし
    ・MongoDB 32ビットビルドを実行する場合は、2GB
  • カーネルとファイルシステム
Linuxディストリビューション ファイルシステム カーネルバージョン
CentOS 5.5 ext4, xfs 2.6.18-194.el5
CentOS 5.6 ext4, xfs 2.6.18-238.el5
CentOS 5.8 ext4, xfs 2.6.18-308.8.2.el5
CentOS 6.1 ext4, xfs 2.6.32-131.0.15.el6.x86_64
RHEL 5.6 ext4 2.6.18-238
RHEL 6.0 xfs 2.6.32-71
Ubuntu 10.04.4 LTS ext4, xfs 2.6.32-38-server
Amazon Linux AMI release 2012.03 ext4 3.2.12-3.2.4.amzn1.x86_64
  • 提供されているプログラミング言語の公式ドライバ
    ・C
    ・C++
    ・C#
    ・Java
    ・Node.js
    ・Perl
    ・PHP
    ・Python
    ・Ruby
    ・Scala
  • コミュニティベースの非公式ドライバ
    ・Go
    ・Erlang
    ・ActionScript3
    ・C
    ・C# and .NET
    ・Clojure
    ・ColdFusion
    ・D
    ・Dart
    ・Delphi
    ・Entity
    ・Erlang
    ・JavaScript
    ・PowerShell
    ・Groovyなど

※バージョンによって異なりますので、詳細はお問い合わせください。

TOPに戻る

MongoDBと同様の機能をもつ商品製品

商用製品ではMarkLogic, TERADATA, IBM DB2、クラウドサービスではMicrosoft Asure Document DB、IBM Cloudantがドキュメント型NoSQLとされています。

TOPに戻る

MongoDBはドキュメント指向データベース

  • ドキュメント指向データベースとは
     データを階層構造のドキュメント(≒JSON)で扱う
  • JSONとは
     - ハッシュと配列をネストして使うことができる
     - XMLよりシンプルに表現できる
     - 読みやすく直観的
  • JSONの例

TOPに戻る

MongoDBの主な特徴

主な特徴は以下のとおりです。

リッチなデータ

  • KVSと比較して、ドキュメント(JSON)はリッチなデータ構造であり、複雑なデータを扱いやすい

柔軟なクエリ

  • 動的なクエリ SQLライクなクエリで扱いやすい
  • 例)コレクションpersonに、"name"が"watanabe"で、 "age"が30のドキュメントを3つだけ取得したい

  • RDBMSと同様に、動的にクエリを作成可能で事前に定義が不要
  • 単純な条件検索だけでなく、集計等の高度なクエリも利用可能

RDBMSと同等な、多様なインデックス

  • セカンダリインデックス:主キー以外でインデックスを作成可能
  • 複合キーインデックス:複数のキーでインデックスを作成可能
  • マルチキーインデックス:配列の要素に対してインデックス作成可能

水平分散

  • 水平分散(シャーディング)が実現しやすい
  • キーによってデータをノードに分散することが可能で、ノードを動的に追加し、データを自動バランシングする機能もある

レプリケーション

  • 複製(レプリケーション)が容易
  •  - 簡単なコマンドで、レプリケーション環境(レプリカセット)を構築可能
     - シャーディングと組み合わせることも可能
     - MongoDBドライバが自動的に書き込み先を切り替えるため、仮想IPなどを用意しなくてもフェイルオーバが可能(≒クラスタソフトウェアが不要)

  • レプリケーションとシャーディングを組み合わせて、負荷分散と冗長化を両立

スキーマレス

  • スキーマレスデータを取り扱える
  • テーブル定義など無しに、すぐにデータをCRUDできる

利用しやすい

  • インストールが非常に容易
  •  - OS毎にバイナリがあるため、ライブラリの追加インストールが不要
     - 起動までわずか 3ステップ
      ・OS毎のバイナリをダウンロード
      ・データディレクトリを作成
      ・起動

  • RDBMSを使っていた人が使いやすいように作られている
  •  - データベース>テーブル(コレクション)>ドキュメント というデータ構造
     - SQLとMongoクエリ言語の大部分はマッピングが可能
     - インデックスもSQLと同様の宣言が可能

  • 豊富なドキュメント・ノウハウ
  •  - 英語ではあるが、他のNoSQLに比べて公式ドキュメントは豊富
     - 多くの人が使っているため、ノウハウが豊富。日本語のノウハウも多い

多機能

  • 他にも数多くの便利な機能が豊富
分類 機能 説明 ユースケース
機能 GridFS 大容量ファイル(16MB以上)を扱うことができる
大容量ファイルをドキュメントに分割して格納し、アプリケーションには等価的なAPIを提供
大容量ファイルの管理
地理空間インデックス 2Dや3Dのデータを格納し、それに対して交点や近傍などの検索をかけることができる
アプリでの作りこみが不要
地理アプリのデータベース
キャップ付き・期限付きコレクション サイズや期間を指定したコレクションを作り、自動的に古いドキュメントを引き落とせる ログ保管
集計機能 SQLグループ関数のように集計できる
また、map/reduceによる集計も可能
データ集計
データ圧縮 ストレージエンジンにWiredTigerを選択することにより、データの圧縮が可能 大量データ処理
耐障害性 ジャーナリング 単一ドキュメントに対して、書き込みの一貫性が保持できる 突然の電源停止等に対応したい
運用性 各種機能コマンド さまざまなサーバの統計情報を取得するツールや、JSON形式で出力するコマンドがある 運用監視ツールとの対応
障害対応効率化
MMS(MongoDB Management Service) MongoDBの監視やアラート、自動バックアップ、ポイントインタイムリカバリ等ができるサービス 運用監視の仕組みを簡単に作りたい

TOPに戻る

MongoDBを使う上での注意点

トランザクションが無い

  • MongoDBは複数のドキュメントを一貫性をもって更新することができない
  • ミッションクリティカルで複数のテーブルの更新を保証しなければならないようなシステムでは、利用してはならない

外部キー・結合が無い

  • 他のドキュメントへの参照はアプリケーションで実装する必要がある
  • 当然ながら、外部キー制約もないため、テーブル間の整合性が重要なシステムには向いていない
  • 複数のドキュメントの内容を結合して取得することはできない

スキーマが無い

  • 格納されているデータのキー名やデータ型が分からない
  • データ登録の際に不具合があってもエラーが発生しない
  • 設計書を厳格に管理しないと、格納データの内容が分からなくなり、保守性の低下を招く恐れがある

TOPに戻る

NoSQLならば、MongoDBから

世界には数多くのNoSQLがあります。いずれも独自のノウハウが必要となり、習得期間とコストを要します。
その中で、OpenStandiaでは「MongoDB」を推奨しています。


NoSQLの中では多機能で、敷居が低い

・他のNoSQLと比較して機能が豊富である
・RDBMSと類似した機能群を持ち、RDBMS技術者が理解しやすい
・導入が非常に容易で、すぐに開発を始められる
・開発を進めながらデータ構造を変更しやすく、生産性が高い


NoSQLの標準になりつつある

・最も人気のあるNoSQLであり、米国ではNoSQLの標準になりつつある。
・開発元のMongoDB,Inc. は、2013年10月に150M$(約150億円)の投資を受け、
 NoSQL企業の中でも企業活動が活発である。

 [参考]米MongoDB、1億5000万ドルの資金調達「Oracleに追いつく成熟度を目指す」
   http://internet.watch.impress.co.jp/docs/news/20131007_618340.html
 [参考]solid IT社の提供する「DB-Engines Ranking」で、MongoDBがNoSQL部門で人気No.1
   http://db-engines.com/en/ranking
 [参考]ZDNet Japan DB人気ランキング--NoSQLなど注目されるも従来型RDBMSが支配的
   http://japan.zdnet.com/datacenter/analysis/35052519/
 [参考]MongoDB社サイト Google Search、LinkedIn Job SkillsなどのMongoDB人気度を紹介
   http://https://www.mongodb.com/leading-nosql-database

豊富な導入実績がある

・600社以上の導入実績がある。
・IT企業のほか、金融や保険業界での活用事例も出てきている。
 - MetLife
 - SAP
 - eBay
 - McAfee
 - Cisco など多数

 [参考]MongoDB社サイト 導入事例
   https://www.mongodb.com/industries
 [参考]MongoDB社サイト Internet of Things導入事例
   http://www.mongodb.com/use-cases/internet-of-things

TOPに戻る

機能一覧

機能 MongoDBでの対応状況
機能性 問合せ 条件検索 ○可能
DISTINCT ○可能
LIKE検索 △英語のみ可能(日本語は不可)
ROWID、ROWNUM、ROW_NUMBER △結果行数指定の使い方は可能
グループ集計 ○可能
ソート ○可能
正規表現 ○可能
WITH句/副問い合わせ △パイプラインで一部代替可能
TRUNCATE ○可能
再帰クエリ ×不可
ユニオン/結合 ×不可
全文検索 △英語のみ可能(日本語は不可)
トランザクション管理 ×不可
排他制御 ×不可
制約/整合性機能 ×不可
インデックス オンライン追加・削除 ○可能
セカンダリインデックス ○可能
複合インデックス ○可能
マルチキーインデックス ○可能
データ 基本データ型 ○可能
大容量ファイル格納 △16M以上のファイルは別DB(GridFS)での管理
マルチメディア △大容量ファイルの分散管理が可能
空間データ ◎座標系データの検索が可能
OLAP ×不可
操作 管理ツール(CUI) ○可能
管理ツール(GUI) △基本操作が可能(アドバイザ等はなし)
その他 動的SQL ○可能
データベーストリガ ×なし
ジャーナリング ○ドキュメント単位で一貫性保証
ストアドプロシージャ/ファンクション ○可能 javascriptで記述
一時表 △キャップ付きコレクションで保管期間を決められる
シーケンス △ストアドプロシージャで処理を代替可能
可用性 耐障害性 ○レプリケーションで冗長構成可能
復旧容易性(ノード復旧) ○ノード起動により自動復旧
データ損失許容時間 ○クエリごとに制御可能
拡張性 シャーディングノード追加 ○オンラインで追加可能
レプリケーションノード追加 ○オンラインで追加可能
メモリ追加 ○可能
ディスク追加 ○可能
運用性 統計情報出力 ○付属のコマンドで可能
データダンプ・リストア ○付属のコマンドで可能
インポート ○JSON、CSVをインポート可能
監視 ○MMSで監視可能
OS監視 ○MMSとmuninの組み合わせにより可能
バックアップ ○MMSにて自動バックアップ、ポイントインタイムリカバリ可能
バージョンアップ ○レプリケーションを組んでローリングアップデートすればシステム停止無しで実施可能
サポート ○OpenStandiaにてサポート可能
機密性 アクセス制御 ○可能
暗号化 ○商用版でSSL利用可能
監査ログ ○商用版で利用可能

TOPに戻る

MongoDBに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目Alfresco
  • 注目MongoDB
  • OpenIDM
  • MongoDB
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • Joomla!
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Chef
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Spring Framework
  • CentOS
  • Courier-IMAP
  • CVS
  • MosP
  • Heartbeat
  • Hibernate
  • Hinemos
  • ADempiere
  • LISM
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
  • sendmail
?
<--!-->