我有一个工作Flink工作建立在Flink数据流上。我想根据Flink有状态函数3.1重写整个作业。
我目前工作的职能如下:
1
的无序问题。
我的目标
。
我目前的计划
我读过医生的书,并有了一些想法。我的计划是:
Kafka Ingress(https://nightlies.apache.org/flink/flink-statefun-docs-release-3.0/docs/io-module/apache-kafka/)处理它,MinIO不在默认的Flink I/O Connectors列表中,因此我需要自己为MinIO编写自定义Flink I/O Connector,因为https://nightlies.apache.org/flink/flink-statefun-docs-release-3.0/docs/io-module/flink-connectors/Embedded module,因为这样可以防止缩放。自动缩放是我想迁移到Flink stateful functions的关键原因
我的问题
我对我的计划没有信心。我的理解/计划有什么问题吗?
有什么最佳做法值得我参考吗?
更新:
使用windows来组装结果。
G 254
我想在重写的时候去掉窗户,但我不知道怎么做
发布于 2022-01-10 19:11:34
背景:使用KeyedProcessFunctions而不是KeyedProcessFunctions组装相关事件
使用DataStream API,windows并不是将相关事件组装在一起的良好构建块。问题是,窗口的开始和结束是在与时钟一致的时候,而不是与事件对齐。因此,即使两个相关事件仅相隔几毫秒,它们也可能被分配到不同的窗口。
通常,用关键的过程函数来实现这种用例更加简单,并根据需要使用计时器来处理丢失或延迟的事件。
使用Statefun 实现了这一点。
您可以使用上面提到的相同的模式。函数id将扮演与键相同的角色,您可以使用延迟消息而不是计时器:
当每个切片到达时,将其添加到正在组装的数据包中,如果是第一个片,则将其添加到正在组装的数据包中,发送一个延迟消息,在所有的切片到达时作为超时
F 213
https://stackoverflow.com/questions/70636370
复制相似问题