《1-3 Flink CDC 如何加速海量数据的实时集成.pdf》由会员分享,可在线阅读,更多相关《1-3 Flink CDC 如何加速海量数据的实时集成.pdf(30页珍藏版)》请在三个皮匠报告上搜索。
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 入湖架构TiDBTiDBClickHouseClickHouseIcebergIceb
7、ergHudiHudi(upsert(upsert-kafka)kafka)|采集+计算+传输(ETL)Flink CDC 如何加速海量数据集成Flink CDC ETL 分析全增量一体化并发读取链路短,组件少实时 ETL 加工清洗SELECTWHERENOT INGroup ByTop-NLISTAGG双流 JOIN维表 JOINUDTF聚合打宽|TiDBTiDBClickHouseClickHouseIcebergIcebergHudiHudi(upsert(upsert-kafka)kafka)Flink CDC 如何加速海量数据集成强大的 transformation 能力全量+增量全
8、量+增量(StreamingStreaming JoinJoin)Flink CDCupsertstorage|Flink CDC 如何加速海量数据集成支持异构数据源集成|全量+增量Flink CDCupsertstorageshard1shard2shard3Flink CDC 如何加速海量数据集成支持分库分表的集成|Flink CDC 如何加速海量数据集成支持丰富的 Flink 生态开源社区发展开源社区发展04|开源社区发展|389835050100150FLINK CDC 1.XFLINK CDC 2.0FLINK CDC 2.1FLINK CDC 2.2commi
9、tscontributors社区发版MySQL CDC 支持最新位点消费Postgres CDC 清理 WAL 文件支持标准 metricMySQL CDC 增量快照读取MySQL CDC 支持水平扩展MySQL CDC 支持断点续传修复 Schema OOM 问题提供文档网站支持 MySQL 百亿级超大表支持 MySQL 全部类型支持 Oracle CDC 连接器支持 MongoDB CDC 连接器丰富社区文档和教程新增 OceanBase,PolarDB-X,SqlServer,TiDB 四种数据源兼容 Flink 1.13 和 Flink 1.14提供增量快照读取框架MySQL 支持 动态加表Flink CDC 社区发展|社区网站FAQ 手册社区文档Flink CDC 社区发展|GitHub 活动GitHub Star 年度 300%增长社区动态非常感谢您的观看|