1、徐榜江(雪尽)Apache Flink Committer&Flink CDCMaintainer|Flink CDC 如何加速海量数据的实时集成01Flink CDC技术技术02海量数据集成的痛点海量数据集成的痛点03Flink CDC如何加速海量数据集成如何加速海量数据集成04开源社区发展开源社区发展目录目录|Flink CDC技术技术01|CDC 技术|广义的概念上,能够捕获数据变更的技术,我们都可以称为CDC(Change Data Capture)。通常我们说的 CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。应用场景:数据同步:用于数据备份、系统容灾数据采集
2、:面向数据仓库/数据湖的 ETL 数据集成数据分发:一个数据源分发给多个下游CDC 技术|业界 CDC 的技术方案非常多,从原理上可以分为两大类:基于查询的 CDC 离线调度查询作业,批处理无法保障数据一致性不保障实时性 基于日志的 CDC 实时消费日志,流式处理保障数据一致性提供实时数据Flink CDCDebeziumDataXCanalSqoopkettleOracle GoldengateCDC 机制日志日志日志日志查询日志日志查询查询日志日志增量同步断点续传全量同步全量+增量架构分布式分布式单机单机单机分布式分布式分布式分布式分布式分布式Transformation生态常开源 CDC
3、 案对|Flink CDC 技术|?Flink CDC 技术|?Flink CDC 技术|?海量数据集成的痛点海量数据集成的痛点02|DataX/Sqoop全量同步HiveHDFS全量表影响业务稳定性天级别产出性能瓶颈明显|传统数据入仓架构1.0痛点痛点:影响业务,延迟过高,扩展性差:影响业务,延迟过高,扩展性差海量海量CDC数据集成的痛点数据集成的痛点HDFSDataX/Sqoop全量同步全量同步HDFSCanalCanal增量同步增量同步定时回流(小时定时回流(小时/天)天)HDFS定时合并增量表全量表最终表Hive链路长,组件多小时级别产出不影响业务稳定性全量+增量割裂海量海量CDC数据
4、集成的痛点数据集成的痛点|痛点痛点:延迟过高,链路割裂,可维护性差:延迟过高,链路割裂,可维护性差传统数据入仓架构2.0采集(E)Debezium计算(T)传输(L)|海量海量CDC数据集成的痛点数据集成的痛点TiDBTiDBClickHouseClickHouseIcebergIcebergHudiHudi(upsert(upsert-kafka)kafka)传统 CDC ETL 分析Debezium|海量海量CDC数据集成的痛点数据集成的痛点传统 CDC ETL 分析痛点痛点:单并发性能差,全量增量割裂,依赖组件多:单并发性能差,全量增量割裂,依赖组件多中间件集群中间件集群?消息队列集群消
5、息队列集群?Canal 只能读增量,全量需要用 DataX/SqoopDebezium 支持全量+增量,单并发模型限制吞吐Flink CDC如何加速海量数据集成如何加速海量数据集成03|Flink CDC 如何加速海量数据集成|单并发失败重做使用锁无锁算法并发读取断点续传DebeziumFlink CDC增量快照读取算法算法|?Task1Task2Task3Task3Task1Task2?Flink CDC 如何加速海量数据集成全增量一体化框架|Flink CDC 如何加速海量数据集成TPC-DS 读取测试,customer 单表数据量 6500 万?Task1Task2Task8?Task(
6、89 分钟)(8并发,13 分钟)吞吐提升 6.8 倍checkpointbarriercheckpointbarriercheckpointbarriercheckpointbarrierchunk1WriterWriterstoragestorage|chunk2chunk3Flink CDC 如何加速海量数据集成存储友好的写入设计Flink CDC全增量实时同步Hudi|分钟级别产出不影响业务稳定性全量+增量一体化链路短,组件少并发读取,高吞吐Flink CDC 如何加速海量数据集成Flink CDC 入湖架