1. ホーム
  2. elasticsearch

[解決済み] ElasticsearchとCassandraの比較 vs ElasticsearchとCassandraの比較

2022-02-05 03:41:03

質問

私は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とElasticSearch+Cassandraの比較