Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡溪流:RocksDB TTL_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka 卡夫卡溪流:RocksDB TTL

Apache kafka 卡夫卡溪流:RocksDB TTL,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我知道默认TTL设置为无穷大(非正)。但是,如果我们需要在存储区中保留数据最多2天,我们可以使用RocksDBConfigSetter接口实现(即options.setWalTtlSeconds(172800))进行覆盖吗?还是会与卡夫卡冲突 参考: 这目前是不可能的。由于各种技术原因,Kafka Streams以硬编码方式禁用RocksDB的TTL功能。还有一张这张票: 要知道,您可以使用窗口存储在2天后使旧记录过期。例如,使用1ms的TimeWindow和只返回键的最新值的“dummy”re

我知道默认TTL设置为无穷大(非正)。但是,如果我们需要在存储区中保留数据最多2天,我们可以使用RocksDBConfigSetter接口实现(即options.setWalTtlSeconds(172800))进行覆盖吗?还是会与卡夫卡冲突

参考:

这目前是不可能的。由于各种技术原因,Kafka Streams以硬编码方式禁用RocksDB的TTL功能。还有一张这张票:


要知道,您可以使用窗口存储在2天后使旧记录过期。例如,使用1ms的
TimeWindow
和只返回键的最新值的“dummy”reduce执行
stream.groupByKey().windowedBy(…).reduce(…)

嗨,马提亚,谢谢。由于商店通过低级处理器API丰富,请建议是否有类似于上述高级DSL的解决方案。如果没有,我知道有一个开放的票证,我计划以特定的频率迭代键值存储以删除它们。您也可以通过处理器API创建一个窗口存储而不是普通键值存储。嗨,Matthias,我面临着类似的问题。我的拓扑结构中有
windowedBy()
函数,时间窗口为1小时。但当我检查光盘使用情况时,
/tmp/kafka streams
文件夹不断增加。24小时内从5克减至20克。rocksdb多长时间删除一次旧数据?谢谢我的代码类似于
.windowedBy(TimeWindows.of(Duration.of(Duration.of)(60)).grace(Duration.ZERO)).reduce((event1,event2)->event2)
默认情况下,保留时间为24小时。您可以通过
reduce(…,Materialized.as(null).withRetention(…)
对其进行配置。的可能重复项