如何在 Apache Beam 中读取 Kafka 记录摄取时间戳

How to read Kafka record ingestion timestamp in Apache Beam

我是 Apache Beam 的新手,并且为这个问题苦苦挣扎了一段时间。 我在 Apache Beam Java 中使用 KafkaIO 作为管道的来源。 我想获取 Kafka 记录摄取时间戳以及每条记录,并将其作为附加列写入我的输出。在 Kafka 中提取记录的时间戳,而不是事件时间。

我不知道如何在不使用函数 withoutMetadata() 的情况下使用 kafkaIOReader。据我了解,Kafka 记录摄取时间戳应该是每条记录的元数据的一部分?

如果您指定了时间戳政策,那么无论您是否正在读取元数据,您都应该能够access the timestamp of the resulting elements in your DoFn。然后您可以随意使用它(例如,将其粘贴到 POJO 的字段中)。