いくつかのコンテキストを提供するために、私は小さなスタートアップ(4人のチームメンバー)から来ており、私たちは教育スペースで働いています。
私たちは、いくつかの学校がすでに使用しているeラーニングプラットフォームを開発しました。現在、プラットフォームへの1日に約2万ページのリクエストがあります。
ユーザーについて可能な限りあらゆるデータの収集を開始して、データ分析を開始し、データから学習できるようにしたいと考えています。
ここ数週間、Cassandraについて学習しました。これは、このすべてのユーザーデータを収集し、すばやく読み取ることができる優れたソリューションになると思います。また、 SUMやAVGクエリなどを実行するには、Hadoopなどを使用して、Cassandraがそうであるように、データに対してmapreduce操作を実行できるようにする必要があります。この種のクエリはできません。
現在のMySQLデータベースは非常に小さい(150MB程度)。それを念頭に置いて、Cassandra道を進む価値はありますか?
スケーラビリティに関する限り、先を見すぎているのではないかと考え始めています。私が検討してきたオプションは、物事を単純化してElasticSearchから始め、すべてのユーザーイベントデータを保存し、Hadoopなどを使用せずに簡単に検索できるようにすることです。
主な質問: Cassandraはまだこのような小規模で適しているでしょうか?または、ElasticSearchのような単純なnoSQLストアを検討する必要がありますか?
Cassandraへの移行が間違いなく将来のことであると予想される場合は、データセットがまだ小さく、管理可能である間、それはより簡単になります。また、Cassandraについて学び、感触を得るにつれて、小さなデータセットは、間違いを犯すのに適しています(したがって、それらを修正するのが簡単です)。これにより、データセットが大きくなるまでにデータモデルが安定し、それが本当に重要なのです。私見では、そのようなことはありませんカサンドラにとっては「小さすぎる」。
私たちのアプリケーションの1つはCassandraとElasticSearchを製品で使用しています。これらの経験に基づいて、ElasticSearchを永続データストアとして使用することについていくつかの注意を提示します。書き込みがかなり頻繁に失われることがわかりました。 ElasticSearchをプライマリデータストアとして使用してはいけないのはなぜですか? とはいえ、検索エンジンとしては非常に機能します。