全部產品
Search
文件中心

Realtime Compute for Apache Flink:Flink CDC Source和Sink模組

更新時間:Apr 08, 2026

本文向您介紹基於Flink CDC的資料攝入作業的Source和Sink模組及其支援使用的連接器。

支援的連接器

連接器

支援類型

Source

Sink

MySQL

說明

支援串連RDS MySQL版、PolarDB MySQL版及自建MySQL。

×

流式資料湖倉Paimon

×

訊息佇列Kafka

說明

僅Realtime Compute引擎 VVR 8.0.10 及更高版本支援。

Upsert Kafka

×

StarRocks

×

即時數倉Hologres

×

Log ServiceSLS

說明

僅Realtime Compute引擎 VVR 11.1 及更高版本支援。

×

MongoDB

說明

僅Realtime Compute引擎 VVR 11.2 及更高版本支援。

×

MaxCompute

×

說明

僅Realtime Compute引擎 VVR 11.1 及更高版本支援。

SelectDB

×

說明

僅Realtime Compute引擎 VVR 11.1 及更高版本支援。

Postgres CDC(公測中)

說明

僅Realtime Compute引擎 VVR 11.4 及更高版本支援。

×

Print

×

Iceberg

×

說明

僅Realtime Compute引擎 VVR 11.6 及更高版本支援。

連接器參數配置

您可以在基於Flink CDC的資料攝入作業中配置 Source 及 Sink 連接器的參數。支援的連接器及相應的參數請參考下文。

# Source 模組
source:
  type: mysql # 或其他連接器標識符
  name: MySQL Source
  # 其他參數。使用 key: value 表示。

# Sink 模組
sink:
  type: paimon # 或其他連接器標識符
  name: Paimon Sink
  # 其他參數。使用 key: value 表示。

通用配置

參數

說明

是否必填

資料類型

預設值

備忘

type

Source或Sink的連接器類型

String

name

節點名稱

String

using.built-in-catalog

複用已有Catalog

String

複用已有Catalog擷取串連資訊

自VVR 11.5版本起,您可以在Flink CDC資料攝入作業中直接引用“資料管理”頁面中建立的內建Catalog,擷取對應的串連屬性,如URL、username、password等,減少手寫串連屬性工作量。

文法
source:
  type: mysql
  using.built-in-catalog: mysql_rds_catalog
  
sink:
  type: paimon
  using.built-in-catalog: paimon_dlf_catalog

您可以在 sourcesink模組中使用using.built-in-catalog文法引用已建立的內建Catalog。

例如,在上面的例子中,mysql_rds_catalog的Catalog中繼資料中已經包含hostnameusernamepassword等必填參數,因此無需在YAML作業中重複提供這些參數。

使用限制

下述連接器已經支援複用Catalog的串連資訊:

  • MySQL(源端)

  • Kafka(源端)

  • Upsert Kafka(目標端)

  • StarRocks(目標端)

  • Hologres(目標端)

  • Paimon(目標端)

  • SLS(源端)

  • Iceberg(目標端)

說明

與CDC YAML不相容的Catalog參數不會生效,您可以參考各個連接器的參數列表查看詳細資料。

Source配置

參數

說明

是否必填

資料類型

預設值

備忘

source-expand

指定資料從source發出時的分發策略

請見對應文法部分進行配置

  • VVR 11.6 及以上版本可用。

source-expand

source-expand配置用於在Tramsform模組和Route模組處理前,將資料進行分發或者多路複製。

文法
source:                                                                                                                                                                                                                                                                                                          
  type: mysql                                                                                                                                                                                                                                                                                                     
  host: localhost                                                                                                                                                                                                                                                                                                  
  port: 3306                                                                                                                                                                                                                                                                                                       
  username: admin
  password: pass
  tables: mydb.orders
  source-expand:
  # 將 mydb.orders 複製為三張表,分別經過不同處理後寫入下遊
    - input-table: mydb.orders
      output-table: [ dwd.orders_full, dws.orders_summary, ads.orders_report ]

# 對三張擴充後的表分別應用不同的 transform
transform:
  # 明細層:保留全部欄位,增加計算資料行
  - source-table: dwd.orders_full
    projection: "*, amount * discount as final_price"
  # 匯總層:只保留關鍵字段,過濾小額訂單
  - source-table: dws.orders_summary
    projection: order_id, user_id, amount, order_status
    filter: amount > 100
    primary-keys: order_id
  # 報表層:只保留統計需要的欄位,過濾已取消的訂單
  - source-table: ads.orders_report
    projection: order_id, user_id, amount, TO_UPPER(order_status) as status
    filter: order_status <> 'CANCELLED'
    primary-keys: order_id

# 將三張擴充後的表路由到不同的下遊目標表
route:
  - source-table: dwd.orders_full
    sink-table: starrocks_dwd.orders_full_detail
  - source-table: dws.orders_summary
    sink-table: starrocks_dws.orders_summary
  - source-table: ads.orders_report
    sink-table: starrocks_ads.orders_report

sink:
  type: starrocks
  name: sink-starrocks
  jdbc-url: jdbc:mysql://localhost:9030
  load-url: localhost:8030
  username: root
  password: pass

使用如上所示格式進行配置,例子中mydb.orders 表分發複製為 dwd.orders_full, dws.orders_summary和ads.orders_report三張表,每個表經過不同的處理邏輯後分別寫入到下遊的三張表中。

注意事項
  • VVR 11.6 及以上版本可用。

  • 資料分發後預設不保留原有表。以文法部分中例子為例,mydb.orders表按如上配置後,下發的資料中不再包含mydb.orders表。如果想保留mydb.orders表,需要將mydb.orders表添加到output-table 部分。

    source-expand:
      - input-table: mydb.orders
        output-table: [ mydb.orders, db1.orders, db2.orders ]
  • input-table 和 output-table 中不支援使用Regex。

Sink配置

參數

說明

是否必填

資料類型

預設值

備忘

include.schema.changes

支援應用的Schema變更

List<String>

預設支援所有變更。

exclude.schema.changes

不支援應用的Schema變更

List<String>

優先順序高於include.schema.changes

include.schema.changesexclude.schema.changes的詳細使用方式請參見表結構變更同步配置