2017-04-03 75 views
0

我们有一个phak工作正在运行,它会消耗来自kafka流的数据,进行一些分析并存储结果。来自流的火花消耗 - 考虑更长时间段的数据

由于他们生产卡夫卡数据被消耗掉,如果我们想了整整一天

计数,计数一个小时,平均为整个 日

那这种方法是不可能的。有,我们应该遵循完成这样的要求

感谢所有帮助

感谢和问候

Raaghu.K

回答

1

你的数据流作业,是不应该计算每日计数/平均任何方式。

方法1: 您可以从卡夫卡的数据消费存储到像DB /的HBase/HDFS持久存储,然后你就可以每天运行批处理,将计算出你所有的统计资料,例如每日计数或平均。

方法2: 为了获得信息流自身,您需要使用累加器来保存记录数,总和。并根据计算平均值。

方法3: 使用流式窗口,但保留一天的数据没有任何意义。如果你平均需要5/10分钟,你可以使用这个。

我认为第一种方法更好,因为它可以让您更灵活地计算所需的所有分析。

+0

是的。我们曾想过方法1。但在此之前,我只想尝试不同的选择。让我检查如何使用Accumulators,正如您在方法2 – Raaghu

+0

中所提到的那样添加了方法3 :) – RBanerjee