debezium监听数据库变化Date类型数据的还原

内容预览:
  • debezium是一个开源的分布式CDC系统,支持对接各种数据源,将数据源中已...~
  • 当数据源是mysql时,debezium通过BINLOG实时捕获已提交事务数据~
  • 在开发过程中偶然发现mysql数据库中类型为Date类型的数据通过debezium读...~

debezium是一个开源的分布式CDC系统,支持对接各种数据源,将数据源中已持久化的数据变更捕获后写入消息队列。

当数据源是mysql时,debezium通过BINLOG实时捕获已提交事务数据。

在开发过程中偶然发现mysql数据库中类型为Date类型的数据通过debezium读取到kafka消费后,获取到的数据值为5位数的int类型,

通过网上查阅得知mysql在存储Date类型的数据是经过特定算法压缩后存储的,

mysql用三个字节的整型,按照这种方式进行Date压缩: YYYY×16×32 + MM×32 + DD,

即用三个字节的最后5位进行天数的存储,然后接下来左边的四位进行月的存储,最后是年份的存储,

然而这个算法还是匹配不了取出来的5位整数,

后来经过论坛发帖得知,Date类型在binlog中存储的应该是从1970-01-01到所存储日期的天数差,

经过不同日期数据验证,也是正确的

以上就是:debezium监听数据库变化Date类型数据的还原 的全部内容。

本站部分内容来源于互联网和用户投稿,如有侵权请联系我们删除,谢谢。
Email:[email protected]


0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论