配置Hive输出组件

Hive输出组件用于向Hive数据源写入数据。同步其他数据源的数据至Hive数据源的场景中,完成源数据源的信息配置后,需要配置Hive输出组件写入数据的目标数据源。本文为您介绍如何配置Hive输出组件。

使用限制

Hive输出组件支持写入文件格式为orcparquettexticeberg(iceberg格式仅支持E-MapReduce5.x的Hive计算源或数据源的Hive数据表。不支持ORC格式的事务表、Kudu表集成。

说明

Kudu表数据集成请使用Impala输出组件。更多信息,请参见配置Impala输出组件配置Impala输出组件

前提条件

  • 已创建Hive数据源。具体操作,请参见创建Hive数据源

  • 进行Hive输出组件属性配置的账号,需具备该数据源的同步读权限。如果没有权限,则需要申请数据源权限。具体操作,请参见申请数据源权限

操作步骤

  1. 请参见离线管道组件开发入口,进入离线管道脚本的开发页面。

  2. 按照以下操作指引,进入Hive输出配置对话框。

    单击组件库->单击输出->拖动Hive输出组件至画布->连接image图标->单击image配置图标。

    image

  3. Hive输出配置对话框,配置参数。

    参数

    说明

    基本设置

    步骤名称

    即Hive输出组件的名称。Dataphin自动生成步骤名称,您也可以根据业务场景修改。命名规则如下:

    • 只能包含汉字、字母、下划线(_)、数字。

    • 不能超过64个字符。

    数据源

    在数据源下拉列表中,展示所有Hive类型的数据源,包括您已拥有同步写权限的数据源和没有同步写权限的数据源。

    • 对于没有同步写权限的数据源,您可以单击数据源后的申请,申请数据源的同步写权限。具体操作,请参见申请数据源权限

    • 如果您还没有Hive类型的数据源,单击新建,创建数据源。具体操作,请参见创建Hive数据源

    选择数据同步的目标表。

    如果Hive数据源中没有数据同步的目标表,则您可以通过一键生成目标表功能,简单快速的生成目标表。详细的操作步骤如下:

    1. 单击一键生成目标表

    2. Dataphin会自动为您匹配创建目标表的代码,包括目标表名称(默认为来源表名)、字段类型(基于Dataphin字段做了初步的转换)等信息。您可以根据业务情况完成创建目标表的SQL脚本的修改,并单击新建。目标表新建成功后,Dataphin自动将新建的目标表作为输出数据的目标表。image一键生成目标表用于为开发环境、生产环境创建数据同步的目标表。Dataphin默认为您选中生产环境建表,如果生产环境已经有同名且结构相同的数据表,则您无需勾选生产环境建表。如果开发环境或生产环境存在同名的表,单击新建后,Dataphin会报已存在该表的错误。

    文件编码

    选择文件存储在Hive的编码方式。文件编码包括UTF-8GBK

    加载策略

    向目标数据源(Hive数据源)写入数据时,数据写入表中的策略。加载策略包括覆盖所有数据追加数据仅覆盖集成任务写入的数据,适用场景说明如下:

    • 覆盖所有数据:会先删除目标表或分区下的所有数据,再新增以表名开头的数据文件。

    • 追加数据:直接向目标表追加写入数据。

    • 仅覆盖集成任务写入的数据:会先删除目标表或分区下以表名开头的数据文件,再新增以表名开头的数据文件。

      说明

      通过SQL等其他方式写入的数据不会被删除。

    NULL值替换

    仅支持textfile数据存储格式的来源表。填写需要替换为NULL的字符串。例如,填写\N时,系统会将\N字符串替换为NULL

    字段分隔符

    仅支持textfile数据存储格式的来源表。非必填项,填写字段之间分隔符。如果您没有填写,则系统默认为使用\u0001作为分隔符。

    压缩格式

    选择文件的压缩格式。根据Hive中数据存储格式不同,支持选择压缩格式不同:

    • 数据存储格式为orc:支持选择的压缩格式包括zlibsnappy

    • 数据存储格式为parquet:支持选择的压缩格式包括snappygzip

    • 数据存储格式为textfile:支持选择的压缩格式包括gzipbzip2 lzolzo_deflatehadoop-snappyzlib

    字段分隔符处理

    仅支持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时数据不会出错,输出字段必须和输入组件的字段全部映射。

    映射关系

    根据上游的输入和目标表的字段,可以手动选择字段映射。映射关系包括同行映射同名映射

    • 同名映射:对字段名称相同的字段进行映射。

    • 同行映射:源表和目标表的字段名称不一致,但字段对应行的数据需要映射。只映射同行的字段。

  4. 单击确认,完成Hive输出组件的属性配置。