我们需要对Cassandra数据库执行分析和报告。
以下是我们迄今已确定的方法。
1)在cassandra顶部使用火花。
缺点 :
- 我们将大量使用聚合函数和cassandra,因为数据是按行键分区的。如果groupby行与我们的行键匹配,则性能会很差。
- 没有开箱即用的UI用于显示报告的火花
- 它需要一个程序员(java / scala / python)来添加/修改未来
导致高维护成本的要求
2)将数据移至红移并在其上执行分析。
- 这对于我们的聚合查询非常有效,因为redshift是柱状数据库。
- 能够在redshift中创建表时根据我们的分析查询指定排序和分发
- UI合作伙伴可用于报告
- 特殊查询支持SQL(减少维护)
缺点 :
- 我们需要将数据从cassandra移动到redshift。我们已经确定AWS Firehose为我们这样做了。随着写入cassandra,我们也会写入firehose流,它将为我们写入redshift。
- 涉及redshift和Firehose的AWS成本。
到目前为止,我们倾向于红移。我的假设是否有任何错误。?有没有替代品?