配置Hive输出组件

更新时间:2025-03-05 06:48:32

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

使用限制

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

说明

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

前提条件

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

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

操作步骤

  1. Dataphin首页顶部菜单栏,选择研发 > 数据集成

  2. 在集成页面顶部菜单栏选择项目(Dev-Prod模式需要选择环境)。

  3. 在左侧导航栏中单击离线集成,在离线集成列表中单击需要开发的离线管道,打开该离线管道的配置页面。

  4. 单击页面右上角的组件库,打开组件库面板。

  5. 组件库面板左侧导航栏中需选择输出,在右侧的输出组件列表中找到Hive组件,并拖动该组件至画布。

  6. 单击并拖动目标输入、转换或流程组件的image图标,将其连接至当前Hive输出组件上。

  7. 单击Hive输出组件卡片中的image图标,打开Hive输出配置对话框。image

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

    Hive表与Hudi表所需配置的参数不同。

    输出目标表选择为Hive表
    输出目标表选择为Hudi表

    参数

    描述

    基本设置

    步骤名称

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

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

    • 不能超过64个字符。

    数据源

    在数据源下拉列表中,展示所有Hive类型的数据源,包括您已拥有同步写权限的数据源和没有同步写权限的数据源。单击image图标,可复制当前数据源名称。

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

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

    选择输出数据的目标表(Hive表)。 可输入表名关键字进行搜索,或输入准确表名后单击精准查找。选择表后,系统将自动进行表状态检测。单击image图标,可复制当前所选表的表名称。

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

    1. 单击一键建表。Dataphin会自动为您匹配创建目标表的代码,包括目标表名称(默认为来源表名)、字段类型(基于Dataphin字段做了初步的转换)等信息。

    2. 数据湖表格式选择为不选择

    3. 您可以根据业务情况修改创建目标表的SQL脚本后,单击新建

      目标表新建成功后,Dataphin自动将新建的目标表作为输出数据的目标表。一键生成目标表用于为开发环境、生产环境创建数据同步的目标表。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时数据不会出错,输出字段必须和输入组件的字段全部映射。

    映射关系

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

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

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

    参数

    描述

    基本设置

    步骤名称

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

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

    • 不能超过64个字符。

    数据源

    在数据源下拉列表中,展示所有Hive类型的数据源,包括您已拥有同步写权限的数据源和没有同步写权限的数据源。单击image图标,可复制当前数据源名称。

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

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

    选择输出数据的目标表(Hudi表)。 可输入表名关键字进行搜索,或输入准确表名后单击精准查找。选择表后,系统将自动进行表状态检测。单击image图标,可复制当前所选表的表名称。

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

    1. 单击一键建表。Dataphin会自动为您匹配创建目标表的代码,包括目标表名称(默认为来源表名)、字段类型(基于Dataphin字段做了初步的转换)等信息。

    2. 数据湖表格式选择为Hudi

      • Hudi表类型:可选择MOR(merge on read)COW(copy on write),默认为MOR(merge on read)。

      • 主键字段(非必填):输入主键字段,多个字段间使用半角逗号(,)分隔。

      • 扩展属性(非必填):输入Hudi官方支持的配置属性,格式为k=v

        说明
        • 如果开发环境或生产环境存在同名的表,单击新建后,Dataphin会报已存在该表的错误。

        • 没有匹配项时,也支持根据手动输入的表名进行集成。

    3. 单击刷新DDL语句

    分区

    如果所选的目标表是分区表,那么需要填写分区信息。例如,state_date=20190101,也支持参数的方式以便每天增量写入数据。例如,state_date=${bizdate}

    加载策略

    向目标数据源(Hive数据源)写入数据时,数据写入表中的策略,包括覆盖数据追加数据更新数据

    • 覆盖数据:使用新增数据覆盖已有数据。

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

    • 更新数据:按主键更新,不存在时则插入数据。

      说明

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

    BulkInsert

    适用于大数据量的批量快速同步场景,通常用于初始数据的导入。

    说明

    仅当加载策略选择为追加策略覆盖策略时,支持配置此项,且默认为开启。

    字段映射

    输入字段

    根据上游组件的输出,为您展示输入字段。

    输出字段

    输出字段区域展示了已选中表的所有字段。

    说明

    Hudi表无需映射所有字段。

    映射关系

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

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

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

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

  • 本页导读 (0)
  • 使用限制
  • 前提条件
  • 操作步骤