【发布时间】:2014-05-09 19:54:24
【问题描述】:
我目前正在研究如何存储和分析基于时间的丰富数据,每行最多包含 1000 列。目前,Cassandra 以及 Datastax Enterprise 提供的 Solr、Hadoop 或 Spark 似乎可以满足我的粗略要求。但魔鬼在细节中。
在 1000 列中,大约 60 列用于类似实时的查询(网络前端、用户发送表单并期望快速响应)。这些查询或多或少是 GROUPBY 语句,其中计算了次数或出现次数。
由于 Cassandra 本身不提供所需的分析功能(没有 GROUPBY),我只剩下以下替代方案:
- 通过 Cassandra 粗略查询,并在自己编写的代码中过滤结果集
- 使用 Solr 索引数据并运行 facet.pivot 查询
- 使用 Hadoop 或 Spark 并运行查询
第一种方法看起来很麻烦并且容易出错……Solr 确实有一些分析功能,但没有多字段分组,我会被枢轴所困。我不知道这是一个好的还是高性能的方法……最后但并非最不重要的还有 Hadoop 和 Spark,之前的已知不是最好的实时查询,后来很新,可能还没有准备好生产。
那么走哪条路呢?这里没有万能的,但在我通过一种方式之前,我想得到一些反馈。也许我的想法很复杂,或者我的期望太高了:S
提前致谢,
阿曼
【问题讨论】:
-
您好,我只是想知道您最后是否使用了任何特殊策略,好吗?谢谢。
-
不幸的是,没有。部分原因是项目中途发生了变化……自从我在这里发帖以来,Solr 和 Spark 收到了许多更新。 Solr 方式工作正常,当索引完好无损时,这很难......另一方面,Spark 应该比 Hadoop 做得更好,但我没有时间检查它。
标签: hadoop solr cassandra analytics apache-spark