如何在Sqoop中为增量数据指定多个列?

时间:2019-03-20 13:09:51

标签: hadoop sqoop data-migration

我正在使用以下查询在sqoop中获取增量数据-

bin/sqoop job --create JOB_NAME -- import  --connect jdbc:oracle:thin:/system@HOST:PORT:ORACLE_SERVICE --username USERNAME --password-file /PASSWORD_FILE.txt --fields-terminated-by ',' --enclosed-by '"'  --table SCHEMA.TABLE_NAME --target-dir /TARGET_DIR -m 2 --incremental append --check-column NVL(UPDATE_DATE,INSERT_DATE) --last-value '2019-01-01 00:00:00.000'  --split-by PRIMARY_KEY --direct

-check-columns参数中的多列会引发错误。

是否可以在--check-column参数中指定多列?

我想获取数据,如果UPDATE_DATE字段包含空值,则它应基于INSERT_DATE列获取数据。

我想从每天更新的表中提取交易记录,如果第一次插入记录,则UPDATED_DATE列中没有值。这就是为什么我在从表中获取数据时需要比较两列。

任何对此的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

据我了解,执行增量导入时似乎不可能有2个检查列,因此我们设法完成此操作的唯一方法是使用2个单独的导入:

  1. 首次以“插入日期”作为检查列的增量导入 记录
  2. 以更新的列作为检查列的增量导入     用于更新的记录