Cassandra数据聚合和汇总

时间:2018-10-21 12:34:17

标签: cassandra cql3

哪种是在Cassandra集群中聚合和存储回数据的最佳方法?我的意思是,有一个包含小时数据的表,每天汇总一次,然后保存在另一个表中。可以通过对每个键/期间进行选择和插入来简单地实现这一点,但是有没有更好或不同的方法?物化视图呢?

1 个答案:

答案 0 :(得分:0)

材料化视图

在cassandra中,物化视图的使用非常有限:

  • 源表中的所有主键必须以可能不同的顺序出现在视图中。

  • avg这样的聚合函数不能使用

  • GROUP BY不允许

因此,我认为这不适合您的基于时间的汇总,也不适合任何其他聚合。

顺便说一句,物化视图已被追溯分类 作为实验性的,不建议用于新的生产用途。

手动解决方案

一旦永久冻结要聚合的数据,这将非常好...如果不冻结,则将很难处理一致性。

索引

一种完全不同的汇总方法是使用Elassandra索引时间列。我们将创建一个Elasticsearch二级索引并自动保持同步。然后,使用date histogram aggregation使用嵌入的Elasticsearch API在不同的时间范围内进行查询。

这样,聚合结果就不会存储,而是从有效的辅助数据结构中实时计算出来。