HDFS 作为业界使用最广泛的开源分布式文件系统,具有高容量、高吞吐的特点,经常用于大规模数据应用。
HDFS 数据源为您提供可视化读和实时写入 HDFS 的数据集成通道能力,实现和不同数据源之间进行数据传输。
本文将为您介绍 DataSail 对 HDFS 数据同步能力的支持情况。
目前支持离线读取 Json 和 Pb 格式的文件,内部支持的数据类型如下:
类型分类 | 数据集成 column 配置类型 | Json 数据类型 | Pb 数据类型 |
---|---|---|---|
整数类 | tinyint、int、bigint | 数字 | int32、int64、 |
浮点类 | float、double、decimal | float、double | |
字符串类 | string | 字符串 | string、enum |
时间类 | date、timestamp | 时间字符串、整数时间戳 | 时间字符串、整数时间戳 |
布尔类 | boolean | 布尔值 | bool |
数组类 | array | 数组 | repeated |
字典类 | map | 对象 | message |
二进制类型 | binary | bytes |
新建数据源操作详见配置数据源,以下为您介绍不同接入方式的 HDFS 数据源配置相关信息:
EMR-HDFS 数据源
注意
EMR 集群所在的 VPC 需和独享集成资源组中的 VPC 保持一致,确保网络能互相访问。不同 VPC 情况时,详见“2 使用限制”相关说明。
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
基本配置 | |
*数据源类型 | HDFS |
*接入方式 | EMR HDFS |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
*EMR 集群 ID | 下拉选择已创建成功的 EMR Hadoop 类型的集群名称,若还未创建相关集群,您可前往 EMR-控制台创建。详见创建集群。 |
连接串形式 HDFS 数据源
用连接串形式配置 HDFS 数据源,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
基本配置 | |
*数据源类型 | HDFS |
*接入方式 | 连接串 |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
defaultFS | 填写 Hadoop HDFS 文件的 namenode 节点地址,以 hdfs://ServerIP:Port 的形式填写。 |
扩展配置 | 输入必要的 HDFS 扩展配置属性,例如 Hadoop HA 的配置。默认情况无需额外配置,填写
说明
|
*认证方式 | 目前暂不支持配置认证方式。 |
HDFS 数据源测试连通性成功后,进入到数据开发界面,开始新建 HDFS 相关通道任务。新建任务方式详见离线数据同步、流式数据同步。
任务创建成功后,您可根据实际场景,配置 HDFS 离线读通道任务。
说明
目前暂不支持 HDFS 以脚本模式(DSL)配置通道任务。
数据来源选择 HDFS,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*数据源类型 | 下拉选择 HDFS 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 HDFS 数据源,下拉可选。 |
*数据源地址 | 填写需要采集的数据文件所在路径:
说明 若配置的地址下包含 HDFS 分区时,您可通过配置高级参数方式,并在字段映射配置中,手动添加分区字段名称信息,来读取对应的 HDFS 分区数据。高级参数配置详见5.2 HDFS 读高级参数。 |
*数据类型 | 支持选择 Parquet、ORC、json、pb 等几种数据类型,其中:
|
流式集成任务实时写入 HDFS 数据源,数据目标类型选择 HDFS,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*目标类型 | 下拉选择 HDFS 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 HDFS 数据源,下拉可选。 |
*HDFS 保存地址 | 填写需要写入数据的 HDFS 存储路径信息。 注意
|
可视化离线读 HDFS,数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
字段映射支持选择基础模式和转换模式配置映射:
注意
基础模式和转换模式不支持互相切换,模式切换后,将清空现有字段映射中所有配置信息,一旦切换无法撤销,需谨慎操作。
转换模式:
字段映射支持数据转换,您可根据实际业务需求进行配置,将源端采集的数据,事先通过数据转换后,以指定格式输入到目标端数据库中。
转换模式详细操作说明详见4.1 转换模式
在转换模式中,你可依次配置:来源节点、数据转换、目标节点信息:
配置节点 | 说明 |
---|---|
来源节点 | 配置数据来源 Source 节点信息:
配置完成后,单击确认按钮,完成来源节点配置。 |
数据转换 | 单击数据转换右侧添加按钮,选择 SQL 转换方式,配置转换信息和规则:
配置完成后,单击确认按钮,完成数据转换节点配置。SQL 脚本示例详见4.1.2 添加转换节点。 |
目标节点 | 配置目标节点 Sink 信息:
配置完成后,单击确认按钮,完成目标节点配置。 |
基础模式:
您可通过以下三种方式操作字段映射关系:
注意
对于可视化通道任务,高级参数可在任务开发界面:任务运行参数 > 自定义参数设置中填写,通用参数需要加上 job.common.
前缀如图所示:
JSON 数据格式相关参数:
参数 | 描述 | 默认值 |
---|---|---|
job.common.case_insensitive | JSON 内容解析时是否对字段 Key 大小写敏感。 | true |
job.common.support_json_path | 是否支持带 | false |
job.common.json_serializer_features | DataSail 使用 fastjson 解析 JSON 内容,用户可以通过此参数设置 JSON 解析的 features,详情参考 SerializerFeature - fastjson 1.2.83 javadoc。多个 SerializerFeature 使用逗号分隔。 | 无 |
job.common.convert_error_column_as_null | 是否将类型转化失败的字段默认置为 null。 | false |
job.common.host_ips_mapping | HDFS 数据源通过连接串形式配置时,需在高级参数中配置 ip_mapping 信息,将 hdfs 集群的节点域名与 ip 进行映射,示例如下:
| 无 |
HDFS 读取数据时,支持添加以下高级参数:
参数 | 描述 | 默认值 |
---|---|---|
job.reader.parse_partition_from_path | 在需要读取并解析数据源地址路径下的分区字段场景中,可以添加此高级参数,在手动添加分区字段映射后,便可正常读取分区字段数据。 | false |
job.reader.partition_num | 读取分区字段数据场景中,如果是读取 Json 这类没有 Schema 定义的数据格式时,需添加此高级参数,来告知当前作业设置的路径中包含多少个分区字段数。 | 无 |
实时写高级参数可在任务开发界面:任务运行参数 > 高级参数中,选择开启按钮后,进行填写,写参数时需要加上 job.writer.
前缀:
参数 | 描述 | 默认值 |
---|---|---|
job.writer.rolling.max_part_size | 文件切割大小,单位字节,默认 10G。 注意 这里是指未压缩读的数据大小, 而非 HDFS 最终文件大小。 | 10737418240 |
job.writer.hdfs.replication | HDFS 副本数 | 3 |
job.writer.hdfs.compression_codec | HDFS 压缩格式,支持
| zstd |
job.writer.dump.directory_frequency | 写入 HDFS 文件夹的频率,支持以下参数:
| dump.directory_frequency.day |