对于时间序列汇总/汇总,流处理是否比批处理更好?

时间:2019-03-25 09:22:35

标签: apache-spark apache-kafka stream batch-processing apache-kafka-streams

背景-

时间序列数据导入到我存储在Cassandra中的Apache Kafka中。由于原始数据需要大量存储,因此我尝试汇总数据并创建每小时,每天,每月的汇总报告。我可以想到两种方法:

  1. 流处理: 使用Kafka Streams API汇总数据并将汇总的数据提取到Cassandra中。
  2. 批处理: 将原始数据摄取到Cassandra中,并维护新摄取密钥的索引。运行调度程序以从索引表中获取自上次运行以来新获取的键,从Cassandra获取时间序列,汇总并存储到每小时的每日表中。

您认为哪种方法更好,为什么?

我尝试了批处理方法。即使我的汇总系列在一段时间内失败/失败,它也可以使我赶上数据。但是我认为,浪费大量资源来提供可靠性。

我希望在不消耗太多资源的情况下完成汇总。

1 个答案:

答案 0 :(得分:1)

这两种解决方案都是可行的。由于我对Cassandra的经验很少,因此我只会提及使用Kafka Streams解决此问题的可能性:

此页面包含一些高级示例: