1. CDC是个好东西
曾经做数据同步受存储引擎和采集工具的限制,经常都是全量定时同步,亦或是以自增ID或时间作为增量的依据进行增量定时同步,无论是哪种,都存在数据延时较大、会重复同步不变的数据、浪费资源等问题。后来刚接触canal时还大感惊奇,基于mysql的binlog可以这么方便实时同步最新数据,然而历史数据的初始化仍然得使用第三方ETL工具来全量同步。直到flink cdc项目诞生,完全解决了前面的痛点。实时技术的发展已经不能满足于数据只能实时采集,还需要实时地进行数据建模和数据分析,即全链路实时。
cdc的本质是促进了数据在不同环节之间的流转速度,它是实现全链路实时的基础
2. hudi的cdc特点
MOR表的设计天然地支持CDC,数据写入时,所有的change data会临时以行格式保存在avro文件中,再定期地合并到base文件中。hudi的timeine设计又可以实时或随时capture到change data,其实就是所谓的增量查询(Incremental Queries)
2.1 数据范围
hudi支持多种在读取任务启动时指定的数据