我们需要在Cassandra数据库上执行分析并报告。
以下是我们到目前为止已经确定的方法。
1)在Cassandra顶部使用火花。
缺点:
-
我们将大量使用聚合功能,在Cassandra中数据通过行键分区。如果groupby行dosent匹配使用我们的行键,性能将是不好的。
-
no Box UI以显示报告
-
它需要一个程序员(Java/scala/python)来添加/修改未来
导致高维护成本的要求
2)将数据移动以红移并在其顶部执行分析。
-
这对我们的聚合查询很好,因为红移是柱状数据库。
-
能够根据我们的分析查询指定排序和分发而在红移中创建表
-
UI合作伙伴可用于报告
-
SQL支持Adhoc查询(较少维护)
抽回:
- 我们需要将数据从Cassandra移动到红移。我们有确定AWS Firehose可以为我们做到这一点。卡桑德拉,我们还将写信给Firehose流,该流写信给对我们的红移。
- 涉及红移和消防的成本。
到目前为止,我们正倾向于红移。上面的假设中有任何错误吗?是否有其他选择?
带有卡桑德拉的火花可能是更常见的选择。值得注意的两个点,a)您可以使用Spark和2)Spark SQL的记忆中的RDD效果很好,您无需使用Spark的编程语言。