本文主要是介绍Debezium 如何处理 DDL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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 如何处理 DDL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!