cassandra数据聚合和汇总

hivapdat  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(519)

在cassandra集群中聚合和存储数据的最佳方法是什么?我的意思是,有一个包含小时数据的表,在一天中汇总并保存在另一个表中。这可以简单地通过为每个键/周期选择和插入来实现,但是有更好的或不同的方法吗?物化视图呢?

ckx4rj1h

ckx4rj1h1#

物化视图

cassandra中物化视图的使用非常有限:
源表中的所有主键都必须以不同的顺序出现在视图中。
聚合函数,如 avg 无法使用 GROUP BY 不允许
因此,我认为它不适合基于时间的汇总,也不适合任何其他聚合。
顺便说一句,物化视图已经被追溯到实验类,不建议用于新的生产用途。

手动解决方案

一旦要聚合的数据被冻结,这就太好了,永远。。。否则,一致性将很难处理。

索引

一种完全不同的汇总方法是使用elassandra对时间列进行索引。我们将自动创建并保持同步的elasticsearch二级索引。然后使用嵌入的elasticsearch api在不同的时间尺度上进行查询,使用日期直方图聚合。
这样聚合的结果就不会被存储,而是从一个有效的二级数据结构中实时计算出来。

相关问题