写了一个 mysql cdc table,有用么

14 天前
 bluebo

基于 mysql 的存储插件,与 mysql 的 binlog 开发了一个 mysql cdc table 。可以在 mysql select binlog 中表的变化数据

__op

0 – delete data

1 – insert data

2 – update before data

3 – update after date

__gtid

全局事务 id

__tm

row event 发生的时间

效果大概是这样

https://madbluecat.github.io/post/mysqlcdctable/

1163 次点击
所在节点    程序员
26 条回复
zhenjiachen
13 天前
我们直接用 flink cdc ,mysql ,postgresql ,sqlserver 都支持。
wenxueywx
13 天前
@bluebo 是的,__optime 就是数据变更时间__tm ;
优势就是实现了 mysql 引擎的接口可以内置到 mysql 中使用,可以对接 mysql 生态。
然后用户使用 gtid 去拿数据有点不符合操作习惯,你还得先知道 gtid ;使用时间就比较正常了。正常操作你只需设置一下时间,再用原来的 sql 直接执行就行,也基本没有增加使用负担。
lvlongxiang199
13 天前
MySQL 中的表发生 DDL 你是咋处理的 ? MySQL8 之前的 binlog 里头没列名, binlog 中元素对应的表结构可能跟当前 MySQL 那边的表结构不一样
bluebo
13 天前
@lvlongxiang199 DDL ,我没捕获, 但是 DDL 应该是对系统表做了增删改的操作,需要捕获系统表,而且不同版本的 mysql 不知道系统表有没有变化。
bluebo
13 天前
@wenxueywx gtid 确实不直观,但是比__tm 更精准些。想想能不能直接在 mysql 上操作其他数据库(CRUD)。 应该也能实现,体量太大了
bluebo
13 天前
@zhenjiachen 暂时只是做了捕获和展示的动作, 数据落地应该不会接着做了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1050243

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX