HBaseとMongoDBとCassandraの大きな違いは、HBaseとCassandraが列指向のデータベースであるのに対し、MongoDBは文書指向のデータベースである点です。
ビッグデータとは、大量のデータのことを指す。
量、速度、多様性という3つの性質を持っています。
量」はデータの量、「速度」はデータの生成速度、「多様性」はデータの種類を意味する。
この膨大な量のデータを保存するためには、通常のリレーショナル・データベースは有効ではありません。
この問題を解決するのが、非リレーショナルデータベースです。
NoSQLデータベースとも呼ばれる。
HBase、MongoDB、Cassandraは3つのNoSQLデータベースです。
これらのデータベースは、膨大な量のデータを保存し、ランダムにアクセスすることを可能にする。
HBaseとは
HBaseは、Hadoopファイルシステム上に構築された、分散型列指向データベース・ファイルシステムです。
オープンソースのプロジェクトです。
HBaseを設計した目的は、膨大な量の構造化データへのランダムアクセスを高速に行うことです。
HBaseはHadoopファイルシステムの上に乗っており、読み取りと書き込みのアクセスを提供します。
さらに、HBaseは列指向です。
行はテーブルをソートするために使われる。
HBaseのテーブルは行の集合体です。
行はカラムファミリーの集合であり、カラムファミリーはカラムの集合です。
カラムはキーとバリューのペアの集合です。
したがって、これがHBaseのストレージメカニズムです。
さらに、HBaseは多くの機能を提供している。
線形にスケーラブルで、自動的な障害サポートを提供する。
また、クラスタ間のデータレプリケーションも可能です。
さらに、Hadoopとの統合も可能です。
さらに、ユーザーはHBaseを使用してランダムな読み取り、書き込み操作を行い、ビッグデータにアクセスしたり、コモディティハードウェア上で大きなテーブルをホストしたりすることができる。
MongoDBとは
MongoDB はクロスプラットフォームなドキュメント指向のデータベースです。
データは JSON 形式のドキュメントとして保存されます。
MongoDB では、ドキュメントはキーと値のペアのセットであり、コレクションはドキュメントのセットです。
RDBMS のテーブルに似ています。
また、コレクション内のドキュメントにはさまざまなフィールドがあります。
MongoDBでは、各コレクションに複数のドキュメントが含まれます。
フィールドの数、内容、サイズはドキュメントごとに異なります。
そのため、スキーマレスです。
リレーショナルデータベースのような複雑な結合はない。
文書ベースの問い合わせ言語は、データベース上で動的な問い合わせを実行するのに役立つ。
リレーショナルデータベースを使うときの重要な要素のひとつに、アプリケーションオブジェクトをデータベースに格納するために、データベースオブジェクトに変換したりマッピングしたりする必要があることが挙げられます。
しかし、MongoDBではその変換が必要ない。
さらに、内部メモリを使ってワーキングセットを格納する。
そのため、より高速なデータアクセス機能を備えている。
Cassandraとは
Cassandra is an open source, distributed, decentralized database for big data. It provides highly available services with no single point of failure. Organizations such as Cisco, Facebook, Twitter, and, Netflix use Cassandra.
Cassandraを使用するメリットは複数あります。
より多くの顧客とデータをサポートするために、ハードウェアを追加することが可能です。
したがって、スケーラビリティが実現します。
さらに、フォールトトレラントで、ビジネスクリティカルなアプリケーションでも継続的に利用できます。
また、テラバイト級のデータの書き込み処理を高速に実行できる。
Cassandraはビッグデータに対応しているため、構造化データ、半構造化データ、非構造化データを保存することができます。
さらに、複数のデータ・センターにデータを分散させることも可能です。
HBase と MongoDB や Cassandra の類似点。
- HBase、MongoDB、Cassandraはスキーマフリーです。
- すべて同じパーティショニング方法を使う。
- 信頼性が高く、高いパフォーマンスを発揮する。
- さらに、並行処理もサポートしている。
HBaseとMongoDB、Cassandraの違い
定義
HBaseはGoogleのBigtableをモデルにしたオープンソースの非リレーショナル分散データベースで、MongoDBはフリーでオープンソースのクロスプラットフォーム、ドキュメント指向のデータベースシステムです。
一方、Cassandraは、大量のデータを管理するためのオープンソースの分散型データベースです。
これが、HBaseとMongoDB、Cassandraの基本的な違いです。
データベースの種類
HBaseとMongoDB、Cassandraのもう一つの違いは、HBaseとCassandraがカラム指向であるのに対し、MongoDBはドキュメント指向であることです。
言語
MongoDBはC、C++、JavaScript、CassandraはJavaで書かれているのに対して、HBaseはJavaで書かれています。
ここがHBaseとMongoDB、Cassandraの大きな違いです。
開発者
Apache Software FoundationがHBaseとCassandraを、MongoDB IncがMongoDBを開発しました。
トリガー
もう一つ、HBaseとMongoDBとCassandraの違いは、HBaseとCassandraにはトリガーがあるが、MongoDBにはトリガーがないことである。
セカンダリーインデックス
また、HBaseにはセカンダリーインデックスがありませんが、MongoDBにはセカンダリーインデックスがあり、Cassandraには制限付きのセカンダリーインデックスがあります。
レプリケーション方法
また、HBaseとCassandraは選択可能なレプリケーションファクター、MongoDBはマスター・スレーブ型のレプリケーションファクターを使用しています。
結論
HBase、MongoDB、Cassandraは、3つのNoSQLまたは非リレーショナルデータベースシステムです。
HBaseとCassandraは列指向のデータベースであるのに対し、MongoDBは文書指向のデータベースです。
これがHBaseとMongoDB、Cassandraの違いです。
これらは、ビッグデータ、コンテンツ管理、モバイルやソーシャルインフラ、データハブなど様々な用途に利用されています。