在kafka的topic Configs中有一个设置:

message.timestamp.type

修改topic config 参考:

​​​​​​kafka topic config 参数_Sara2018的博客-CSDN博客_kafka topic 参数

它有2个参数:

分别是:CreateTime --kafka创建数据的时间

和:LogAppendTime --日志生成的时间,这个时间是生成日志所在的机器的时间

kafka的topic configs默认是createtime

什么时候设置成LogAppendTime?(即适用的场景)

flink处理历史数据时,事件时间只能与当前的时间作比较,及小于现在的时间都参与计算,大于的视为脏数据过滤掉。这样的话,我们没有办法知道对于之前的某个时间,数据是否为脏数据,因为kafka timestamp 都是现在的时间。

而设置成LogAppendTime之后,kafka timestamp就是那条数据产生是的机器时间戳,这样每条数据除了事件时间,还有产生这条数据的时间。通过事件时间<kafka timestamp 过滤数据就可以把脏数据过滤掉。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐