低级处理器api-rocksdb timetolive(ttl)

isr3a4wc  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(335)

我在尝试低层处理器api。我正在使用处理器api对传入的记录进行数据聚合,并将聚合的记录写入rocksdb。
但是,我想保留rocksdb中添加的记录,使其仅在24小时内处于活动状态。24小时后应删除记录。这可以通过更改ttl设置来完成。但是,没有太多的文档可以让我在这方面得到一些帮助。
如何更改ttl值?我应该使用什么JavaAPI将ttl时间设置为24小时,当前默认的ttl设置时间是多少?

wmtdaxz3

wmtdaxz31#

我相信这目前还没有通过api或配置公开。rocksdbstore在打开rocksdb时通过硬编码ttl:https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/state/internals/rocksdbstore.java#l158 硬编码的值就是ttl\u seconds=ttl\u not\u used(-1)(参见同一个文件中的第79行)。
目前有两个公开的关于在国有商店中公开ttl支持的票证:kafka-4212和kafka-4273:https://issues.apache.org/jira/issues/?jql=project%20%3d%20kafka%20and%20text%20~%20%22rocksdb%20ttl%22我建议您对其中一个描述您的用例进行评论,以使它们向前发展。
在此期间,如果您现在需要ttl功能,状态存储是可插入的,rocksdbstore源代码随时可用,因此您可以分叉它并设置ttl值(或者,像kafka-4273建议的pull请求一样,从configs中获取它)。
我知道这并不理想,真诚希望有人能给出一个更满意的答案。

相关问题