Kafka流国家商店是“紧凑”的默认设置。是否可以在状态存储中使用保留策略设置“压缩,删除”?
rjjhvcjd1#
是的,可以使用保留和压缩配置主题,kafka streams将此设置用于窗口化 KTable s。如果确实要设置此项,可以在创建相应的changelog topic config之后手动更新它。但是,为changelog主题设置主题保留时间只会从主题中删除数据。不会删除本地状态存储中的数据。状态存储不提供ttl,rocksdbs ttl设置无法启用(出于我们希望最终解决的技术原因)。如果要干净地删除数据,应该使用tombstone消息来删除存储中的数据以及changelog主题(而不是使用保留时间)。
KTable
8ehkhllq2#
如果您使用的是默认rocksdbstore,则可以选择将compactionstyle设置为fifo:fifo压缩方式是最简单的压缩策略。它适合于以非常低的开销保存事件日志数据(例如查询日志)。它定期删除旧数据,因此基本上是一种ttl压缩样式。然后使用ttl:为此引入了一个新选项compression\u options\u fifo.ttl,用于删除ttl已过期的sst文件。此功能允许用户根据时间而不是总是根据大小删除文件,例如,删除所有超过一周或一个月的sst文件。rocksdb fifo文件要真正设置fifo,必须实现rocksdbconfigsetter并将其设置为配置属性:rocksdb.config.setter
2条答案
按热度按时间rjjhvcjd1#
是的,可以使用保留和压缩配置主题,kafka streams将此设置用于窗口化
KTable
s。如果确实要设置此项,可以在创建相应的changelog topic config之后手动更新它。
但是,为changelog主题设置主题保留时间只会从主题中删除数据。不会删除本地状态存储中的数据。状态存储不提供ttl,rocksdbs ttl设置无法启用(出于我们希望最终解决的技术原因)。
如果要干净地删除数据,应该使用tombstone消息来删除存储中的数据以及changelog主题(而不是使用保留时间)。
8ehkhllq2#
如果您使用的是默认rocksdbstore,则可以选择将compactionstyle设置为fifo:
fifo压缩方式是最简单的压缩策略。它适合于以非常低的开销保存事件日志数据(例如查询日志)。它定期删除旧数据,因此基本上是一种ttl压缩样式。
然后使用ttl:
为此引入了一个新选项compression\u options\u fifo.ttl,用于删除ttl已过期的sst文件。此功能允许用户根据时间而不是总是根据大小删除文件,例如,删除所有超过一周或一个月的sst文件。
rocksdb fifo文件
要真正设置fifo,必须实现rocksdbconfigsetter并将其设置为配置属性:rocksdb.config.setter