首页/数据/数据工程与 ETL 速查/Debezium 事件结构与 op 字段
CDC 与同步53 条

Debezium 事件结构与 op 字段

Debezium 事件用 op 区分变更类型:c=INSERT、u=UPDATE、d=DELETE、r=快照读取。事件包含 before/after 行镜像、source 元数据(库表、binlog 文件与位点、GTID)与 ts_ms 时间戳;消费侧通常按 op 决定 upsert 或 delete,Kafka key 默认是表主键。

事件示例(op=c 插入)

事件示例(op=c 插入)
{
  "before": null,
  "after": { "order_id": 1001, "status": "PAID" },
  "source": { "db": "app", "table": "orders",
               "file": "mysql-bin.000123", "pos": 4567 },
  "op": "c",
  "ts_ms": 1728612345678
}
cinsert(create)
uupdate,before/after 通常都有值
ddelete,after 为 null、before 有旧值
r快照读取(snapshot read)
source 里的 file/pos(或 GTID)可用于事后回溯与对账;它也是排查“事件对应源库哪条记录”的关键线索。

易错点

  • 只读 after 字段写目标端,delete 事件被写成空数据或直接报错
  • 把快照事件 r 当新数据做累加统计,指标被放大

数据来源与参考

  • Debezium 官方文档(Event structure:op codes 与 source 元数据)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌