Apache kafka streams 如何为Kafka streams创建的状态存储设置保留期
我正在使用Streams DSL并进行有状态聚合(从一个主题读入数据,聚合数据并将其写入另一个主题)。如何缩短写入状态存储的数据的保留期?现在,我的infra团队说,数据在国家存储中保留5年,我必须减少这一点。是否有我可以设置数据应保留多长时间的特定配置Apache kafka streams 如何为Kafka streams创建的状态存储设置保留期,apache-kafka-streams,Apache Kafka Streams,我正在使用Streams DSL并进行有状态聚合(从一个主题读入数据,聚合数据并将其写入另一个主题)。如何缩短写入状态存储的数据的保留期?现在,我的infra团队说,数据在国家存储中保留5年,我必须减少这一点。是否有我可以设置数据应保留多长时间的特定配置 KTable<Windowed<String>, JSONObject> kTable = filteredKstream .groupBy((key, value) -> getN
KTable<Windowed<String>, JSONObject> kTable = filteredKstream
.groupBy((key, value) -> getNewKey(value),
Grouped.with(Serdes.String(), new JSONObjectSerde()))
.windowedBy(windows).aggregate(() -> {
SampleData sampleData = new SampleData();
return new JSONObject(mapperUtils.writeValueAsString(sampleData, mapper));
} , (key, value, aggregate) -> {
return getAggregateValue(aggregate, value);
} , Materialized
.<String, JSONObject, WindowStore<Bytes, byte[]>> as(
"sample-store")
.withKeySerde(Serdes.String())
.withValueSerde(jsonSerde));
KTable KTable=filteredKstream
.groupBy((键,值)->getNewKey(值),
Grouped.with(Serdes.String(),new JSONObjectSerde())
.windowedBy(windows).aggregate(()->{
SampleData SampleData=新的SampleData();
返回新的JSONObject(mapperUtils.writeValueAsString(sampleData,mapper));
},(键、值、聚合)->{
返回getAggregateValue(聚合,值);
},具体化
.作为(
“样本库”)
.withKeySerde(Serdes.String())
.使用ValueSerde(jsonSerde));
您可以使用物化的#withRetention()
设置窗口和会话存储的保留期
@MatthiasJ.Sax我知道您已经回答了类似的问题。所以,我只是想知道你是否对商店的默认保留时间是1天有什么见解——不知道为什么你的团队声称是5年。。。还有,@michael-g-noll给出了答案。(顺便说一句:标签不是这样工作的——我没有收到通知,只是通过浏览发现了这个问题。)