如何使用存储在sqoop Metastore中的--last-value的增量导入

时间:2016-05-16 09:10:26

标签: sqoop

到目前为止,我一直在使用import命令导入数据,并且一直在默认的Metastore中保存--last-value。

  1. 最初在导入命令中为--last-value指定的内容,用于基于上次修改的值进行增量导入。我认为它的附加模式是0但是在最后修改模式下应该是什么?

  2. 我有一个表,我需要从中逐步导入数据,但此表的modified_at字段存储在通过外键引用的另一个表中。现在,由于这里涉及多个表,我理解我将需要使用免费查询表单,但它究竟是如何从Metastore中获取--last-value?我当然不打算在免费查询中硬编码最后一个值。

  3. 另外,如何从此引用的表中提供modified_at列?

    在这种情况下,确切的语法应该是什么?

1 个答案:

答案 0 :(得分:-1)

增量数据提取取决于主键,主键始终采用增量格式。您可以使用import命令创建Sqoop作业,并将--last-value参数作为表的最后一个主键值的值

sqoop job --create Job_name -- import --connect "jdbc_url" --username "uid" -P --table "table_name" --check-column "primary-key column" --incremental append --last-value 0 --target-dir /hdfs_path 

通过做

sqoop job --list

您可以看到创建的作业列表。您可以通过

运行该作业
sqoop job --exec jobname

请让我知道它是否有用!!!!