NoSQLデータベースの長所と短所 : NoSQLベストプラクティス(3) (2/2 ページ) 
 NoSQLと言ってもデータモデル形式やアーキテクチャ別に分類され、それぞれに特徴があります。簡単にまとめた種類別の長所と短所は以下の通りです。
キーバリューストア型 
 
特徴 
基本的に、単純な格納と抽出のみの分散ハッシュマップ。インメモリあるいは永続化が可能 
 
長所 
単一のスキーマが必要でないので柔軟。単純なキーベースのアクセスとパーティショニング、結果整合性により水平拡張を実現する 
 
短所 
結合、検索不可。グローバルインデックスはない。複雑なクエリ不可 
 
主なプロダクト 
Amazon Dynamo、Oracle Berkeley DB、Oracle NoSQL Database、Voldemort、Riak 
 
 
ドキュメントストア型 
 
特徴 
単一のスキーマが必要でないので柔軟。「行」を「ドキュメント」と置き換えることで疎データ問題に対処できる。インデックスを明示的に設定する必要があり、指定できるインデックスの個数に制限がある。パフォーマンスを維持するためには、できるだけインデックスが少ないほうが良い 
 
長所 
ドキュメント内にドキュメントを埋め込めるので、1レコード内に複雑な階層関係を含められる。キーベースのパーティショニングと結果整合性により水平拡張を実現する。キーバリューストア型よりも複雑なクエリが可能 
 
短所 
結合に制約がある。マルチドキュメントトランザクション不可。全文検索機能が弱い 
 
主なプロダクト 
MongoDB、Apache CouchDB 
 
 
HadoopのMap Reduceバッチ処理 
 
特徴 
大規模データセットに対する分散コンピューティングのフレームワークであり、データベースではない。他のNoSQLとは違い、Map Reduceならびに分散ファイルシステムは、基本的にはディスクのリードパフォーマンスの問題を解決するためのものと位置付けられる。RDBMSの欠点を補おうとするものではない。単一データセンター内の専用ハードウェアに依存し、大きな帯域幅を集約した相互接続を行う 
 
長所 
書き込みを一度、読み取りは何度も行う処理に適する。オフラインのバッチ処理に適している(ただし、結果はシステム規模によるが数分〜数日後と、すぐには返ってこない) 
 
短所 
検索、取得機能はない。グローバルインデックスやトランザクションはない 
 
主なプロダクト 
Cloudera、Hortonworks 
 
 
カラムストア型 
 
特徴 
複数の次元のキーをサポートすることにより、単純なキー/バリュー(値)のペアよりリッチなデータモデルを扱える。行の代わりに列でデータを格納することにより、疎データ問題に対処できる。マスター/チャンクサーバのパーティショニングにより、水平拡張を実現する 
 
長所 
大量の類似データに対する集計が得意 
 
短所 
同一種類のデータしか扱えないことが多い 
 
主なプロダクト 
Apache Cassandra、Apache HBase、Google BigTable、HyperTable 
 
 
エンタープライズNoSQL 
 
特徴 
完全なACID準拠で、データ一貫性を保証する。これは、MVCC(Multi-Version Concurrency Control)、2フェーズコミット、レコードのロックで実現する。ユニバーサルインデックスによる、リアルタイムの更新、検索、結果取得が可能。最大ペタバイトレベルまで拡張が可能 
 
長所 
高可用性(99.999%のSLAを実現)、政府レベルのセキュリティ要件を満たす。マルチモデル、つまりテーブル、ドキュメント、セマンティックトリプルの格納、インデックス付け、検索、クエリが可能 
 
短所 
極めて大量のストリーミングデータ(データサイズが1KB以下で極めて小さい)を扱うことができない。キャッシュのみの技術が必要な場合は、キーバリューやドキュメントストアの方が適している 
 
主なプロダクト 
MarkLogic 
 
  皆さんが自社のニーズに合ったNoSQLを選択する上で、以上の情報がお役に立てれば幸いです。
マークロジック株式会社 日本法人代表。ソフトウェア開発ならびにwebテクノロジーに関して25年以上の経験を持ち、さまざまなエンジニアリング、コンサルティング、管理職などの要職を歴任。前職はSilicon Graphics、E*TRADE Financial、Blue Martini Software(日本法人代表取締役)など。カーネギーメロン大学卒(コンピュータサイエンス専攻)
 
 
Copyright © ITmedia, Inc. All Rights Reserved.