Kafka Streams:如何归档具有特定 ttl 的数据

Kafka Streams : How can you archive data which has certain ttl

Kafka 流提供了不同的持久存储,其中之一是 RocksDBWindowStore。因此,如果我们设置保留时间,如果超过保留时间,它将删除键值对。在删除此数据之前,是否提供了我们可以使用的任何回调功能? Usecase- 我想在数据从 rocksdb 中删除之前将数据归档到分布式数据库中。

没有回调

但是,所有的数据在Kafka中也是写到一个topic中的。因此,您可以使用此主题将数据存档到不同的存储中。主题名称将为 <application.id>-storeName-changelog.

虽然没有回调,但Rocksdb本质上是一个sorted db,是key排序的。因此,我使用了两个商店,一个基于时间戳(一种树图),其中包含一组键,另一个基于原始键值。因此,我可以迭代基于时间戳的存储并从其他存储中存档键值对,然后从两个存储中删除键,这些键需要在特定时间后存档。