Flink CDC「Data Pipeline」定义与参数速查

一、核心概念

  • Data Pipeline :Flink CDC 里,事件从上游 流向下游 ,整条 ETL 作业即称为一个"数据管道(Data Pipeline)"。管道在 Flink 中对应一串有序的 operators (算子链)。必备部分:source / sink / pipeline ;可选部分:route / transform 。(Apache Nightlies)

二、最小可用示例(Only required)

目标 :把 MySQL app_db 库下的所有表 ,实时同步到 Doris

✅ 正则要写成 app_db\..*(点号要转义;YAML 中避免使用 \.* 这样的 Markdown 残留写法)。

yaml 复制代码
pipeline:
  name: Sync MySQL Database to Doris
  parallelism: 2

source:
  type: mysql
  hostname: localhost
  port: 3306
  username: root
  password: 123456
  tables: app_db\..*

sink:
  type: doris
  fenodes: 127.0.0.1:8030
  username: root
  password: ""
  • pipeline.parallelism 为全局并行度,默认 1。(Apache Nightlies)
  • Doris 作为 sink 需要 FE 地址 fenodes、用户名等基础配置。(Apache Nightlies)

三、进阶示例(With optional)

目标 :同步 app_db 全库到 Doris,同时:

  • 字段投影/过滤transform
  • 表路由route):把上游表写到指定库表(ods_db.ods_*
  • 注册UDFtransform 使用
yaml 复制代码
source:
  type: mysql
  hostname: localhost
  port: 3306
  username: root
  password: 123456
  tables: app_db\..*

sink:
  type: doris
  fenodes: 127.0.0.1:8030
  username: root
  password: ""

transform:
  - source-table: adb.web_order01
    # 用双引号包住整个表达式,避免 YAML 把 * 解析为锚点
    projection: "*, format('%S', product_name) as product_name"
    filter: "addone(id) > 10 AND order_id > 100"
    description: project fields and filter
  - source-table: adb.web_order02
    projection: "*, format('%S', product_name) as product_name"
    filter: "addone(id) > 20 AND order_id > 200"
    description: project fields and filter

route:
  - source-table: app_db.orders
    sink-table: ods_db.ods_orders
  - source-table: app_db.shipments
    sink-table: ods_db.ods_shipments
  - source-table: app_db.products
    sink-table: ods_db.ods_products

pipeline:
  name: Sync MySQL Database to Doris
  parallelism: 2
  user-defined-function:
    - name: addone
      classpath: com.example.functions.AddOneFunctionClass
    - name: format
      classpath: com.example.functions.FormatFunctionClass

上述结构、字段名与含义,均出自 Flink CDC 官方 "Data Pipeline" 文档与 "MySQL→Doris Quickstart"。(Apache Nightlies)

Doris sink 关键参数(type: dorisfenodes 等)见 Doris 连接器页面与对应 3.5 API。(Apache Nightlies)

四、Pipeline 级参数一览(至少设置一个参数;pipeline 段不可为空

参数 作用 备注
name 提交到 Flink 集群时的作业名 可选
parallelism 管道全局并行度(默认 1) 可选
local-time-zone 会话时区 ID 可选
execution.runtime-mode 运行模式:STREAMING / BATCH(默认 STREAMING 可选
schema.change.behavior 上游模式变更处理策略:exception / evolve / try_evolve / lenient(默认) / ignore 可选
schema.operator.uid 已弃用 (用 operator.uid.prefix 可选
schema-operator.rpc-timeout 等下游应用 Schema 变更的超时,默认 3 分钟 可选
operator.uid.prefix 给所有算子 UID 统一加前缀,便于有状态升级/排障/定位 可选

官方强调:上述参数各自可选 ,但 pipeline 段必须存在且不能为空 。(Apache Nightlies)

五、常见踩坑与修正

  1. 正则写法

    • 正确:app_db\..*(转义点号,匹配该库全部表)
    • 错误:app_db.\.*(多见于网页转义后的拷贝)
      原因:Markdown/网页中常把 *\ 做转义展示,直接复制会"多出反斜杠"。 (按上文示例已修正)(Apache Nightlies)
  2. YAML 里使用 *

    • projection 里建议把整句用引号包起来:"*, col as alias",避免 YAML 把 * 解析成锚点语法。
  3. Doris 连接参数

    • 至少提供 type: dorisfenodes(FE 的 HTTP 地址),其他如 username/password/jdbc-url 视集群而定。(Apache Nightlies)
  4. Schema 演进策略

    • 生产环境常用 lenienttry_evolve;严格治理可用 evolve/exception。(Apache Nightlies)

六、参考与延伸阅读

  • Flink CDC ------ Data Pipeline :定义、必选/可选段落、示例、Pipeline 配置项。(Apache Nightlies)
  • MySQL → Doris 快速上手:端到端 YAML + CLI。(Apache Nightlies)
  • Doris 管道连接器:必需/可选参数与示例。(Apache Nightlies)
相关推荐
Hello.Reader4 小时前
Flink ZooKeeper HA 实战原理、必配项、Kerberos、安全与稳定性调优
安全·zookeeper·flink
AI_56784 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
CRzkHbaXTmHw4 小时前
探索Flyback反激式开关电源的Matlab Simulink仿真之旅
大数据
七夜zippoe5 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥5 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿5 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
忆~遂愿6 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
米羊1216 小时前
已有安全措施确认(上)
大数据·网络
人道领域7 小时前
AI抢人大战:谁在收割你的红包
大数据·人工智能·算法
qq_12498707538 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计