背景-
时间序列数据导入到我存储在Cassandra中的Apache Kafka中。由于原始数据需要大量存储,因此我尝试汇总数据并创建每小时,每天,每月的汇总报告。我可以想到两种方法:
您认为哪种方法更好,为什么?
我尝试了批处理方法。即使我的汇总系列在一段时间内失败/失败,它也可以使我赶上数据。但是我认为,浪费大量资源来提供可靠性。
我希望在不消耗太多资源的情况下完成汇总。
答案 0 :(得分:1)
这两种解决方案都是可行的。由于我对Cassandra的经验很少,因此我只会提及使用Kafka Streams解决此问题的可能性:
它还允许处理迟到的记录:
有了Kafka Streams,除了Kafka,您将不需要维护一个单独的数据库,所有聚合都将在客户端应用程序中运行。在内部,Kafka Streams将使用RocksDB作为存储选项。汇总的结果可以写入单独的输出主题,也可以使用交互式查询功能进行查询:
此页面包含一些高级示例: