Kafka S3 Sink Connector - 如何将分区标记为完整

Kafka S3 Sink Connector - how to mark a partition as complete

我正在使用 Kafka 接收器连接器将数据从 Kafka 写入 s3。输出数据按小时划分为桶 - year=yyyy/month=MM/day=dd/hour=hh。此数据由下游的批处理作业使用。因此,在开始下游作业之前,我需要确保在给定分区的处理开始后,没有其他数据会到达该分区。

最好的设计方法是什么?如何将分区标记为完成?即,一旦标记为完成,将不会向其中写入其他数据。

编辑: 我将 RecordField 用作 timestamp.extractor。我的 kafka 消息保证按分区字段在分区内排序

取决于您在接收器配置中使用的时间戳提取器。

您必须保证没有记录的时间戳可以早于您使用它的时间。

据我所知,唯一可行的方法是使用 WallClock Timestamp Extractor。否则,您将使用 Kafka 记录时间戳,或每条消息中的某个时间戳。这两者都可以在过去的某个事件的生产者端被覆盖