Hudi Pipeline 连接器
Hudi Pipeline 连接器可以用作 Pipeline 的 Data Sink,将数据写入 Apache Hudi。本文档介绍如何设置 Hudi Pipeline 连接器。
连接器的功能
- 自动创建 Hudi 表
- 自动的表结构变更同步
- 数据实时同步
如何创建 Pipeline
从 MySQL 读取数据同步到 Hudi 的 Pipeline 可以定义如下:
source:
type: mysql
name: MySQL Source
hostname: 127.0.0.1
port: 3306
username: admin
password: pass
tables: adb.\.*, bdb.user_table_[0-9]+
server-id: 5401-5404
sink:
type: hudi
name: Hudi Sink
path: /path/warehouse
hoodie.table.type: MERGE_ON_READ
transform:
- source-table: adb.\.*
table-options: ordering.fields=ts1
- source-table: bdb.user_table_[0-9]+
table-options: ordering.fields=ts2
pipeline:
name: MySQL to Hudi Pipeline
parallelism: 4
Pipeline 连接器配置项
| Option | Required | Default | Type | Description |
|---|---|---|---|---|
| type | required | (none) | String | 指定要使用的连接器,这里需要设置成 'hudi' |
| path | required | (none) | String | 为目标 hudi 表指定基本路径 |
| name | optional | (none) | String | Sink 的名称 |
| hoodie.table.type | optional | (none) | String | 目标 hudi 表的类型,目前仅支持 MERGE_ON_READ |
| index.type | optional | (none) | String | 目标 hudi 表的索引类型,目前仅支持 BUCKET |
| table.properties.* | optional | (none) | String | 将 hudi 表支持的参数传递给 pipeline,参考 Hudi table options |
使用说明
- 源表必须定义主键。用户可通过
transform规则来自覆盖主键配置,或设置 Ordering Fields 配置。 - 目前只支持 MERGE_ON_READ 表类型,以及简单 BUCKET 索引。
- 暂不支持 exactly-once 语义,连接器通过 at-least-once 语义和主键表实现幂等写。
数据类型映射
| CDC type | Hudi type | NOTE |
|---|---|---|
| TINYINT | TINYINT | |
| SMALLINT | SMALLINT | |
| INT | INT | |
| BIGINT | BIGINT | |
| FLOAT | FLOAT | |
| DOUBLE | DOUBLE | |
| DECIMAL(p, s) | DECIMAL(p, s) | |
| BOOLEAN | BOOLEAN | |
| DATE | DATE | |
| TIME | TIME | |
| TIMESTAMP | TIMESTAMP | |
| BINARY | BINARY | |
| CHAR(n) | CHAR(n) | |
| VARCHAR(n) | VARCHAR(n) |
Copyright © 2026 The Apache Software Foundation. Apache Flink, Flink, and the Flink logo are trademarks of The Apache Software Foundation.