Mysql的数据变更(ddl, dml)在debezium都对应一个事件,不同的事件Debezium内部会有不同的处理逻辑。
Debezium在内存里会维护订阅的所有表的schema信息。当有DDL事件发生时,Debezium会获取到DDL的语句,将DDL作用于内存的表,那么内存中维护的表结构就能和数据库中的表结构一致。
当某个表的数据被更新时,假设是insert,Debezium捕获到变更,随后会将相关的数据根据,内存维护的表结构,构造kafka record。

DDL语句执行之后,被Debeziu获取到的数据,都会根据最新的schema来转化为kafka record。而DDL变更之前生成的数据,和DDL之后的最新的schema是不对应的。
如果DDL语句更改了某个值得类型,就会导致老的数据和最新的schema格式不同,数据是无法相互转换的。

探讨Debezium如何处理MySQL的数据变更事件,包括DDL和DML操作,以及如何维护表结构的一致性和数据转换的问题。
512

被折叠的 条评论
为什么被折叠?



