作业中目的连接为配置Hive连接时,目的端作业参数如下表所示。
表 Hive作为目的端时的作业参数
参数名 | 说明 | 取值样例 |
---|---|---|
数据库名称 | 输入或选择写入数据的数据库名称。 单击输入框后面的按钮可进入数据库选择界面。 |
default |
自动创表 | 只有当源端为关系数据库时,才有该参数。表示写入表数据时,用户选择的操作: 不自动创建:不自动建表。 不存在时创建:当目的端的数据库没有“表名”参数中指定的表时,CDM会自动创建该表。如果“表名”参数配置的表已存在,则不创建,数据写入到已存在的表中。 先删除后创建:CDM先删除“表名”参数中指定的表,然后再重新创建该表。 |
不自动创建 |
表名 | 输入或选择写入数据的目标表名。 单击输入框后面的按钮可进入表的选择界面。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据。 |
TBL_X |
导入前清空数据 | 选择目的端表中数据的处理方式: 是:任务启动前会清除目标表中数据。 否:导入前不清空目标表中的数据,如果选“否”且表中有数据,则数据会追加到已有的表中。 |
是 |
待清空分区 | “导入前清空数据”设置为“是”时,呈现此参数。 填写待清空分区信息后,表示清空该分区的数据。 |
单分区:year=2020,location=sun; 多分区:['year=2020,location=sun', 'year=2021,location=earth']. |
说明Hive作为目的端时,会自动创建存储格式为ORC的表。
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;