まとめ

完了
  • Apache HBase は、Google の BigTable 分散ストレージ システムのオープンソース バージョンです。 これらの両システムは、分散性、スケーラビリティ、およびパフォーマンスに優れた、バージョン管理型データベースです。
  • HBase はデータをテーブルへと編成します。テーブルの各行にはキーでインデックスが付けられ、データは列に保存されます。 複数の列を 1 つの列ファミリにグループ化することもできます。
  • HBase では列を入力する必要はありません。列は必要に応じて追加することもできます。 HBase は、データを列によってディスクに保存し、列形式のデータベースにします。
  • HBase の行に保存されているデータはバージョン管理されます。既定では、操作は最新バージョンのデータに適用されます。
  • HBase では、Get、Put、Scan、および Delete の各操作がサポートされています。
  • HBase は、複数のノードのクラスターとして編成されます。1 つのノードがマスターとして指定され、その他のノードはリージョンサーバーと呼ばれます。 クラスターの管理には、ZooKeeper が使用されます。 HBase でのデータの保存には、通常、HDFS が使用されます。
  • テーブル内のデータは、リージョンにパーティション分割され、個々のリージョンサーバーに割り当てられます。リージョンの割り当ての記録は、HBase マスターによって保持されます。
  • HBase は ACID に完全に準拠しているわけではありません。特に、複数の行にまたがる操作については注意が必要です。 そのような場合、データに対する HBase からの後続の要求で、古いデータが返されることがあります。
  • HBase は、ビッグデータ ストレージに最も適しており、複数の行に高速アクセスして集計を行うこともできます。 複数のインターフェイスを通じて、MapReduce や Web アプリケーションとも接続できます。
  • HBase では結合がサポートされていないため、アプリケーションを設計する際には、一貫性モデルについて考慮する必要があります。
  • MongoDB は、ドキュメントをコレクションで保存するドキュメント ストアです。
  • MongoDB は、バイナリ JSON (BSON) 形式を使用して、内部的にデータを保存します。
  • MongoDB は、レプリケーションとシャーディングを使用して、複数のクラスターにスケーリングすることができます。
  • MongoDB は、スケールアウトが必要なアプリケーションで、高速な一括書き込みが必要な場合や、データに地理的空間インデックスを使用する必要がある場合によく使用されます。
  • Apache Cassandra は、完全分散型の構造化されたキー値ストレージ システムです。HBase と Dynamo の設計上の特性が複合的に採用されています。
  • Cassandra のテーブルは列ファミリと呼ばれ、各レコードにキーでインデックスを付けたうえで、列によって構成されます。複数の列を 1 つのスーパー列にグループ化することもできます。
  • Cassandra の行は、入れ子になった "キーと値のペア" のシーケンスとして返されます。
  • Cassandra での一般的な操作としては、Gets、Inserts、および Deletes があります。 これらの操作は、個々の行、行のグループ (範囲)、および列のグループ (スライス) に対して実行できます。
  • Cassandra は、分散型のピアツーピア アーキテクチャを使用して、複数のノードのクラスター上で実行されます。 Cassandra では、各ノードのローカル ストレージを使用してデータが保存されます。
  • Cassandra のノードはトークン リング内に配置されます。Cassandra は、コンシステント ハッシュ法を通じて各行のキーのハッシュ値を使用し、クラスター内のさまざまなノード間で行を自動的に分散します。 すべてのノードは、トークン リング内の他のすべてのノードを認識し、クライアント要求を適切なノードへと自動的に転送します。
  • Cassandra は、ユーザー定義のレプリケーション係数に基づいて、ノード間で行をレプリケートします。
  • Cassandra のすべての操作は、ユーザー定義の一貫性レベルに従って実行されます。 一貫性レベルを指定することで、すべての操作について、一貫性とパフォーマンスのトレードオフを調整することができます。
  • Cassandra では、特殊なアルゴリズムを使用して、障害の検出が処理されます。Cassandra のノードでは、オフラインのノードへの書き込み要求を一時的に追跡し、そのノードがオンラインに戻ったときに、それらの操作を転送することができます (ヒンテッド ハンドオフ)。
  • Cassandra の ACID プロパティは、操作ごとに構成できます。
  • Cassandra は、その機能セットを理由に広く使用されています。また、調整可能な一貫性モデルがサポートされているので、アプリケーションを設計する上で非常に柔軟に対応できます。
  • OpenStack Swift は、パブリック クラウドやプライベート クラウドにデプロイされる、オープンソースのオブジェクト ストレージ システムです。
  • Swift では、オブジェクトへのアクセスに、S3 に似た REST インターフェイスが使用されます。
  • Ceph オブジェクト ゲートウェイは、RADOS 分散オブジェクト ストアに対するアクセス レイヤーです。 これを使用すると、RADOS に対する、S3 互換と SWIFT 互換の両方のインターフェイスが提供されます。