Kafka Streams:是否有可能在国营商店实施“紧凑,删除”政策?

时间:2018-05-31 10:39:59

标签: apache-kafka apache-kafka-streams

Kafka Streams状态商店默认为“紧凑”。是否可以在状态存储中使用保留策略设置“压缩,删除”?

2 个答案:

答案 0 :(得分:2)

是的,可以配置保留和压缩的主题,Kafka Streams将此设置用于窗口KTable

如果您确实要设置此项,则可以在创建后手动更新相应的更改日志主题配置。

但是,为changelog主题设置主题保留时间仅会删除主题中的数据。本地状态存储中的数据未删除。国营商店不提供TTL和RocksDBs TTL设置无法启用(出于技术原因,我们希望最终解决)。

如果要干净地删除数据,则应使用删除商店中数据的逻辑删除消息以及更改日志主题(而不是使用保留时间)。

答案 1 :(得分:-1)

如果您使用的是默认的RocksDBStore,则可以选择将CompactionStyle设置为FIFO:

  

FIFO压缩样式是最简单的压缩策略。它适用于以非常低的开销保存事件日志数据(例如查询日志)。它会定期删除旧数据,因此它基本上是一种TTL压缩方式。

然后使用TTL:

  

为此,我们引入了一个新选项compaction_options_fifo.ttl来删除TTL已过期的SST文件。此功能使用户可以根据时间而不是总是根据大小来删除文件,例如,删除超过一周或一个月的所有SST文件。

RocksDB FIFO doc

要实际设置FIFO,您必须实现RocksDBConfigSetter并将其设置为配置属性:rocksdb.config.setter