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分区表中