apache-kafka - 从 Postgres 表到具有更新跟踪的 KSQL 表
问题描述
我的任务是将数据从 Postgres 表传输到 KSQL 表(以便将来与流连接)。假设表有三个记录:
id | name | description
-------------------------
1 | name1 | description1
2 | name2 | description2
3 | name3 | description3
通过 Kafka JdbcSourceConnector 很容易做到。但是有一个小问题 - 表中的数据可能会更改。更改也必须在 KTable 中。
根据文档,除了批量模式之外,没有其他方法可以跟踪更改。但是批量模式绝对需要所有行并将它们插入到主题中。
我想为连接器设置批量模式。为该主题创建一个 KSream。为该流创建一个 KTable...
在这里我不知道该怎么办。如何确保 Postgres 表中的更改也在 KTable 中?
解决方案
批量模式可以工作,您只需定义流的键,然后新的批量写入将更新相同键的 KTable。换句话说,您需要确保数据库中的主键不会更改
或者,Debezium 是 Kafka Connect 的 CDC 版本。
正如您所说,JDBC 源不捕获 UPDATE 查询。
Debezium 将生成包含修改行的先前版本和新版本的记录
推荐阅读
- python - 从图像中提取轮廓区域
- generics - Specman - 如何将测试更改为更通用?
- python - 功能:你是在里面打印还是在外面打印
- android - 防止未经授权访问 Restful API
- angular - 从 Web API 返回 base64 字符串以在 angular2 中下载为 pdf 表示打开文件时出错
- node.js - 使用猫鼬收集快递
- list - SAPUI5 sap.m.ListBase.getItems() 返回以前的内容?
- python - 任何人都不能使用 seaborn 的 relplot() 绘图?
- java - 如何在Spring中获取来自HTML的URI值到变量(对应方法有多个链接)
- android - 如何将文件放入应用程序私人文件夹?