离线读取节点配置


参数 | 说明 |
数据来源 | 可用的 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}}}}