MongoDB vs. Cassandra [終了] 質問する

MongoDB vs. Cassandra [終了] 質問する

最適な移行オプションは何かを評価しています。

現在、私はシャード化された MySQL (水平パーティション) を使用しており、ほとんどのデータは JSON BLOB に保存されています。複雑な SQL クエリはありません (データベースをパーティション分割した後、すでに移行されています)。

現時点では、MongoDB と Cassandra の両方が選択肢になると思われます。私の状況:

  • クエリごとに大量の読み取りが行われ、定期的な書き込みは少なくなる
  • 「大規模な」スケーラビリティを心配していない
  • シンプルなセットアップ、メンテナンス、コードに重点を置く
  • ハードウェア/サーバーコストを最小限に抑える

ベストアンサー1

クエリごとに読み取りが多く、通常の書き込みが少ない

どちらのデータベースも、ホットデータセットがメモリに収まる読み取りでは優れたパフォーマンスを発揮します。また、どちらも結合のないデータモデルを重視し(代わりに非正規化を推奨)、インデックスを提供しています。文書またはただし、MongoDB のインデックスは現在より柔軟です。

Cassandraのストレージエンジンは、データセットがどれだけ大きくなっても、一定時間の書き込みを提供します。MongoDBでは書き込みがさらに問題になります。これは、Bツリーベースのストレージエンジンのせいもありますが、多粒度ロックします。

分析のために、MongoDBはカスタムマップ/リデュース実装を提供し、CassandraはネイティブHadoopサポートを提供します。ハイブ(Hadoop Map/Reduce 上に構築された SQL データ ウェアハウス) と(Hadoop固有の分析言語で、SQLよりもmap/reduceワークロードに適していると多くの人が考えています)。Cassandraは、スパーク

「大規模な」スケーラビリティを心配していない

単一のサーバーを検討している場合は、MongoDB の方が適している可能性があります。スケーリングを重視する人にとっては、Cassandra の単一障害点のないアーキテクチャの方がセットアップが簡単で信頼性も高くなります (MongoDB のグローバル書き込みロックも、より厄介になる傾向があります)。また、Cassandra では、複数のデータ センターのサポートなど、レプリケーションの動作をより詳細に制御できます。

シンプルなセットアップ、メンテナンス、コードに重点を置く

どちらもセットアップが簡単で、単一のサーバーに対して適切なすぐに使えるデフォルト設定が用意されています。Cassandra は特別な役割を持つノードを気にする必要がないため、マルチサーバー構成でセットアップするのが簡単です。

現在 JSON BLOB を使用している場合、MongoDB は BSON を使用してデータを保存するため、そのユースケースに非常に適しています。現在のデータベースよりもリッチでクエリ可能なデータを取得できます。これが Mongo にとって最も重要なメリットです。

おすすめ記事