最近更新时间:2024.03.01 11:30:54
首次发布时间:2022.09.15 17:46:56
Hive 常用于存储结构化数据,其底层使用 HDFS 存储数据。全域数据集成(DataSail)提供了基于 HDFS 文件和基于 JDBC 两种方式的数据同步功能:
Hive reader 和 Writer 会通过 HiveServer2 拿到目标 Hive 表的元信息,从而获取到各个字段的类型,自动完成任务的 Schema 配置,用户只需单击自动添加即可完成 Schema 配置。
类型分类 | 数据集成 Column 配置类型 |
---|---|
整数类 | tinyint、smallint、int、bigint |
浮点类 | float、double、decimal |
字符串类 | string、varchar |
时间类 | date、timestamp |
布尔类 | boolean |
数组类 | array |
字典类 | map |
二进制类型 | binary |
新建数据源操作详见配置数据源,以下为您介绍不同接入方式的 Hive 数据源配置相关信息:
EMR-Hive 数据源
注意
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
基本配置 | |
*数据源类型 | Hive |
*接入方式 | EMR Hive |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
*EMR 集群 ID | |
*数据库名 | 下拉选择集群环境中,已创建的 Hive 数据库名称。 |
Hive 版本号 | 依据已选择的 EMR Hadoop 集群,自动展现集群中包含的 Hive 版本。 |
用户名 | 有权限访问数据库的用户名信息。 |
密码 | 输入用户名对应的密码信息。 |
扩展配置 | 您可输入 HDFS 配置的可选扩展,例如 Hadoop HA 的配置信息。 |
连接串形式 Hive 数据源
用连接串形式配置 Hive 数据源,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
基本配置 | |
*数据源类型 | Hive |
*接入方式 | 连接串 |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
*认证方式 | 访问 Hive 数据源时,支持使用 Kerberos 认证的身份认证方式;若访问时无需认证,则认证方式选择无。 |
*数据库名 | 输入已创建的 Hive 数据库名称。 |
用户名 | 有权限访问数据库的用户名信息。 |
密码 | 输入用户名对应的密码信息。 |
*Hive 版本号 | 支持下拉选择 Hive 3.1.2 的版本。 |
*MetaStore URI | 输入 Hive 元数据存储的 MetaStore uri 地址,以 thrift://ip1:port,thrift://ip2:port 的形式,多个地址可用英文“,”分隔。 |
*Hive JDBC URL | 输入 Hive JDBC URL 链接串地址信息:
|
*keyTab文件 | 认证方式选择 kerberos 认证时,需要将 keyTab 配置文件上传。 |
*conf文件 | 认证方式选择 kerberos 认证时,需要将 conf 配置文件上传。 |
*principal | 认证方式为 Kerberos 认证时,需输入用于认证的 Principal 身份信息。 |
defaultFS | 填写 Hadoop HDFS 文件的 namenode 节点地址,以 hdfs:// ip:port 的形式填写。 |
扩展配置 | 填写必要的 HDFS 或 Hive 配置,默认情况无需额外配置,填写
说明
|
Hive 数据源测试连通性成功后,进入到数据开发界面,开始新建 Hive 相关通道任务。新建任务方式详见离线数据同步、流式数据同步。
任务创建成功后,您可根据实际场景,配置 Hive 离线读或 Hive 离线写等通道任务。
说明
目前暂不支持 Hive 以脚本模式(DSL)配置通道任务。
数据来源选择 Hive,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*数据源类型 | 下拉选择 Hive 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 Hive 数据源,下拉可选。 |
*数据表 | 选择需要采集的数据表名称信息,目前单个任务只支持将单表的数据采集到一个目标表中。
|
读取方式 | Hive 读取方式支持“基于 HDFS”和“基于 JDBC”:
|
分区设置 | 基于 HDFS 方式读取数据时,会根据所选数据库表,获取 Hive 表中分区信息,指定读取的分区。 说明 读取 Hive 表为非分区表时,不需要设置分区。 |
数据过滤 | 基于 JDBC 方式读取数据时,支持您将需要同步的数据进行筛选条件设置,只同步符合过滤条件的数据,可直接填写关键词 where 后的过滤 SQL 语句,例如:create_time > '${date}',不需要填写 where 关键字。 说明 该过滤语句通常用作增量同步,暂时不支持 limit 关键字过滤,其 SQL 语法需要和选择的数据源类型对应。 |
数据目标类型选择 Hive,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*目标类型 | 下拉选择 Hive 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 Hive 数据源,下拉可选。 |
*数据表 | 选择需要写入数据的 Hive 表名称信息,下拉可选。
|
分区设置 | 分区字段从 Hive 表中自动获取。分区内容可设置具体时间分区粒度,可以用表达式:${date}、${hour} 等参数变量表示。 |
数据写入方式 | 下拉选择目标数据写入方式,支持以下两种写入方式:
|
流式集成任务实时写入 Hive 数据源,数据目标类型选择 Hive,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*目标类型 | 下拉选择 Hive 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 Hive 数据源,下拉可选。 |
*数据表 | 选择需要写入数据的 Hive 表名称信息,下拉可选。
|
分区频率 | 支持选择天级或小时级的分区频率:
说明 数据跟随 Hive 分区生成的时间产出,并非实时写入。 |
分区设置 | 分区字段从 Hive 表中自动获取。分区内容可设置具体时间分区粒度,可以用表达式:${date}、${hour} 等参数变量表示。 说明 分区类型中动态分区数目不能过多,会导致消费速率降低,推荐<10。 |
数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
您可通过以下三种方式操作字段映射关系:
说明
来源端字段信息支持输入数据库函数和常量配置,单击手动添加按钮,在源表字段中输入需添加的值,并选择函数或常量类型,例如:
参数 | 描述 | 默认值 |
---|---|---|
job.writer.null_string_as_null | 复杂类型中的 string 类型,默认会将 null 写为空字符串。如果需要配置默认写入 null,可以将此参数配置为 true。 | false |
job.writer.case_insensitive | 默认会将数据全部转换为小写。 | true |
job.writer.convert_error_column_as_null | 将脏数据中无法转换的列自动转换为 null。 | false |
job.writer.dump.directory_frequency | 写入 HDFS 文件夹的频率,支持以下参数:
| dump.directory_frequency.day |
若数据源接入方式为 EMR Hive 数据源时,当 EMR 集群开启 Proton 服务,且集群中没有配置 TOS 认证相关的参数配置,则您需在任务中添加以下高级参数:
离线写通道:
在高级参数中增加 TOS 认证配置
参数说明:
高级参数 Key | 高级参数 Value |
---|---|
job.writer.extra_config | {"fs.tos.access-key-id":"your access key","fs.tos.secret-access-key":"your secret key"} |
实时写通道:
在高级参数中增加 TOS 认证配置
参数说明:
高级参数key | 高级参数value |
---|---|
job.writer.extra_metastore_properties | {"fs.tos.access-key-id":"your access key","fs.tos.secret-access-key":"your secret key"} |
说明