首页 > 解决方案 > 从 Postgres 表到具有更新跟踪的 KSQL 表

问题描述

我的任务是将数据从 Postgres 表传输到 KSQL 表(以便将来与流连接)。假设表有三个记录:

id | name   | description
-------------------------
1  | name1  | description1
2  | name2  | description2
3  | name3  | description3

通过 Kafka JdbcSourceConnector 很容易做到。但是有一个小问题 - 表中的数据可能会更改。更改也必须在 KTable 中。

根据文档,除了批量模式之外,没有其他方法可以跟踪更改。但是批量模式绝对需要所有行并将它们插入到主题中。

我想为连接器设置批量模式。为该主题创建一个 KSream。为该流创建一个 KTable...

在这里我不知道该怎么办。如何确保 Postgres 表中的更改也在 KTable 中?

标签: apache-kafkaapache-kafka-connectksqldb

解决方案


批量模式可以工作,您只需定义流的键,然后新的批量写入将更新相同键的 KTable。换句话说,您需要确保数据库中的主键不会更改


或者,Debezium 是 Kafka Connect 的 CDC 版本。

正如您所说,JDBC 源不捕获 UPDATE 查询。

Debezium 将生成包含修改行的先前版本和新版本的记录


推荐阅读