hudi系列-基于cdc应用与优化

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支持多种在读取任务启动时指定的数据范围策略,融合了流程序以flink-cdc和kafka为源时的优点

  1. 支持指定任意的时间段,或从某时间点起始进行消费数据,对于问题排查很有帮助
  2. 支持先全量读取历数据,再自动增量持续读取,可用于数据仓库分层建设或涉及全量数据统计时
  3. 支持只获取

你可能感兴趣的:(hudi系列,数据仓库,大数据,hudi)