首页 > 解决方案 > Kafka Streams Global Store - 添加更改日志主题

问题描述

我有一种情况,我想维护自己的全局表结构。本质上,全局存储链接到一个处理器,我使用一些计算来创建键,然后将其存储到键值存储。

由于全局状态存储没有更改日志主题,它使用原始主题作为更改日志。在状态恢复的情况下,它只是将主题数据加载到全局表(这将是错误的),因为我们构建了自己的键和值。

Topic Data

Key, value
1234,abcd
4567,defg

StateStore
Key, value
12ab, abcd
45de, defg

我的要求是使用我的自定义键(不是直接来自主题的键)创建一个全局商店。有什么解决办法吗?

以下链接回答了我的问题 Kafka Streams use case for add global store

标签: javaapache-kafkaapache-kafka-streams

解决方案


在解决https://issues.apache.org/jira/browse/KAFKA-7663https://issues.apache.org/jira/browse/KAFKA-8037之前,目前不支持此功能。

目前,全局Processor无法在不破坏应用程序的情况下更改数据。您只能将未修改的数据放入全局状态存储中。

作为一种解决方法,您可以执行一个预处理步骤来修改数据,将其写回主题,然后将该主题消费到您的全局状态存储中。


推荐阅读