我正在使用Apache Beam从Kafka阅读。我想使用有效负载中的事件时间戳,而不是默认的LogAppendTime,因为对Kafka的写入顺序不正确。
我看到了一个解决方案 Apache Beam: Error assigning event time using Withtimestamp
我们如何定义水印?考虑到它应该是单调的。
在方法
中getWatermark(TimestampPolicy.PartitionContext ctx)
当事件迟到几个小时后,我们如何确定水印。
这似乎是乱序写入和事件时间窗口化的非常常见的情况。我没有太多关于这方面的文献。
答案 0 :(得分:0)
您可以使用ParDo
和outputWithTimestamp
从数据中提取时间戳,如此处https://beam.apache.org/documentation/programming-guide/#adding-timestamps-to-a-pcollections-elements