Debezium 如何处理 DDL

Mysql的数据变更(ddl, dml)在debezium都对应一个事件,不同的事件Debezium内部会有不同的处理逻辑。

Debezium在内存里会维护订阅的所有表的schema信息。当有DDL事件发生时,Debezium会获取到DDL的语句,将DDL作用于内存的表,那么内存中维护的表结构就能和数据库中的表结构一致。

当某个表的数据被更新时,假设是insertDebezium捕获到变更,随后会将相关的数据根据,内存维护的表结构,构造kafka record
Debezium 如何处理 DDL_第1张图片
DDL语句执行之后,被Debeziu获取到的数据,都会根据最新的schema来转化为kafka record。而DDL变更之前生成的数据,和DDL之后的最新的schema是不对应的。

如果DDL语句更改了某个值得类型,就会导致老的数据和最新的schema格式不同,数据是无法相互转换的。

你可能感兴趣的:(【Debezium】,【kafka】,Debezium,系列)