帮你快速理解、总结文档立即下载

Hudi 数据源

最近更新时间:2026-09-20 15:51:33
我的收藏

离线读取节点配置




参数
说明
数据来源
可用的 Hudi 数据源。
查询模式
支持自定义 Query 模式,选择后仅需填写 QuerySQL 字段,无需填写库、表和筛选条件。
库
支持选择、或者手动输入需读取的库名称。
默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。
当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
表
支持选择、或者手动输入需读取的表名称。
当数据源网络不联通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
筛选条件(选填)
在实际业务场景中,通常会选择当天的数据进行同步,将 where 条件指定为 gmt_create>$bizdate。where 条件可以有效地进行业务增量同步。
如果不填写 where 语句,包括不提供 where 的 key 或 value,数据同步均视作同步全量数据。
不可以将 where 条件指定为 limit 10,这不符合 Hudi WHERE 子句约束。
高级设置(选填)
可根据业务需求配置参数。

离线写入节点配置




参数
说明
数据去向
需要写入的 Hudi 数据源。
库
支持选择、或者手动输入需写入的库名称
默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。
当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
表
支持选择、或者手动输入需写入的表名称。
当数据源网络不联通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
写入模式
Hudi 写入支持三种模式:
Append: 当主键/唯一性索引冲突时,冲突行无法写入 。
Upsert:主键/唯一性索引冲突时,用新行的指定字段更新已有记录。
Overwrite:主键/唯一性索引冲突时,会先删除原有行,再插入新行 。
前置 SQL(选填)
执行同步任务之前执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL,例如,执行前清空表中的旧数据(truncate table tablename)。
后置 SQL(选填)
执行同步任务之后执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL,例如,加上某一个时间戳 alter table tablename add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。
高级设置(选填)
可根据业务需求配置参数。

数据类型转换支持

读取

Hudi 读取支持的字段类型及类型转换对应关系如下(在处理 Hudi 时,会将 Hudi 数据源的数据类型和数据处理引擎的数据类型做映射):
Hudi 数据类型
内部类型
tinyint, smallint, int, integer, bigint, long
Long
float, double, decimal
Double
string, varchar, char, array
String
timestamp, datetime, date
Date
bool, bit, boolean
Boolean

写入

Hudi 写入支持的字段类型及类型转换对应关系如下:
内部类型
Hudi 数据类型
Long
tinyint, smallint, int, integer, bigint, long
Double
float, double, decimal
String
string, varchar, char, array
Date
timestamp, datetime, date
Boolean
bool, bit, boolean

Hudi 脚本 Demo

{
"core": {
"transport": {
"channel": {
"speed": {
"byte": -1
}
}
}
},
"job": {
"content": [
{
"reader": {
"parameter": {
"password": "******",
"datasource": "hudi_test",
"column": [
"*"
],
"connection": [
{
"jdbcUrl": [
"jdbc:hive2://ip:port/datasource_name;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
],
"table": [
"source_table"
]
}
],
"username": "root"
},
"name": "hudireader"
},
"transformer": [],
"writer": {
"parameter": {
"password": "******",
"datasource": "hudi_test",
"column": [
"*"
],
"connection": [
{
"jdbcUrl": "jdbc:hive2://ip:port/datasource_name;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi",
"table": [
"sink_table"
]
}
],
"writeMode": "overwrite",
"primaryKey": [],
"username": "root"
},
"name": "hudiwriter"
}
}
],
"setting": {
"memory": {
"taskLimit": 335544320,
"channelLimit": 67108864,
"writerLimit": 134217728,
"jobLimit": 872415232,
"readerLimit": 134217728
},
"errorLimit": {
"record": 0
},
"speed": {
"byte": -1,
"channel": 1
}
}
}
}