繁体   English   中英

Apache Flink和事件排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM