什么是CDC
CDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。
CDC的种类
CDC主要分为基于查询的CDC和基于Binlog的CDC两种方式,我们主要了解一下这两种之间的区别:
基于查询的CDC | 基于Binlog的CDC | |
---|---|---|
开源产品 | Sqoop、Kafka JDBC Source | Canal(国内用的多)、Maxwell、Debezium(国外用的多) |
执行模式 | Batch(批处理) | Streaming(流式) |
是否可以捕获所有数据变化 | 否 | 是 |
延迟性 | 高延迟 | 低延迟 |
是否增加数据库压力 | 是 | 否 |
注意:
Flink里面的CDC其实内置了Debezium. 这个flinkcdc是阿里搞的,他并没有合并到flink的核心包里面.所以官网上是找不到的.他的资料在git上面. 我们要用只能去Github上去找资料.
Sqoop导数据是每天凌晨30分启动任务去导数据.一次性到数据.
Maxwell是变化一条导一条.
Flink-CDC
Flink社区开发了 flink-cdc-connectors 组件,这是一个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。目前也已开源,开源地址:https://github.com/ververica/flink-cdc-connectors
FlinkCDC案例实操
- 本文作者: xubatian
- 本文链接: http://xubatian.cn/Flink-原理与实现-Flink-CDC/
- 版权声明: 本博客所有文章除特别声明外均为原创,采用 CC BY 4.0 CN协议 许可协议。转载请注明出处:https://www.xubatian.cn/