我尝试了增量导入,但必须指定append或lastmodified。我需要所有的更改,包括修改过的和新的记录。
1mrurvl11#
你的理解在这里部分是正确的。根据文件,sqoop支持的另一种表更新策略称为lastmodified模式。当源表的行可能被更新时,您应该使用这个选项,并且每次这样的更新都会将上次修改的列的值设置为当前时间戳。如果check列所保存的时间戳比用--last值指定的时间戳更近,则导入这些行。(重点是我的)现在让我们用一个例子来理解这一点,我有一张table employees 有 name , salary 以及 updated_on 领域。样品记录:
employees
name
salary
updated_on
name |salary | updated_on dev | 2000 | 2016-01-01
现在一些员工的工资在下个月发生了变化,一些新员工在那个月加入了。现在在sqoop import命令中,您将指定 --check-column updated_on , --incremental lastmodified 以及 --last-value "2016-01-01" .在此之后添加或更新的所有记录 --last-value 将导入。
--check-column updated_on
--incremental lastmodified
--last-value "2016-01-01"
--last-value
1条答案
按热度按时间1mrurvl11#
你的理解在这里部分是正确的。
根据文件,
sqoop支持的另一种表更新策略称为lastmodified模式。当源表的行可能被更新时,您应该使用这个选项,并且每次这样的更新都会将上次修改的列的值设置为当前时间戳。如果check列所保存的时间戳比用--last值指定的时间戳更近,则导入这些行。
(重点是我的)
现在让我们用一个例子来理解这一点,
我有一张table
employees
有name
,salary
以及updated_on
领域。样品记录:现在一些员工的工资在下个月发生了变化,一些新员工在那个月加入了。
现在在sqoop import命令中,您将指定
--check-column updated_on
,--incremental lastmodified
以及--last-value "2016-01-01"
.在此之后添加或更新的所有记录
--last-value
将导入。