Sqoop 增量加载到分区的配置单元表中

Posted

技术标签:

【中文标题】Sqoop 增量加载到分区的配置单元表中【英文标题】:Sqoop incremental loading into partitioned hive table 【发布时间】:2016-11-18 12:51:41 【问题描述】:

如何将增量数据加载到分区 hive 表中

我有包含以下列的表“用户”,我已经根据 created_on 字段创建了配置单元分区

id bigint,
name string,
created_on string(yyyy-MM-dd),
updated_on string

我创建了一个 sqoop 作业以根据上次修改日期增量导入

sqoop job --create users -- import --connect jdbc:mysql://<ip>/product  --driver com.mysql.jdbc.Driver --username <> -P --table users --incremental lastmodified --check-column updated_on --last-value "2016-11-15"--hive-table users --hive-import --hive-partition-key created_on --hive-partition-value "2016-11-15" --m 1

如果您观察上述作业,这将根据上次修改的值获取并插入错误的分区

有没有办法解决这个问题

【问题讨论】:

【参考方案1】:

您在 1 列的分区中加载,并希望基于不同的列进行写入?那简直是“不匹配”。

解决方案似乎是使负载和分区对齐。

因此,如果您想写入 created_on 等于 2016-11-15 的所有记录,那么还要确保准确地加载这些记录。 (我想在这种情况下你不应该使用标准的增量功能)。

【讨论】:

以上是关于Sqoop 增量加载到分区的配置单元表中的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 sqoop 将表导入到不同文件中的配置单元(例如 part-0000、part-00001、part-00002)

-- 不支持配置单元导入的增量 lastmodified 选项

利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中

将新分区添加到已分区的配置单元表

我想使用 sqoop 导入作业将数据 sqoop 到 hive 列分区表中。我们应该怎么做?

无法将数据加载到配置单元表中