在Kafka中,是否可以创建一个日志压缩主题,其中通过压缩保留最旧的值(而不是新的值(,用于分析目的?我要创建一个类似的查询
select k, min(d) from topic_src group by d
我正在研究使用ksql/ksqldb/kstreams的方法。最简单的&我想到的最有效的方法是创建一个日志压缩主题或ktable,为每个键保留最旧的值。
我想知道是否有可能压缩以保持最旧的值,而不是最新的值。如果可能的话,我会用这个自定义策略创建一个新的主题,以保留每个键的最旧值,并有一个通往这个新主题的ksql/kstreams管道。
或者,我认为创建一个具有窗口聚合功能的表以获取最旧值,然后在查询时再次汇总最旧值的可能性较低。在第一个值之后,相同键上的所有后续批处理都将添加无用的值。
我认为使用日志压缩不可能只保留最旧的值。由于此策略会清理记录,并在log.cleaner.min.compation.lag.ms.给出延迟后保留密钥的最新版本
以下是对日志压缩的一些详细解释。
https://www.quora.com/How-does-Kafka-s-log-compaction-work
https://medium.com/swlh/introduction-to-topic-log-compaction-in-apache-kafka-3e4d4afd2262
而且,主题配置是通过合流。
https://docs.confluent.io/current/installation/configuration/topic-configs.html
我希望它能回答这个问题。