sqoop导入lastmodified提供重复记录。它没有合并

时间:2013-09-30 11:46:55

标签: hive sqoop

我正面临着一个奇怪的问题。我发现大多数地方在使用lastmodified时会将旧文件和新文件合并以删除重复文件。在我的情况下,它并没有发生。

  • 我用过:

    sqoop import --connect "jdbc:mysql://<hostname>:3306/<dbname>" --username root -password password --table LoginRoles --hive-import --create-hive-table --hive-table LoginRoles --hive-delims-replacement " "

创建了表格,并在/user/hive/warehouse位置正确加载了数据。

LoginRoleId LoginRole   CreatedDate             ModifiedDate

1       admin1  2013-09-30 14:21:28 2013-09-30 16:03:39
2       admin2  2013-09-30 14:36:23 2013-09-30 15:53:19
3       admin3  2013-09-30 14:39:13 2013-09-30 14:39:13
4       admin5  2013-09-30 14:40:55 2013-09-30 14:40:55
  • 现在我在查询下方运行,修改日期已更新为'2013-09-30 17:03:44'

update loginroles set ModifiedDate=now(),loginrole="admin4" where LoginRoleID=4;

  • 当我使用Sqoop job -exec mymodified
  • 运行以下作业时

sqoop job --create mymodified -- import --connect "jdbc:mysql://<hostname>:3306/<dbname>" --username root -password password --table LoginRoles --hive-import --hive-table LoginRoles --hive-delims-replacement " " --check-column ModifiedDate --incremental lastmodified --last-value '2013-09-30 16:03:39'

我在hive中看到总共5行,如下所示。

1   admin1  2013-09-30 14:21:28.0   2013-09-30 16:03:39.0   
4   admin4  2013-09-30 14:40:55.0   2013-09-30 17:03:44.0
2   admin2  2013-09-30 14:36:23.0   2013-09-30 15:53:19.0
3   admin3  2013-09-30 14:39:13.0   2013-09-30 14:39:13.0
4   admin5  2013-09-30 14:40:55.0   2013-09-30 14:40:55.0

我确信我遗漏了一些重要且微妙的东西。

使用的sqoop的版本详细信息 Sqoop 1.4.3-cdh4.3.0 git commit id 7a52f9aa97cba43aae8b700f7e93f97dcdb0b21a Compiled by jenkins on Mon May 27 20:33:21 PDT 2013

1 个答案:

答案 0 :(得分:0)

这种方法在这个时间点不起作用。我已经发布在cloudera谷歌组,现在这不会工作。我将不得不使用变通方法来创建暂存文件夹并清理它们。以下链接帮助我解决了这个问题。

http://himanshubaweja.com/post/7529434265/analytics-reached-mysql-limit-lets-hive