【问题标题】:How to specify multiple columns for incremental data in Sqoop?如何在 Sqoop 中为增量数据指定多列?
【发布时间】:2019-03-20 13:09:51
【问题描述】:

我正在使用以下查询来获取 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 列中没有值。这就是为什么我需要在从表中获取数据时比较两列的原因。

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

【问题讨论】:

    标签: hadoop sqoop data-migration


    【解决方案1】:

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

    1. 第一次使用插入日期作为检查列的增量导入 记录
    2. 以更新列作为检查列的增量导入 对于已更新的记录

    【讨论】:

    • 感谢您抽出宝贵的时间来写... UPDATED_DATE 的基础。这些小船 sqoop 作业将单独运行。注意:在我的情况下,如果记录未更新,UPDATED_DATE 列将具有空值。表示更新记录时 UPDATED_DATE 列将具有值。
    • 总是乐于提供帮助:)
    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 2018-05-28
    • 2016-03-27
    相关资源
    最近更新 更多