[英]Apache Flink and event sequencing
我是Apache Flink的新手,正在尝试组织来自IoT设备的数据,这些设备监视正在扫描Wifi的设备。 一个典型的事件如下所示:
{NodeId,设备MAC地址,时间,类型}
我希望能够查看MAC地址的上一个事件,并且如果当前事件时间小于该MAC地址的上一个事件的指定时间间隔(例如60秒),则我希望为该事件更新一个正在运行的事件总数苹果电脑。 但是,如果间隔时间过去了,我希望将聚合事件写入数据库。 聚合事件如下所示:
{NodeId,MAC地址,上次事件时间,事件总数,日期,小时}
为了进一步使事情复杂化,我想保留每个NodeId的每小时和每日运行总计,以保持每个节点的所有MAC地址事件的运行总计,并在相关期间完成后输出到数据库。
我仔细阅读了文档,但是在理解我完成该任务所需使用的组件方面有些挣扎。
提前致谢
这听起来像是为会话窗口生成聚合的问题。
您可以这样做:
stream.keyBy(new KeySelector<Event, Integer>() {
@Override
public Integer getKey(Event value) throws Exception {
return value.nodeId;
}
}).window(EventTimeSessionWindows.withGap(Time.seconds(60)))
.apply(new ReduceFunction<LogRow>(), new WindowFunction<LogRow, Object, Integer, TimeWindow>())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.