事件记录的变化
这一消息转换(SMT)只支持SQL数据库连接器。开云体育电动老虎机 |
De开云体育官方注册网址bezium数据更改事件有一个复杂的结构,提供了丰富的信息。然而,在某些情况下,下游消费之前可以处理Debezium改变事件消息,它需要额外的信息从原始数据库变更字段级变化的结果。开云体育官方注册网址开云体育电动老虎机如何加强与细节的事件消息源数据库中的数据库操作修改字段,Debezium提供开云体育官方注册网址开云体育电动老虎机ExtractChangedRecordState
单一的消息转换(SMT)。
事件变化转换卡夫卡连接贴片。
改变事件结构
开云体育官方注册网址Debezium生成数据更改事件,有一个复杂的结构。每个事件包括三个部分:
元数据,包括但不限于:
改变数据类型的操作。
源信息,例如数据库和表的名称发生了变化。开云体育电动老虎机
时间戳来标识更改时间。
可选的事务信息。
行数据的变化
行数据后的变化
下面的示例显示了一个典型的Debezium的结构的一部分开云体育官方注册网址更新
更改事件:
{“人事处”:“u”,“源”:{…}," ts_ms”:“……”“之前”:{“field1”:“oldvalue1”、“field2”:“oldvalue2”},“后”:{“field1”:“newvalue1”、“field2”:“newvalue2}}
关于改变提供了事件结构的更多细节每个连接器的文档。
复杂格式的消息在前面的示例中提供了详细信息的变化,发生在源数据库。开云体育电动老虎机然而,格式可能不适合一些下游的消费者。水槽连接器,卡夫卡或其他地区的生态系统可能会认为消息明确标识字段,数据库操作更改或叶子不变。开云体育电动老虎机的ExtractChangedRecordState
SMT将标题添加到更改事件消息识别字段修改的数据库操作,和字段保持不变。开云体育电动老虎机
行为
SMT提取事件变化之前
和后
从Debezium字段开云体育官方注册网址更新
在卡夫卡记录更改事件。探讨了转型之前
和后
事件结构状态识别字段由一个操作,改变和保持不变。根据连接器配置,然后转换生成一个修改的事件消息,将消息头添加到更改的字段列表,不变字段,或两者兼而有之。如果事件代表了插入
或删除
,这一消息转换没有效果。
您可以配置的事件改变了SMT Debezium连接器,或水槽连接器消耗消息发出Debeziu开云体育官方注册网址m连接器。配置事件变化SMT水槽连接器如果你想Apache卡夫卡保留整个原始Debezium修改事件。开云体育官方注册网址决定应用SMT的源或汇连接器取决于您的特定的用例。
根据您的用例中,您可以配置转换修改原始消息通过执行一个或两个以下任务:
标识字段的变化
更新
事件通过列出用户配置header.changed.name
头。标识字段没有改变的
更新
事件通过列出用户配置header.unchanged.name
头。
配置
配置Debezium事件变化开云体育官方注册网址SMT卡夫卡连接源或汇连接器通过添加SMT配置连接器的配置细节。获取默认行为,不添加任何标题,添加转换连接器配置在下面的例子:
变换=变化,……transforms.changes.type = i开云体育官方注册网址o.debezium.transforms.ExtractChangedRecordState
与任何卡夫卡连接连接器配置,您可以设置变换=
多个,用逗号分隔,SMT别名的顺序要卡夫卡连接到应用SMT。
连接器配置下面的示例设置几个选项的事件改变了SMT:
变换=变化,……transforms.changes.type = i开云体育官方注册网址o.debezium.transforms.ExtractChangedRecordState transforms.changes.header.changed.name =改变transforms.changes.header.unchanged.name =不变
-
header.changed.name
-
卡夫卡消息头名称用于存储一个以逗号分隔的字段所改变的一个数据库操作。开云体育电动老虎机
-
header.unchanged.name
-
卡夫卡消息头名称用于存储一个以逗号分隔的字段,数据库操作后保持不变。开云体育电动老虎机
连接器会发出许多类型的事件消息(心跳消息,墓碑消息或元数据信息交易或模式变化)。转换应用于事件的一个子集,您可以定义SMT谓词选择性地应用转换的语句特定事件。
选择申请事件转换选择性地变化
除了改变事件消息,Debezium连接器排放数据库变化发生时,连接器还散发出其他类型的消息,包括开云体育官方注册网址心跳消息,和元数据信息模式变化和事务。开云体育电动老虎机因为这些消息的结构不同于SMT的改变事件消息的结构设计过程,最好配置连接器有选择地应用SMT,这样流程只有预期的数据变化信息。
为更多的信息关于如何有选择地应用SMT,明白了配置一个SMT谓词转换。