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.