Hive输出组件用于向Hive数据源写入数据。同步其他数据源的数据至Hive数据源的场景中,完成源数据源的信息配置后,需要配置Hive输出组件写入数据的目标数据源。本文为您介绍如何配置Hive输出组件。
使用限制
Hive输出组件支持写入文件格式为orc、parquet、text、iceberg(iceberg格式仅支持E-MapReduce5.x的Hive计算源或数据源)的Hive数据表。不支持ORC格式的事务表、Kudu表集成。
Kudu表数据集成请使用Impala输出组件。更多信息,请参见配置Impala输出组件配置Impala输出组件。
前提条件
操作步骤
请参见离线管道组件开发入口,进入离线管道脚本的开发页面。
按照以下操作指引,进入Hive输出配置对话框。
单击组件库->单击输出->拖动Hive输出组件至画布->连接图标->单击配置图标。
在Hive输出配置对话框,配置参数。
参数
说明
基本设置
步骤名称
即Hive输出组件的名称。Dataphin自动生成步骤名称,您也可以根据业务场景修改。命名规则如下:
只能包含汉字、字母、下划线(_)、数字。
不能超过64个字符。
数据源
在数据源下拉列表中,展示所有Hive类型的数据源,包括您已拥有同步写权限的数据源和没有同步写权限的数据源。
表
选择数据同步的目标表。
如果Hive数据源中没有数据同步的目标表,则您可以通过一键生成目标表功能,简单快速的生成目标表。详细的操作步骤如下:
单击一键生成目标表。
Dataphin会自动为您匹配创建目标表的代码,包括目标表名称(默认为来源表名)、字段类型(基于Dataphin字段做了初步的转换)等信息。您可以根据业务情况完成创建目标表的SQL脚本的修改,并单击新建。目标表新建成功后,Dataphin自动将新建的目标表作为输出数据的目标表。一键生成目标表用于为开发环境、生产环境创建数据同步的目标表。Dataphin默认为您选中生产环境建表,如果生产环境已经有同名且结构相同的数据表,则您无需勾选生产环境建表。如果开发环境或生产环境存在同名的表,单击新建后,Dataphin会报已存在该表的错误。
文件编码
选择文件存储在Hive的编码方式。文件编码包括UTF-8和GBK。
加载策略
向目标数据源(Hive数据源)写入数据时,数据写入表中的策略。加载策略包括覆盖所有数据、追加数据、仅覆盖集成任务写入的数据,适用场景说明如下:
覆盖所有数据:会先删除目标表或分区下的所有数据,再新增以表名开头的数据文件。
追加数据:直接向目标表追加写入数据。
仅覆盖集成任务写入的数据:会先删除目标表或分区下以表名开头的数据文件,再新增以表名开头的数据文件。
说明通过SQL等其他方式写入的数据不会被删除。
NULL值替换
仅支持
textfile
数据存储格式的来源表。填写需要替换为NULL
的字符串。例如,填写\N
时,系统会将\N
字符串替换为NULL
。字段分隔符
仅支持
textfile
数据存储格式的来源表。非必填项,填写字段之间分隔符。如果您没有填写,则系统默认为使用\u0001
作为分隔符。压缩格式
选择文件的压缩格式。根据Hive中数据存储格式不同,支持选择压缩格式不同:
数据存储格式为orc:支持选择的压缩格式包括zlib、snappy。
数据存储格式为parquet:支持选择的压缩格式包括snappy、gzip。
数据存储格式为textfile:支持选择的压缩格式包括gzip、bzip2、 lzo、lzo_deflate、hadoop-snappy和zlib。
字段分隔符处理
仅支持
textfile
数据存储格式的输出表。数据中存在默认或自行配置的字段分隔符时,可以配置字段分隔符处理策略,防止数据写入错误。可以选择保留、去除或替换为。行分隔符处理
仅支持
textfile
数据存储格式的输出表。数据中存在默认或自行配置的字段分隔符时,可以配置行分隔符号处理策略,默认以\n
作为行分隔符,如数据中存在换行符\r
、\n
,可选择处理策略,防止数据写入错误。可以选择保留、去除或替换为。性能配置
非必填项。输出表数据存储格式为
orc
时,可以进行性能配置,多用于输出表字段较多的场景。内存足够时可尝试调大该配置提高写入性能,内存不足时可尝试调小该配置减少GC时间提高写入性能。默认{"hive.exec.orc.default.buffer.size":16384}
,单位字节,建议不要配置超过262144字节(256k)。分区
如果所选的目标表是分区表,那么需要填写分区信息。例如,
state_date=20190101
,也支持参数的方式以便每天增量写入数据。例如,state_date=${bizdate}
。准备语句
非必填项。数据导入前对数据库执行的SQL脚本。
比如为了满足服务的持续可用性,当前步骤写数据执行前先创建目标表Target_A,执行写入到目标表Target_A,当前步骤写数据执行完成后,对数据库中持续提供服务的表Service_B重命名成Temp_C,然后将表Target_A重命名为Service_B,最后删除Temp_C。
结束语句
非必填项。数据导入后对数据库执行的SQL脚本。
字段映射
输入字段
根据上游组件的输出,为您展示输入字段。
输出字段
输出字段区域展示了已选中表的所有字段。
重要为了保证数据写入Hive时数据不会出错,输出字段必须和输入组件的字段全部映射。
映射关系
根据上游的输入和目标表的字段,可以手动选择字段映射。映射关系包括同行映射和同名映射。
同名映射:对字段名称相同的字段进行映射。
同行映射:源表和目标表的字段名称不一致,但字段对应行的数据需要映射。只映射同行的字段。
单击确认,完成Hive输出组件的属性配置。