トータルの人件費を安くできる--デファクトの可能性もある「MongoDB」の勘所

渡部徹太郎 (野村総合研究所)

2015-03-16 19:38

 「MongoDB」はNoSQLの中でもドキュメント型NoSQLに分類されます。MongoDBは他のNoSQLと同様に、リレーショナルデータベース(RDBMS)と比較してビックデータや非構造データの処理が得意といった特徴がありますが、ここではそういったNoSQLの一般的な特徴の紹介は割愛し、他のNoSQLとは違うドキュメント型NoSQLならではの特徴、そしてMongoDBならではの特徴を紹介します。

ドキュメント型ならではの特徴

 ドキュメント型NoSQLではデータとして階層型データ構造であるJSONを扱います。図1にRDBMSのリレーショナルデータ構造、キーバリューストア(KVS)のキーバリューデータ構造、ドキュメント型NoSQLのJSONを比較します。

 最初にリレーショナルデータと比較すると、リレーショナルデータは美しく正規化されていますが、データの全貌を見たいときには結合(JOIN)する必要があり、SQLを操れるエンジニアでなければデータの全貌を知ることができません。また、JSONはデータの変化に柔軟であり、RDBMSとは違いデータ構造変更のオペレーションをすることなくデータ構造を更新できます。

 次にキーバリューデータに注目すると、1対多のデータ構造を表現しようとした時に、キーの値に連番を振らなくてはならず、表現が難しいことがわかります。これらのことからJSONの特徴は、エンジニアでなくてもデータの全貌がわかり、構造の変更が柔軟で、かつ1対多のような複雑なデータ構造も扱えるといえます。

図1
図1:データ構造の比較(筆者作成)
図2
図2:OpenWeatherMapでのデータ形式(筆者作成)

 JSONはデータ通信の主流なフォーマットになりつつあります。以前は、同じ階層型データ構造であるXMLが主流でしたが、よりシンプルに書けることから現在ではJSONが普及しており、TwitterやFacebookをはじめとした多くのウェブサービスで採用されています。

 例えば、OpenWeatherMapというウェブサービスでは、URLにアクセスするとJSON形式で天気のデータを取得できます(図2参照)。近年話題の“モノのインターネット(Internet of Things:IoT)”や“機械間通信(Machine to Machine:M2M)”でもセンサや機器などが出すデータの多くはJSON形式です。

 これまでを整理すると、ドキュメント型NoSQLならではの以下の4つの特徴があることになります。

  1. キーバリューよりも複雑なデータが簡単に扱える
  2. データ構造の変更が柔軟
  3. エンジニアでなくても全貌がわかる
  4. ウェブサービスやM2Mの標準的なデータ構造
図3:ウェブサイトやオンラインゲームでの構成
図3:ウェブサイトやオンラインゲームでの構成(筆者作成)

キーバリュー型よりも複雑なデータが簡単に扱える

 この特徴がメリットとなる代表的なケースは、ウェブアプリケーションやオンラインゲームです。例えば、オンラインゲームでは、プレイヤーは複数のアイテムを持っていますし、アイテムには複数の属性があるでしょう。このような複雑なデータ構造はキーバリューでの表現は困難ですが、JSONであれば難なく扱うことができます。

 RDBMSで扱えるかというと、データの量が少ない時は問題ないですが、サービスが流行して一気にユーザーが増えた時に、RDBMSでは現実的なコストで処理しきれない可能性があります。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]