本文主要是介绍【大数据面试题】014 Flink CDC 用过吗,请简要描述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一步一个脚印,一天一道面试题。
完成比完美更重要,明天更新完!
Flink CDC 的诞生背景
Flink CDC 的全称是 Change Data Capture(变更数据捕获)
每一项技术的诞生都是为了解决某个问题,某个痛点。而 Flink CDC
的诞生就是为了解决在读取,监控 MySQL
这样的数据库时,不会因为读取数据库,对数据库本身造成压力,影响性能。同时,保证了数据源的准确,正确。
Flink CDC 原理
- 方式一:通过查询来获取更新的数据。
如查询数据库:
select * from table1 where create_time >{传入上次查询时间}
这原理非常简单,就是查询上次查询期间创建或更新的数据。但缺点也非常明显:1.查询慢,数据一多你这么查就快不了。 2.额外的查询会给组件带来性能压力。
- 方式二:
通过监控日志获取变化的数据。
Flink CDC
的原理是监控数据库比如 MySQL
的 Binlog
;
Binlog
是 MySQL
这样的带事务的数据库为了一致性写的日志。每次有数据的更新,操作都会有对应的 log
产生。我们可以先全量读取一份数据,再通过监控 Binlog
来同步更新数据。
而 Binlog
是原本就有的,没有 Flink CDC
也不会减少日志量,所以不会影响数据库本身性能。
Flink CDC 样例代码
Bin Log 样例
这篇关于【大数据面试题】014 Flink CDC 用过吗,请简要描述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!