2

我们需要对 Cassandra 数据库执行分析和报告。

以下是我们迄今为止确定的方法。

1)在 cassandra 上使用 spark 。

缺点 :

  • 我们将在 cassandra 中大量使用聚合函数,因为数据是按行键分区的。如果 groupby 行与我们的行键匹配,那么性能会很差。

  • 用于显示报告的 spark 没有开箱即用的 UI

  • 它需要一个程序员(java/scala/python)来添加/修改未来的
    需求,这会导致高昂的维护成本

2)将数据移至红移并在其上执行分析。

  • 这对我们的聚合查询很有效,因为 redshift 是列式数据库。

  • 在 redshift 中创建表时,能够根据我们的分析查询指定排序和分发

  • 可用于报告的 UI 合作伙伴

  • 即席查询支持 SQL(较少维护)

缺点 :

  • 我们需要将数据从 cassandra 移动到 redshift。我们已经确定 AWS Firehose 可以为我们执行此操作。除了写入 cassandra,我们还将写入 firehose 流,该流将为我们写入 redshift。
  • AWS 成本涉及 redshift 和 Firehose 。

到目前为止,我们倾向于 redshift 。我上面的假设有什么错误吗?有没有其他选择?

4

1 回答 1

1

带有 Cassandra 的 Spark 可能是更常见的选择。有两点值得注意,a) 您可以使用 Spark 在内存中缓存 RDD;2) Spark SQL 工作正常,您不需要使用 Spark 编程语言。

于 2016-06-21T18:44:15.793 回答