[解決済み] MongoDB vs. Cassandra【クローズド】。
質問
私は、最適な移行オプションが何であるかを評価しています。
現在、私はシャード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の最も重要な勝利でしょう。
関連
-
MongoDB集計グループの操作ガイド
-
[解決済み】MongoDBデータベースの名前を変更する方法とは?
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
MongoDBクエリ
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] mongodbの最後のN個のレコードを取得する方法は?
-
[解決済み] MongoDBのリレーションシップ:埋め込みか参照か?
-
[解決済み】Cassandraのパーティションキー、コンポジットキー、クラスタリングキーの違い?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MongoDBプライマリシャード概要
-
MongoDBのレンジスライスキーとハッシュスライスキーについて説明します。
-
Navicat Premiumでmongodbと接続する詳細チュートリアル
-
MongoDBデータベースのインストールとデプロイメント、および警告の最適化
-
[解決済み] MongoDBとその逆の上にCouchDBを使用するとき
-
[解決済み】フィルタリング用途のelasticsearch v.s. MongoDB【クローズド
-
[解決済み] ロックファイルを作成/開くことができません。/data/mongod.lock errno:13 パーミッションが拒否されました。
-
[解決済み] フィールドの種類を変更するには?
-
[解決済み] コマンド1つでmongo DBを停止する方法
-
[解決済み] Mongoose を使って MongoDB ドキュメントからキーを削除する