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 增量加载到分区的配置单元表中的主要内容,如果未能解决你的问题,请参考以下文章