从 Postgres table 到具有更新跟踪的 KSQL table
From Postgres table to KSQL table with updates tracking
我的任务是将数据从 Postgres table 传输到 KSQL table(以便将来与流连接)。假设 table 有三个记录:
id | name | description
-------------------------
1 | name1 | description1
2 | name2 | description2
3 | name3 | description3
通过Kafka JdbcSourceConnector很容易做到。但是有一个小问题 - table 中的数据可能会被更改。更改也必须在 KTable 中。
根据文档,除了批量模式外,没有其他方法可以跟踪更改。但是批量模式绝对获取所有行并将它们插入到主题中。
我想为连接器设置批量模式。为该主题创建一个 KSream。为该流创建一个 KTable...
在这里我不知道该怎么办。如何确保 Postgres table 中的更改也在 KTable 中?
批量模式可以工作,您只需定义流的键,然后新的批量写入将更新相同键的KTable。换句话说,您需要确保数据库中的主键不会更改
或者,Debezium 是 Kafka Connect 的 CDC 版本。
正如您所说,JDBC 源不捕获 UPDATE 查询。
Debezium 将生成包含修改行的先前版本和新版本的记录
我的任务是将数据从 Postgres table 传输到 KSQL table(以便将来与流连接)。假设 table 有三个记录:
id | name | description
-------------------------
1 | name1 | description1
2 | name2 | description2
3 | name3 | description3
通过Kafka JdbcSourceConnector很容易做到。但是有一个小问题 - table 中的数据可能会被更改。更改也必须在 KTable 中。
根据文档,除了批量模式外,没有其他方法可以跟踪更改。但是批量模式绝对获取所有行并将它们插入到主题中。
我想为连接器设置批量模式。为该主题创建一个 KSream。为该流创建一个 KTable...
在这里我不知道该怎么办。如何确保 Postgres table 中的更改也在 KTable 中?
批量模式可以工作,您只需定义流的键,然后新的批量写入将更新相同键的KTable。换句话说,您需要确保数据库中的主键不会更改
或者,Debezium 是 Kafka Connect 的 CDC 版本。
正如您所说,JDBC 源不捕获 UPDATE 查询。
Debezium 将生成包含修改行的先前版本和新版本的记录