测试

53 阅读2分钟

1、flinkCDC(Change Data Capture)的特性 (1)支持读取数据库快照,即便故障,也可以实现精准一次。 (2)DataStream API 的 CDC 连接器,可以在单个作业中,实现对多个库,多个表的更改 (3)增量快照读取,并发读取,全阶段支持checkpoint,无锁算法

2、mysqlCDC connector的特性:增量快照读取,并发读取,全阶段支持checkpoint,无锁算法,动态加表。 优点: (1)可以并行读取,但是服务器id数量要大于并行度 (2)可以在快照读取过程中执行块粒度的检查点 (3)在快照读取前,不需要获得全局锁

3、块读取算法:偏移信号算法 (1)记录当前的binlog文件的偏移量low (2)执行语句读取和缓存快照的记录,并记录下此时的binlog文件的偏移量high (3)读取从low到high之间的binlog文件,将其更新插入到缓存的块记录中,并将缓冲区内的所有记录作为快照块的最终输出发出 (4)继续读取和发出属于binlog块的binlog记录

4、增量快照读取的原理: 分为两部分: 第一部分是快照阶段,将binlog日志按照主键分为了几个快照块,然后将快照块分配给多个快照读取器,然后每个快照读取器,在快照块中以事务为单位读取对应的binlog文件,并将读取到的数据以insert的方式发送给下游。 第二部分是binlog读取阶段,在完成快照块之后,MySQL CDC将继续以单个任务的方式,读取binlog中的日志, 第一部分只做insert,第二部分才做各种其他操作,如delete,update等等 第一部分保证了块级别的checkpoint,第二部分保证了行级别的checkpoint