跳到主要内容

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)