streaming - Apache Flink:如何将自定义逻辑应用于延迟事件?
问题描述
尽管 Flink 有一些内置的工具来处理迟到的数据,比如allowed lateness,我还是想自己处理迟到的数据。例如,我想监控迟到的事件或只是将它们保存到数据库中。
我怎样才能做到这一点?
解决方案
通常在窗口运算符中使用延迟和水印。如果您使用的是窗口运算符,则可以像这样使用侧输出:
val windowStream = eventStream.keyBy(output => output.rule)
.window(TumblingEventTimeWindows.of(Time.of(5, TimeUnit.MINUTES)))
.sideOutputLateData(lateOutputTag)
并从侧面输出中获取后期元素,如下所示:
windowStream.getSideOutput(lateOutputTag).print()
推荐阅读
- javascript - 视频结束时显示按钮
- database - 有没有办法手动锁定/解锁 PostgreSQL 中不依赖事务的表行?
- c# - 有效地将字符串编码为流
- c# - 如何在 aspx.cs 文件的 App_Code 文件夹中调用 .cs 文件中的方法?
- c++ - const 限定模板值的用途
- sql - SQL 中 SPLIT 上的条件 OFFSET
- javascript - 从 jQuery .css() 函数添加时 translateY 不起作用
- python-3.x - 如何有效地从线索中生成所有可能的二进制字符串?
- spring - 当在 master 的应用程序属性文件中设置 server.port 属性时,Spring Cloud Deployer Local 无法启动工作人员远程分区
- c - 使用编程语言 C 测试 Arduino Board 的引脚