一、PostgreSQL中的CDC技术
CDC(Change Data Capture)是PostgreSQL在数据库级别实现的增量抽取解决方案。
PostgreSQL的CDC模式实现核心是记录增量数据,实现实时增量抽取,实现对空间增量数据的动态监控。
CDC中要通过捕获增量数据,并将增量数据传递给实际应用,首先需要识别捕获变化数据所需的源表,捕捉变化的数据并将其保存在特别创建的变化表中。
- 源表(Source Table),业务数据库的需要捕获数据的源表。
- 变化表(Change Table),保存从源表捕获的变化数据。
- 变化集(Change Set),保证事务一致性的数据集合。一个变化集对应多个变化表。
原理示意图如下:
CDC原理示意图
PostgreSQL数据库中主要有以下几种方式实现增量数据的抽取:
1、全量数据比对法
在数据表中加上时间戳字段、唯一值标记字段,需要更新时结合时间戳和唯一标识字段进行全库比对,得出“增删改”部分数据。主要的缺点因为需要全库数据比对,对数据库的性能是有很大的影响的。