MRS Hudi数据源
支持的版本
本数据集成服务全面支持华为云大数据MRS Hudi产品,支持Hudi主流版本,可满足不同用户在多种部署环境下的数据同步需求。
使用前准备及限制
- 网络要求
MRS Hudi数据源必须与CDM网络进行通讯,以确保数据传输的顺畅性。详情请参见网络打通。
- 权限要求
- Hudi读写权限
- 读权限:如果需要从Hudi读取数据,需要为数据集成服务的IAM用户或用户组授予Hudi的只读权限,如MRS ReadOnlyAccess系统策略,或者根据具体需求创建自定义策略,授予如SELECT等读取相关操作的权限。
- 写权限:如果需要向Hudi写入数据,除了上述OBS权限外,还需要为数据集成服务的IAM用户或用户组授予Hudi的写入权限,如MRS CommonOperations或MRS FullAccess系统策略,或者创建自定义策略,授予如INSERT INTO TABLE、CREATE TABLE等写入相关操作的权限。
- OBS权限(存算分析场景):当MRS-Hudi开启存算分析,数据集成服务将与OBS进行读写文件交互,需要拥有OBS文件的读写权限。
- 访问端口放通:在配置MRS Hudi数据源时,需要确保以下端口在安全组或自有网络已经放通,以供数据集成服务访问MRS使用。
表1 各服务端口说明 服务
端口类型
端口号
用途
Spark
TCP
22550
Spark JDBC Thrift端口,用于Spark客户端与Spark服务器之间的通信。
MRS Manager
TCP
28443
下载MRS集群配置。
20009
CAS认证端口。
20029
Manager与其他组件之间的通信和管理操作。
KDC
TCP&&UDP
21730
Kerberos认证使用。
21731
Kerberos认证使用。
21732
Kerberos认证使用
HDFS
TCP
8020
HDFS NameNode服务端口。
9866
HDFS dataNode服务端口。
Hudi
TCP
10000
HudiServer服务端口,用于客户端与HudiServer之间的通信。
9083
Hudi Metastore服务端口,用于存储和管理Hudi的元数据信息。
Zookeeper
TCP
2181
Zookeeper服务端口,用于客户端与Zookeeper集群之间的通信。
- Hudi读写权限
支持的数据类型
数据集成读取Hudi依赖Spark读取能力支持以下字段:
|
类别 |
字段类型 |
MRS Hive 读取 |
|---|---|---|
|
字符串类 |
STRING |
√ |
|
整数类 |
TINYINT |
√ |
|
INTEGER |
√ |
|
|
SMALLINT |
√ |
|
|
INT |
√ |
|
|
BIGINT |
√ |
|
|
浮点类 |
FLOAT |
√ |
|
DOUBLE |
√ |
|
|
DECIMAL |
√ |
|
|
日期时间类 |
TIMESTAMP |
√ |
|
DATE |
√ |
|
|
布尔型 |
BOOLEAN |
√ |
|
二进制 |
BINRAY |
√ |
|
复杂类型 |
ARRAY |
√ |
|
MAP |
√ |
|
|
STRUCT |
x |
支持的迁移场景
数据集成离线同步支持以下三种同步方式,以满足不同数据迁移场景的需求:
- 单表同步
适用于数据入湖和数据上云场景下,表或文件级别的数据同步。支持的数据源类型请参考表/文件同步支持的数据源类型。
- 分库分表同步
适用于数据入湖和数据上云场景下,多库多表同步场景。支持的数据源类型请参考分库分表同步支持的数据源类型。
- 整库迁移
适用于数据入湖和数据上云场景下,离线或自建数据库整体同步场景。支持的数据源类型请参考整库同步支持的数据源类型。
需要注意的是,分库分表与整库迁移能力会根据不同region的上线支持情况有所不同,具体支持情况以页面为准。以下是针对Hudi的支持迁移场景概览:
|
支持迁移场景 |
单表读取 |
单表写入 |
分库分表读取 |
分库分表写入 |
整库读取 |
整库写入 |
|---|---|---|---|---|---|---|
|
是否支持 |
√ |
√ |
x |
√ |
x |
x |
核心能力速览
- 连接配置
配置项
支持情况
说明
kerberos认证
√
通过Kerberos认证方式访问MRS集群。
存算分离
√
支持存算分离架构,读取OBS/HDFS多种不同Hive存储文件系统能力。
- 读取能力
配置项
支持情况
说明
增量读取
√
支持通过【where子句】配置增量读取,可按条件筛选数据,高效读取新增或修改部分,避免全量读取。
分片并发
√
支持分片并发读取,底层文件被划分为多个分片并行读取,充分利用资源,提升读取性能,尤其适用于大规模数据集。
自定义字段
x
可在任务级追加计算列、常量列或脱敏函数,满足个性化业务需求,暂不支持。
脏数据处理
√
支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败。
- 写入能力
配置项
支持情况
说明
写入模式
LOAD
TRUNCATE+LOAD
INSERT_OVERWRITE
LOAD:适用于数据追加场景,不会对目标表中的已有数据进行任何修改或删除操作,直接将新数据追加到表中。
TRUNCATE+LOAD:在写入数据前,会先清空目标分区中的所有数据,然后将新数据写入。这种方式适合于需要完全替换分区数据的场景。
INSERT_OVERWRITE:对目标分区的数据进行覆盖写入,可以根据指定的条件或规则,对分区中的数据进行更新或替换。
导入前后处理
√
支持TRUNCATE+LOAD方式对选用分区进行清空。
脏数据处理
x
支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败,暂不支持。
并发写入
√
并发写入可以充分利用集群资源,提高数据写入的速度。
运行态建表
√
在数据写入过程中动态创建表。如果目标表不存在,Hudi 会根据写入的数据自动创建表结构,无需预先手动创建表。
编辑态建表
√
在作业编辑过程中手动创建表。用户可以根据数据的结构和需求,提前定义表的结构、字段类型、分区策略等。
创建数据源
在DataArts Studio管理中心新建相应的数据源,详情请参见创建DataArts Studio数据连接。
创建数据集成离线作业
在DataArts Studio数据开发中新建MRS Hive集成作业,详情请参见新建离线处理集成作业。