这篇文章主要为大家展示了“POSTGRESQL CDC怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“POSTGRESQL CDC怎么用”这篇文章吧。
首先 POSTGRESQL 本身的复制方式有流式复制和逻辑复制两种,今天要说的就是逻辑复制中的CDC功能。而实施CDC POSTGRESQL 要具备两个功能,1 获取数库的变更日志(WAL) 和 获取变更日志前的数据一致性快照,最后要保存消费者的偏移量。而提到逻辑复制,是从PG10开始的新功能。
1 先通过一个实践来看看什么叫PG的 CDC (以忽略部分数据库基础设置)
首先我们先要创建一个逻辑复制槽,并且使用系统给定的一个test_decoding的解码插件。
创建完复制槽后,我们开始一些相关的数据库操作,从下图可以看出想的DDL 操作并没有解析,仅仅是记录了begin commit
我们来在做做 DML操作,明显相关的记录可以被解码并且可以看出数据库刚才在操作了什么。
当然具体的使用我们还需要使用 pg_recvlogical 来进行数据的捕捉和更多的应用,如果直接将这些输出output 到动态的文件中,那一个数据库的CDC的记录就有了。以后在发现数据库哪个表里面的记录不对,就可用这样的方法早做日志进行记录。
同时我们也可以更换逻辑复制槽中的解码工具,我们看一下,在PG中输入的数据,经过逻辑复制槽后,直接解码为为 JSON 的数据
当然如果我们使用了其他的解析插件的情况下,还可以将语句直接翻译过来,如果保留这些语句,可以自己做一个类似于UNDO 的东西,将已经执行的语句,进行回滚,从中也更加理解了 data pipleline 中为什么对传统数据库要设置主键,这样可能方便捕获的数据进行一个更新或者判断插入或更新等等的操作。
通过上图,其实我们就可以建立一个自己简易的CDC 系统,通过记录如果表的设计上在完整一些,CDC 的一个日志系统将会为POSTGRESQL 数据库的数据任意时间点的数据 UNDO ,作为一个强有力的支持。
以上是“POSTGRESQL CDC怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。