diff --git a/markdown-pages/zh/tidb/release-6.5/ticdc/ticdc-avro-protocol.md b/markdown-pages/zh/tidb/release-6.5/ticdc/ticdc-avro-protocol.md index c72f6467d..0d916b556 100644 --- a/markdown-pages/zh/tidb/release-6.5/ticdc/ticdc-avro-protocol.md +++ b/markdown-pages/zh/tidb/release-6.5/ticdc/ticdc-avro-protocol.md @@ -93,6 +93,16 @@ Key 中的 `fields` 只包含主键或唯一索引列。 Value 数据格式默认与 Key 数据格式相同,但是 Value 的 `fields` 中包含了所有的列,而不仅仅是主键列。 +> **注意:** +> +> Avro 协议在编码 DML 事件时,操作方式如下: +> +> - 对于 Delete 事件,只编码 Key 部分,Value 部分为空。 +> - 对于 Insert 事件,编码所有列数据到 Value 部分。 +> - 对于 Update 事件,只编码更新后的所有列数据到 Value 部分。 +> +> Avro 协议不会对 Update 和 Delete 事件的旧值进行编码。此外,为了与大多数依赖 `null` 记录来识别删除 (`delete.on.null`) 的 Confluent sink 连接器兼容,即使开启 `enable-tidb-extension` 选项,Delete 事件也不包含 TiDB 扩展字段信息,如 `_tidb_commit_ts`。如果你需要这些功能,请考虑使用其他协议,例如 Canal-JSON 或 Debezium。 + 如果开启了 [TiDB 扩展字段](#tidb-扩展字段),那么 Value 数据格式将会变成: ```shell