【问题标题】:Streaming data processing joining with different two latency具有不同两个延迟的流式数据处理连接
【发布时间】:2022-12-09 07:07:40
【问题描述】:
我们有两个事务,但我们需要为将来的情况配置它们。我很好奇你对这个过程的想法。 (我是流数据的新手)
我们有 Flink 和 KStreams 环境。
这两个事务有两个不同的延迟。
- 如果我们对延迟没有限制,我们如何保证输出流中数据的完整性?
- 如果我们知道最大延迟为 60 秒,并且有一个
我们不能在内存中保存对象的约束,我们怎么能
确保输出流中数据的完整性?
【问题讨论】:
标签:
bigdata
streaming
apache-flink
flink-streaming
data-stream
【解决方案1】:
在 Flink 中,WatermarkStrategy 负责管理完整性和延迟之间的权衡。通过更长的水印延迟,您可以更有信心地对完整数据进行操作,但代价是额外的延迟。
...并且有一个限制,我们不能将对象保存在内存中
在这种情况下确保结果的完整性取决于您在做什么。例如,如果您正在计算窗口分析,那么您可以使用窗口结果的增量聚合来将您保持的状态限制为单个值。只要水印是正确的(意味着你避免有任何迟到的数据),那么你的结果就是完整的。
(就其价值而言,当使用 RocksDB 而不是状态后端的堆时,Flink 还能够将状态溢出到磁盘。)