Google cloud dataflow 从Kafka源读取时,使用梁管道中的事件时间

Google cloud dataflow 从Kafka源读取时,使用梁管道中的事件时间,google-cloud-dataflow,apache-beam,Google Cloud Dataflow,Apache Beam,我有一个从Kafka源读取的beam管道(AppendLogTime不可用),时间戳嵌入在Kafka流中的数据对象中 我想在我的管道中使用事件时间,在谷歌搜索了一下之后,我看到一些解决方案在从KafkaIO读取数据时使用CustomeFieldTimePolicy(提取数据对象的时间戳并使用它设置水印) 但是我看到了另一种解决方案,它使用WithTimestamps.of()将时间戳分配给元素 我的问题是,这两种方法有什么不同?因为在我看来,他们的工作非常相似 谢谢。您想使用CustomFiel

我有一个从Kafka源读取的beam管道(AppendLogTime不可用),时间戳嵌入在Kafka流中的数据对象中

我想在我的管道中使用事件时间,在谷歌搜索了一下之后,我看到一些解决方案在从KafkaIO读取数据时使用CustomeFieldTimePolicy(提取数据对象的时间戳并使用它设置水印)

但是我看到了另一种解决方案,它使用WithTimestamps.of()将时间戳分配给元素

我的问题是,这两种方法有什么不同?因为在我看来,他们的工作非常相似


谢谢。

您想使用
CustomFieldTimePolicy
。这将调整用于计算卡夫卡源水印的时间戳

WithTimestamps.of()
用于更改管道中元素的时间戳,但不影响水印。它是基于
ParDo
的。由于禁止与水印冲突,因此它只能进行哪些转换