[解決済み] ElasticsearchとCassandraの比較 vs ElasticsearchとCassandraの比較
質問
私はNoSQLを学んでおり、あるクライアントの要件についてさまざまな選択肢を検討しています。 この質問を投稿する前に、様々なリソースに目を通しました(NoSQLの知識がほとんどない者です)。
- データを高速に保存し、データを読み取る必要があるのですが。
- 完全なフェイルセーフと容易なスケーラビリティ。
- Analyticsのためのデータ検索が可能です。
結局、短いリストになりました。
Cassandra and Elasticsearch
私が理解しているのは、Cassandraはデータを書き、インデックスを使用してデータを読み取ることができるので、私にとって完璧なNoSQLストレージソリューションであるということです。 Cassandraが失敗する、あるいは失敗する可能性があるのは、Analyticsの分野です。将来、私がデータを
from_date to to_date
データモデルを適切に設計し、長期的な展望を持たなければ、変化し続ける世界ではかなり難しいかもしれません。
一方
Elastic Search
は(Luceneに支えられた)インデックス作成に最も適しており、ランダムなテキストを投げることでランダムにデータを検索することができます。しかし、私がデータを取得したい場合でも、それは同じように動作するのでしょうか?
from_date to to_date
(かもしれないと予想しています)。しかし、本当の問題は、サーチエンジンなのか、それともCassandraのような完璧なNoSQLデータストレージなのか、ということだ。もしそうなら、なぜ我々はまだCassandraを必要とするのでしょうか?
もし、この2つが別の世界であるならば、そのことを説明してください どのように組み合わせれば、より効果的なソリューションになるのでしょうか?
どのように解決するのか?
私たちのアプリケーションの1つは、CassandraとElasticSearchの両方に保存されているデータを使用しています。 Cassandraを使って可能な限りレコードにアクセスし、特定のアプリケーション側のリクエストに準拠するように設計されたクエリテーブルにデータを複製しています。 クエリテーブルよりも自由度の高い検索を行うには、ElasticSearchがうまく機能します。
私たちは、同じ質問をしたことがあります..."なぜ私たちはElastsicSearchからすべてを取得しないのですか?
その答えは、ElasticSearchは検索エンジンとして設計されており、永続的なデータストアではないからです。 ElasticSearchは書き込みができなくなることがあります。 ElasticSearchでスキーマの変更を行うには、すべてを吹き飛ばし、リロードする必要があるため、困難です。 そのために、ElasticSearchをCassandraクラスタと同期させるためのジョブを書いています。 また このトピックについては、Quoraで最近議論されました。 ということです。
とはいえ、ElasticSearchの動作は すごい を検索エンジンとして使用することができます。 そしてCassandraの動作は 素晴らしい スケーラブルでハイパフォーマンスなデータストアとして。 しかし クエリ とは異なります。 検索 を探すことができます。 どちらか一方が必要な場合もありますし、この2つの組み合わせは私たちのアプリケーションではうまく機能します。 この2つの組み合わせは、私たちのアプリケーションではうまくいきますが、あなたのアプリケーションではうまくいかないかもしれません。
分析に関しては、Cassandra Sparkコネクタを使用して、より複雑なOLAPクエリを提供することに成功しました。 お役に立てれば幸いです。
20200421を編集
似たような質問に対して、より新しい回答を書きました。
関連
-
[解決済み] クラスタのインデックスの名前を変更する方法は?
-
[解決済み] Elasticsearchです。ローカルホストのポート9200への接続に失敗 - 接続拒否
-
[解決済み] ElasticsearchとCassandraの比較 vs ElasticsearchとCassandraの比較
-
[解決済み] ElasticsearchでRead timed outを修正する方法
-
[解決済み] Elasticsearchは、複数のドキュメントを含むトランザクションをサポートする方法
-
[解決済み] kibanaからcsv/excelへのエクスポート
-
[解決済み] LogstashでElasticsearchの出力テンプレートを設定する方法
-
[解決済み] elasticsearchが特定のフィールドのみを返すようにするか?
-
[解決済み】Elasticsearchエラー:cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)], flood stage disk watermark exceeded.
-
[解決済み】ElasticsearchのMUSTとSHOULDの違い boolクエリ
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Elasticsearchです。ローカルホストのポート9200への接続に失敗 - 接続拒否
-
[解決済み] エラスティックサーチのインストールされているバージョンをkibanaから知るには?
-
[解決済み] Elasticsearchのクエリ文字列のクエリにnot equal to?
-
[解決済み] Elasticsearchにおけるハイライト
-
[解決済み] ElasticSearchのキーワードフィールドの「Fielddata is disabled on text fields by default」を修正する方法
-
[解決済み] kibanaからcsv/excelへのエクスポート
-
[解決済み] LogstashでElasticsearchの出力テンプレートを設定する方法
-
[解決済み】ElasticsearchのMUSTとSHOULDの違い boolクエリ
-
[解決済み】elasticsearchのboolクエリはORで結合する必要があります。
-
[解決済み】Elasticsearchの集計結果/バケットを10個だけでなく全て表示する。