核心内容摘要
公交车上“被上了一课”?别让尴尬成为你的“过站不停”
作者徐榜江(雪尽) —— 阿里云Flink数据通团队负责人Flink PMC成员Flink CDC开源项目负责人李昊哲(米灵) —— 阿里云Flink高级产品经理负责阿里云Flink稳定性、可观测性、数据摄入等企业级产品特性摘要本文主要介绍阿里云基于开源 Flink CDC 打造的企业级日志实时入湖入流的技术解决方案涵盖产品功能介绍、日志场景挑战与解决方案、最佳
实践案例以及联合解决方案等内容。
01阿里云企业级Flink CDC数据摄入功能介绍
Flink CDC开源
项目概述开源 Flink CDC 是一款用于处理数据变更捕获Change Data Capture、支持增量数据的分布式数据集成工具。
该项目早期主要聚焦于数据库入库入仓场景在数据库增量数据同步领域积累了丰富的实践经验。
从
0版本开始Flink CDC 支持通过 YAML 格式描述数据传递过程以及 ETL 转换逻辑极大简化了用户的数据集成与同步工作。
Flink CDC 的
核心价值在于结合数据库的变更捕获技术Data Capture打造全增量一体化的集成框架有效降低用户的使用成本同时满足数据时效性与一致性方面的需求。
Flink CDC 最主要的应用场景是在数仓分层架构中作为数据入湖入仓的第一步。
增量快照算法是其核心能力之一支持读取历史数据、全增量一体化同步以及整库同步等功能。
此外Schema 信息管理功能在后续版本迭代中持续增强进一步提升了用户对社区的信任度与粘性。
YAML ETL 将复杂的高级功能平民化使更多 BI 领域的用户能够通过 YAML 脚本完成复杂的作业配置。
Flink CDC 在社区的主要应用场景集中在数据库的实时入湖入仓领域。
在传统数据同步方案中用户通常需要分别处理全量数据与增量数据使用不同的链路与业务系统最终通过定时合并完成数据同步。
这种 Lambda 架构存在以下问题链路组件较多数据合并的时效性较差且合并过程中存在位点无法强对齐的情况容易导致数据一致性问题。
对于研发人员而言技术栈过于复杂普通用户难以驾驭。
Flink CDC 将上述复杂流程整合到一个 YAML 作业中实现全增量一体化Flink 作业可支持亚秒级延迟。
框架层面从原理上保证数据不丢不重同时提供端到端的作业管理体验。
用户仅需编写一个 YAML 文本即可启动作业这是 Flink CDC 在社区中最核心的应用场景。
阿里云企业版Flink CDC对比开源Flink CDC阿里云企业版 FlinkCDC-数据摄入在开源基础上对企业版进行了多项增强主要包括以下几个方面引擎层面优化阿里云企业版引擎内部称为 VVR在作业自动调优、数据摄入即 Flink 作业的热更新能力、State Backend、SQL 算子等方面均进行了企业级优化。
资源分配方面支持弹性力度的动态调整。
管控平台支持阿里云提供 VVP 平台负责 Flink 作业的开发与运行。
相比开源版本仅支持数据库入湖入仓VVP平台扩展支持了日志入湖入仓具备更丰富的企业级上下游生态。
阿里云产品之间相互打通整体用户体验更佳。
平台支持资源动态扩缩容、全链路监控、告警机制等功能同时支持 YAML 作业的全生命周期管理包括作业版本管理、日志查询、资源配置、依赖管理等。
阿里云企业级 Flink CDC 的定位是在开源内核的基础上通过插件化开发提供更多增值服务提升易用性并降低开发运维门槛。
阿里云企业版Flink CDC-数据摄入产品优势阿里云 Flink CDC 数据摄入的产品优势可从功能特性与性能成本两个维度进行阐述。
功能优势提供更多企业级功能特性包括引擎侧有更强大的表结构变更自动同步无需作业重启和 DB 入湖场景的数据限流功能以及日志入湖场景的 Schema Inference 能力、全链路脏数据收集功能等。
得益于阿里云 Flink 产品底座的长期建设CDC YAML 作业也能复用诸多企业级能力比如弹性扩缩容、Hot-Update 资源调优、监控和告警等能力同时具备丰富的数据源支持涵盖大数据存储、关系数据库、湖仓、流存储等上下游生态。
性能优势阿里云 Flink CDC 数据摄入在读取和写入上均做过深度的性能优化在读取 MySQL 和 MongoDB 场景支持了多线程解析和高效下推过滤等优化对比社区有数倍性能优势。
在写入 Paimon 和 Fluss 时均支持 Dynamic Shuffle 优化能够根据每个并发的实时数据量自适应调整写入流量分布作业运行更加智能和平稳。
此外CDC YAML 作业默认支持整库同步或多表入湖单 Sink 节点可写多表的拓扑模式避免拓扑节点过多导致资源消耗过大、部分表数据量少造成资源浪费等问题。
最佳用户体验体现在端到端 Pipeline 的便捷性上用户仅需关注 YAML 文本作业提交与部署均由平台自动完成。
阿里云还提供丰富的场景与最佳实践方案文档用户可根据实时数仓、数据库或结合 Fluss 等不同业务场景参考相应的最佳实践直接复制粘贴 YAML 文本即可。
另外作为云产品SLA 保障、运维监控体验更佳。
当前最新版本已迭代至 VVR
1
5该版本功能最全、稳定性最佳建议用户使用最新的稳定版本以获得更好的用户体验。
02日志场景实时入湖入流的趋势与挑战随着 AI 技术、Agent 以及 AGI 等技术的兴起AI 应用日益普及用户对非结构化数据、日志数据乃至多模态数据的需求持续增长Flink CDC 需要具备更强的数据接入能力。
日志实时入湖入流可为数据分析与 AI 两大赛道解锁更加新鲜的数据帮助业务运营人员、决策人员乃至 Agent 完成更快的业务决策。
数据新鲜度越高基于数据的判断就越准确这在风控反欺诈、广告投放等时间敏感的业务场景中尤为关键。
日志场景的业务痛点日志入湖入流领域存在以下三个主要痛点数据定义多样化与数据库数据不同日志数据定义极为多样化。
不同应用甚至同一应用的不同终端如手机、iPad采集的日志数据格式可能不同语义也可能不一致缺乏统一标准。
数据库表字段通常固定且有明确类型约束而日志数据可能存在 Integer、Bigint、Big Decimal 等不同类型表示同一语义的情况。
因此该场景需要具备数据规范化处理能力。
日志加工时效性要求高日志数据规模通常较大需要实时采集处理。
这不仅是对日志入湖工具系统的要求更是端到端的要求。
海量实时批量数据对数据湖引擎如 Flink、Starrocks 等的分析能力提出了更高要求各子系统均需满足端到端的高性能需求。
表结构变更频繁日志数据定义多样化、终端不确定性及多版本迭代导致表结构变更频繁。
数据库表变更通常需 DBA 审核遵循加字段而非删字段的最佳实践。
而日志场景灵活性高终端采集字段的增删变化是常态。
这要求端到端日志处理链路具备 Schema 推断与演进能力支持从无 Schema 的裸 JSON 数据推断 Schema并在下游 ODS 表自动新增字段对技术能力提出更高要求。
基于阿里云企业级Flink CDC日志实时入湖入流解决方案阿里云 Flink CDC 提供一键实时入湖功能用户仅需编写 YAML 文本即可完成日志的实时入湖入流。
入湖支持 DLF 的 Paimon Sink 服务格式入流支持 Fluss 等流存储。
传统日志入湖入流方案通常将日志数据采集到消息队列如 Kafka、SLS然后通过编写 Java 代码如 Flink DataStream 作业进行解析处理每个字段需手动判断处理拓扑需根据下游表数量配置。
这种方案门槛较高要求用户熟练掌握 Java 与 Flink 核心概念需手动处理表结构推导且作业是黑盒不可见开发、迭代与资源调优均较困难。
阿里云通过 YAML 方式支持 Kafka、SLS 等数据源可自动对 Topic 内数据进行 Schema 推断与推导并通过路由写入下游不同表。
用户仅需编写 YAML 文本即可实现零代码开发Schema 自动推导业务复制修改即可复用。
开发调优体验类似 SQL 开发修改配置参数或动态加表均可在平台上直接编辑。
基于阿里云企业级Flink CDC日志实时入湖入流客户案例某用户业务场景中数据已采集至 Kafka包含 DB 字段与 Table 字段需将一个 Topic 的数据分发至下游八千多张表要求一个作业完成。
用户期望根据 DB 与 Table 字段自动建表并同步数据新增列时 ODS 表自动加列。
该场景通过一个 YAML 文本即可解决支持下游自动建表、分库分表、Schema 自动推导。
UserId 自动推断为 String 类型EventTime 推断为 Timestamp 类型。
支持数据清洗如 Projection 只选特定字段、Where 过滤、UDF 过滤、表名转换等功能。
用户数据进入 DLFPaimon、Iceberg后可基于 Flink 加 DLF 方案结合 Starrocks 构建实时数仓完整解决方案数据入湖过程高效便捷。
03基于阿里云企业级Flink CDC日志入湖入流最佳实践
作业配置示例以下是一个线上的真实作业示例API 与社区 Amazon API 一致。
配置包含 Source数据源如 Kafka与Sink目标端如 Paimon。
Transform 为可选数据转换配置可指定所有列或通过Projection选择特定字段。
可通过组件配置指定主键字段如用 ID 作为主键。
Route 可进行表名映射如将 user 表映射为 origin_user 或 ODS_user 表。
简单的 YAML 文本即可在阿里云 Flink 完成数据摄入作业开发。
YAML 文本提交后将自动生成线上 Flink 作业支持部署配置、Metric 监控、告警配置等功能。
作业日志查询、Metric 查询、配置告警等体验与全托管Flink作业一致。
核心特性说明数据过滤与计算支持 MySQL 语法风格的数据过滤与计算对用户友好。
例如可对表内age字段进行过滤如 age 大于100的数据或统计字段长度。
提供内置函数与内存函数支持 UDF 调用及 SQL 表达式调用实现数据过滤与清洗。
在数据过滤时斜杠星/*表示匹配原数据所有字段且支持 Schema Evolution。
假设原数据有 ID、name、age 三个字段新增address字段后作业会自动在下游添加该字段计算列与filter规则继续生效。
组件与分区键重定义支持重新定义主键与分区键。
例如 MySQL 表主键为 ID但希望 DLF 数据湖表将主键换成其他字段或增加分区键因多个数据库实例数据写入同一张表。
YAML 中可指定 PK 与分区键。
Pre Transform 与 Post Transform 执行逻辑不同。
Pre Transform 侧重原数据修改包括修改表主键、分区键、加列等操作。
Post Transform 侧重数据处理包括 Filter 与 Projection。
两个算子通常嵌入为一个 Transform既支持 Schema 裁剪与重定义也支持数据过滤与处理。
日志入湖-DLFPaimon快速入门阿里云 DLF 提供全托管 Paimon可以参考阿里云的帮助文档文档采用 Step By Step 方式从配置白名单、准备测试数据到编写作业用户可按步骤完成快速入门。
文档中提供完整可运行的作业样例用户只需替换 Kafka 地址与 Topic可选配置已加上注释说明。
此外文档包含脏数据处理能力配置、Deletion Vector 优化配置等内容用户参照文档即可将 Kafka 日志数据通过 Flink CDC 一键写入阿里云 DLFPaimon。
日志入流-流存储Fluss版快速入门阿里云提供全托管 Fluss当前已经开启公测。
Fluss 作为流存储相比原生 Kafka在列裁剪、Schema 化、湖流一体化等方面优势明显。
将原始采集数据同步至 Fluss 后可构建流式数仓对 Paimon 数据进行加工处理。
Fluss 场景支持类似配置将 Source 换为 KafkaSink 换为 Fluss提交 YAML 文档后作业即可运行。
即使 Kafka 内数据为无 Schema 的 JSON也会自动推导 Schema。
日志入湖入流最佳实践1自动推导表结构Flink CDC 数据摄入支持丰富的推导表结构策略默认策略为自动推导表结构该策略默认配置适用于大多数业务场景。
比如通过配置预读取 Kafka 记录数为100从指定新位点消费累计100条数据对100条数据的 Schema 进行推导获取推导的最宽表结构作为初始表结构。
例如前面50条推导出10个字段后面50条推导出12个字段最终合并为最宽的
个字段作为下游 Paimon 表结构自动建表并写入数据缺失字段填 Null。
2灵活指定表结构Flink CDC 数据摄入也支撑用户手动指定初始表结构如下图所示用户可通过 DDL 语句声明作业初始化表结构您可以直接粘贴下游已有表的 DDL比如通过 Flink Catalog 执行 show create table 命令快速获取您期待的初始表结构。
语法与 Flink SQL 对齐指定初始表结构后按该结构继续演进。
适用于 Kafka Topic 数据太少或尚未开始采集的场景可先编写数据摄入作业数据到达后自动拉起。
部分字段指定类型自动推导可能存在误差用户可指定部分字段为固定类型。
如指定 ID 为 bigint 或 stringname 为 varchar 等。
对于不符合规则的数据可通过脏数据收集器处理。
灵活指定表结构以满足特定业务需求。
3脏数据处理日志场景与数据库不同弱结构化数据不可避免存在脏数据。
阿里云提供脏数据容忍与收集配置用户可设置脏数据容忍条数脏数据支持收集。
业务运行时不查看脏数据过后可据此调整下游 Schema 或反馈给上游业务方确保 Pipeline 稳定运行。
4
常见问题排查阿里云积累了大量
常见问题与排查手段相关链接已整理。
包括 Flink CDC 数据摄入的
常见问题与解决方案涵盖数据库入湖、日志入湖等场景。
日志场景最多涉及 Kafka 与 SLS 两类问题
总结包括配置方法、网络联通性、嵌套 JSON 格式解析等用户可参照文档快速排查。
04阿里云企业级Flink CDC联合解决方案
湖流一体解决方案阿里云企业级Flink CDCFlussFlinkPaimon基于 Fluss 加 Flink 加 Paimon 的湖流一体解决方案中Flink CDC 作为数据接入层可接入数据库数据、日志数据、OSS 数据OSS 支持开发中摄入至 Fluss 与 Paimon。
对时效性不敏感的业务可直接写入 Paimon对时效性要求更高的业务先写入 Fluss通过 Fluss 的湖流一体能力自动将热数据写入 Paimon。
Flink CDC 支持直接写入 Fluss 或直接写入 Paimon。
用户可基于此方案结合 OLAP 查询引擎如 Starrocks、SelectDB 等完成报表、Dashboard、数据探查、数据分析等应用。
根据业务场景选择方案中级时效需求通过数据摄入直接写 Paimon秒级时效需求先写 Fluss 加速再写 Paimon。
端到端实时数仓可达到秒级时效。
金融入湖入仓解决方案阿里云企业级Flink CDC EMR StarRocks EMR Spark阿里云某金融行业客户案例具有一定代表性。
客户原数据架构包含数据采集、数据库、数据应用及离线调度。
阿里云基于 Flink CDC 数据摄入对原有方案升级为实时数仓架构替代自建 Kafka 集群大幅降低自建 Kafka 集群的管理运维成本。
Flink 作业直接采集至 Kafka 后可通过 Flink SQL 进行实时 ETL、聚合等复杂分析也可通过 Flink CDC 日志入湖能力将 Kafka 内的 JSON 等日志类型数据直接写入数据湖再进行后续的计算和分析。
该方案在客户环境稳定运行一年多。
开源方案在企业级场景存在性能瓶颈与运维管理困难阿里云方案开箱即用资源弹性几分钟内即可扩展。
Flink CDC 采集能力提升 50% 以上实时计算性能相比开源内核提升
倍在大型性能要求极致场景中得到客户认可。
智驾实时数据湖解决方案阿里云企业级Flink CDCDLF(Paimon)汽车行业尤其是新能源汽车快速发展阿里云 Flink CDC 与某行业头部客户在自动驾驶场景展开合作。
车端数据量巨大采集后通过 Flink CDC 写入数据库基于数据库进行模型训练、搜索等自动驾驶业务场景。
Flink CDC 处于业务链路前端快速接入端侧数据后续链路处理能获取更新鲜的数据业务效果更佳。
支持端侧日志数据入湖数据库数据关系型 DB、NoSQL DB 如 MongoDB摄入。
开源版本已具备初步能力企业版进一步优化性能帮助头部客户快速完成自动驾驶场景数据湖方案建设。
05
总结阿里云 Flink CDC 数据摄入旨在快速高效智能化地将用户数据写入数据湖与流存储主要包含两类场景数据库与日志。
数据库场景核心能力Schema Evolution、表级入湖、整库同步、内置函数与 UDF 处理、数据限流避免打挂核心业务库。
日志场景核心能力Schema Inference从杂乱无章原数据推出表结构和结构化数据、主键与分区键灵活指定、脏数据处理日志场景脏数据较为常见、多表拆分入湖Kafka Topic 较贵单 Topic 可能存储数百上千张表数据、JSON 智能解析筛选特定字段、字段合并规则、版本号字段映射等。
阿里云 Flink CDC 针对数据库与日志场景分别打造企业级核心能力与最佳实践适用于阿里云 Flink 产品用户或开源用户均可获得启发与参考。
这些最佳实践是云产品孵化过程中踩坑沉淀的结晶云上用户可获得更多底座能力支持与兄弟团队云产品 DLF、Fluss、Hologres、Maxcompute、Starrocks 深度融合打通用户体验开箱即用。
阿里云企业级 Flink CDC 在 Serverless Flink 中可以直接使用入湖场景支持多种湖格式已支持 DLF Paimon、DLF Iceberg 和 Fluss 等对 Paimon 与 Fluss 的支持走在业界前沿。
实时湖仓场景中Flink CDC 核心功能为入湖入仓支持写入 DLF、EMR-Starrocks、Hologres、Maxcompute。
湖流一体方案中Flink CDC 将数据库业务库数据与日志业务日志高效写入 Fluss 流存储再通过 Fluss 自动同步至 Paimon形成湖流一体解决方案在实时湖仓基础上为核心业务提供更高实时性。
经典实时数仓解决方案中Flink 与 Hologres 团队合作推出的 Flink CDC 直接写入 Hologres 方案较为经典。
Flink CDC 也支持写入 EMR Starrocks用户可根据偏好选择商业产品或开源产品。
无论是实时数仓、湖仓还是湖流一体方案Flink CDC 数据摄入均能完成方案第一步。
欢迎大家免费开通 Serverless Flink 来使用企业级 Flink CDC如需更多交流可加入阿里云实时计算 Flink 版交流群开源 Flink CDC 问题可在 Flink CDC 社区群讨论。
▼ 「实时计算 Flink 版」 ▼复制下方链接或者扫描左边二维码即可免费试用阿里云Serverless Flink体验新一代实时计算平台的强大能力了解试用详情https://free.aliyun.com/?productCodesc▼ 关注「Apache Flink」 ▼回复 FFA 2025 获取大会资料点击「阅读原文」跳转阿里云实时计算 Flink