我创造了一个 table
在 ksql
从 kafka topic
. 将一组数据推送到主题并填充表。发布了一个查询,也得到了回复。这是我第二次将相同的数据推送到 topic
以及 table
再次加载。现在,当我查询时,响应是2行,而不是1行和2行 ROWTIME
时间戳。
我相信 ksql table
如果相同,则应覆盖该值 key
输入并保留最新值。但那不会发生。我的理解正确吗?
应该为未来做些什么 table
在插入/更新的同一个键上保留最新值并放弃以前的值?谢谢
1条答案
按热度按时间kse8i1jr1#
据我所知,不可能应用日志压缩策略来为每个密钥保留一条消息。即使你设定了
cleanup.policy=compact
(主题级)或log.cleanup.policy=compact
(全局级别),不能保证只保留最新的消息,而压缩较旧的消息。根据Kafka官方文件:
日志压缩为我们提供了更细粒度的保留机制,这样我们就可以保证至少为每个主键保留最后一次更新