Apache kafka 与卡夫卡合并事件

Apache kafka 与卡夫卡合并事件,apache-kafka,Apache Kafka,我有一些意外。事件记录包含以下字段(有意义): 自\u ts-事件开始时,时间戳 至\u ts-事件完成时,时间戳 事件记录由弗林克不断制作并发送给卡夫卡主题 任务是将数据从卡夫卡主题传输到Postgres表。通常,如果在插入之前不需要处理数据,那么使用JbdcSinkConnector很容易 但我需要先做一些合并。让我们假设卡夫卡主题中有三个事件: from_ts | to_ts ---------------- 1 | 2 3 | 7 10 |

我有一些意外。事件记录包含以下字段(有意义):

自\u ts
-事件开始时,时间戳

至\u ts
-事件完成时,时间戳

事件记录由弗林克不断制作并发送给卡夫卡主题

任务是将数据从卡夫卡主题传输到Postgres表。通常,如果在插入之前不需要处理数据,那么使用JbdcSinkConnector很容易

但我需要先做一些合并。让我们假设卡夫卡主题中有三个事件:

from_ts | to_ts  
----------------
1       | 2    
3       | 7
10      | 15
如果第一个事件的
和第二个事件的
之间的差值小于2秒,则两个事件应为单个事件。所以在Postgres表中必须有两条记录:

from_ts | to_ts  
----------------
1       | 7    
10      | 15
如我们所见,事件1和事件2被合并

你能不能说,卡夫卡能做那种合并?如果是,请告诉我潜水的方向

谢谢

卡夫卡本身没有“处理”能力——你可以生成记录,也可以消费记录,但是没有地方可以维持这种状态


在处理记录时,听起来您需要“查询-修改-写入”操作。如果您所在的州是postgres,则需要在消费者投票循环的顶部编写此代码。如果您将状态从postgres中移出并使用类似kafka streams的内容,则编写此代码可能会更简单(但访问结果可能会更困难,具体取决于您从postgres中读取的内容)

您可以尝试查找kafka streams(又名KStreams)。在卡夫卡中完成数据处理后,您可以使用卡夫卡连接轻松地将更改加载到postgres中。我害怕这样的答案。嗯,生活很艰难。感谢您回答“无处维护状态”-RocksDB?变更日志和状态存储主题?我的意思是在核心卡夫卡没有方便的设施。你需要“升级”到卡夫卡流才能得到类似的东西