1. ホーム
  2. mongodb

[解決済み] MongoDB vs. Cassandra【クローズド】。

2022-03-20 09:13:06

質問

私は、最適な移行オプションが何であるかを評価しています。

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

今のところ、MongoDBとCassandraの両方が選択肢になりそうな感じです。私の状況

  • クエリのたびに読み込みが多く、通常の書き込みは少ない
  • 大規模なスケーラビリティを心配する必要はありません。
  • シンプルなセットアップ、メンテナンス、コードをより重視
  • ハードウェア/サーバーのコストを最小限に抑える

解決方法は?

すべてのクエリで読み込みが多く、通常の書き込みが少ない

両データベースは、ホットデータセットがメモリに収まるような読み出しで高いパフォーマンスを発揮します。 また、両者とも結合のないデータモデルを重視し(代わりに非正規化を推奨しています)、両者とも以下のようなインデックスを提供しています。 ドキュメント または しかし、現在のところMongoDBのインデックスの方がより柔軟です。

Cassandraのストレージ・エンジンは、データセットがどんなに大きくなっても、一定時間書き込みが可能です。MongoDBでは書き込みがより問題になります。B-treeベースのストレージ・エンジンのせいでもありますが、それ以上に マルチグラニュラリティロック ということです。

分析については、MongoDBはカスタムマップ/リデュース実装を提供し、CassandraはネイティブHadoopサポートを提供しています。 ハイブ (Hadoopのマップ/リデュース上で構築されたSQLデータウェアハウス)および ピグ (Hadoopに特化した分析言語で、SQLよりもマップ/リデュースワークロードに適していると多くの人が考えています)。 Cassandraはまた、以下の使用もサポートしています。 スパーク .

大規模なスケーラビリティを心配する必要はありません。

サーバー1台で済ませるなら、MongoDBの方が適しているでしょう。拡張性を重視するならば、Cassandraの単一障害点なしのアーキテクチャの方がセットアップが簡単で信頼性も高いでしょう。(Cassandraは、複数のデータセンターのサポートなど、レプリケーションの仕組みをより詳細に制御することができます。

シンプルなセットアップ、メンテナンス、コードをより重視する

どちらもセットアップが簡単で、1台のサーバですぐに使える合理的なデフォルトが用意されています。Cassandraは、特別な役割のノードがないため、複数サーバー構成でのセットアップがより簡単です。

現在、JSONのブロブを使っているなら、BSONを使ってデータを保存するMongoDBは、あなたのユースケースとめちゃくちゃ相性がいいんです。現在のデータベースよりもリッチでクエリ可能なデータを持つことができるようになります。これはMongoの最も重要な勝利でしょう。