Jac*_*ian 6 postgresql apache-kafka-connect debezium
我成功安装了Postgres Debezium CDC。现在,我能够捕获数据库发生的所有更改。但问题是“之前”字段始终为空。因此,如果我插入一条记录,(id = 1, name = Bill)我就会从 Kafka 获取以下数据:
'payload': {'before': None, 'after': {'id': 1, 'name': 'Bill'}, ...
Run Code Online (Sandbox Code Playgroud)
但如果我像这样更新记录:
UPDATE mytable set name = 'Bob' WHERE id = 1
Run Code Online (Sandbox Code Playgroud)
我从卡夫卡那里得到这个:
'payload': {'before': None, 'after': {'id': 1, 'name': 'Bob'}, ...
Run Code Online (Sandbox Code Playgroud)
这就是我配置连接器的方式:
'payload': {'before': None, 'after': {'id': 1, 'name': 'Bill'}, ...
Run Code Online (Sandbox Code Playgroud)
这是什么问题?我该如何解决?
Isk*_*der 11
before是一个可选字段,如果存在,则包含事件发生之前行的状态。该字段是否可用很大程度上取决于REPLICA IDENTITY每个表的设置。
REPLICA IDENTITY是 PostgreSQL 特定的表级设置,它确定在以下情况下可用于逻辑解码的信息量:UPDATE是 PostgreSQL 特定的表级设置,它确定在发生DELETE。
要显示所有 table\xe2\x80\x99s 列的先前值,请将级别设置REPLICA IDENTITY为FULL:
ALTER TABLE public.mytable REPLICA IDENTITY FULL;\nRun Code Online (Sandbox Code Playgroud)\n\n请参阅Debezium 文档中的更多详细信息。
\n| 归档时间: |
|
| 查看次数: |
5193 次 |
| 最近记录: |