更新时间:2022-08-17 GMT+08:00

配置Hive目的端参数

作业中目的连接为配置Hive连接时,目的端作业参数如表1所示。

表1 Hive作为目的端时的作业参数

参数名

说明

取值样例

数据库名称

输入或选择写入数据的数据库名称。单击输入框后面的按钮可进入数据库选择界面。

default

自动创表

只有当源端为关系数据库时,才有该参数。表示写入表数据时,用户选择的操作:
  • 不自动创建:不自动建表。
  • 不存在时创建:当目的端的数据库没有“表名”参数中指定的表时,CDM会自动创建该表。如果“表名”参数配置的表已存在,则不创建,数据写入到已存在的表中。
  • 先删除后创建:CDM先删除“表名”参数中指定的表,然后再重新创建该表。

不自动创建

表名

输入或选择写入数据的目标表名。

单击输入框后面的按钮可进入表的选择界面。

该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据。

TBL_X

导入前清空数据

选择目的端表中数据的处理方式:
  • 是:任务启动前会清除目标表中数据。
  • 否:导入前不清空目标表中的数据,如果选“否”且表中有数据,则数据会追加到已有的表中。

待清空分区

“导入前清空数据”设置为“是”时,呈现此参数。

填写待清空分区信息后,表示清空该分区的数据。

单分区:year=2020,location=sun;

多分区:['year=2020,location=sun', 'year=2021,location=earth'].

  1. Hive作为目的端时,会自动创建存储格式为ORC的表。
  2. Hive作为迁移的目的时,如果存储格式为Textfile,在Hive创建表的语句中需要显式指定分隔符。例如:
    CREATE TABLE csv_tbl(
    smallint_value smallint,
    tinyint_value tinyint,
    int_value int,
    bigint_value bigint,
    float_value float,
    double_value double,
    decimal_value decimal(9, 7),
    timestmamp_value timestamp,
    date_value date,
    varchar_value varchar(100),
    string_value string,
    char_value char(20),
    boolean_value boolean,
    binary_value binary,
    varchar_null varchar(100),
    string_null string,
    char_null char(20),
    int_null int
    )
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
    WITH SERDEPROPERTIES (
    "separatorChar" = "\t",
    "quoteChar"     = "'",
    "escapeChar"    = "\\"
    )
    STORED AS TEXTFILE;