【问题标题】:How can we automate the incremental import in Sqoop from DB to HBase using linux script我们如何使用 linux 脚本自动将 Sqoop 中的增量导入从 DB 到 HBase
【发布时间】:2017-02-06 02:46:14
【问题描述】:

使用 sqoop 作业,我们可以使用 --lastval 对 HBase 进行增量加载

但是我们如何对 shell 脚本做同样的事情,以及当我们自动化脚本时我们将如何获得--lastval

我的意思是如何存储--lastval以及如何将其传递给下一次

提前感谢您的帮助!!

【问题讨论】:

    标签: shell hadoop hbase sqoop sqoop2


    【解决方案1】:

    如何存储 --lastval 以及如何将其传递给下一次?

    在 linux 或 unix 中将--lastval 定义为别名或导出变量。可以从自动化脚本中重试

    once load is finish then change it to recent value, by capturing latest lastval

    export lastupdatedvalue=hive -e 'select last_value from table#selection查询基于逻辑。

    sqoop import --connect jdbc:mysql://localhost:3306/ydb --table <your table> --username root -P --incremental append --last-value ${lastupdatedvalue}
    

    您可以在 Oozie 中尝试一个 sqoop 操作,它应该可以工作。否则使用 shell 动作 oozie 如果您更喜欢脚本。可以使用它来安排它 协调器功能可用。

    也可以看看

    增量导入数据

    To import data in increments, you use the --incremental argument with the import command. Sqoop compares the values in a check column against a reference value for the most recent import. These arguments import all rows having an id greater than 100.

    --incremental
    --check-column id
    --last-value 100
    

    如果您从命令行运行增量导入,Sqoop 会在后续增量导入中打印最后一个值。如果您从保存的作业运行增量导入,Sqoop 会保留保存的作业中的最后一个值。要仅导入比先前导入的行更新的行,请使用 --exec 选项。 Sqoop 只导入 id 大于指定行 id 的行。

    【讨论】:

    • 谢谢你 RamPrasad,如果你不介意我可以给我一个代码 sn-p。
    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2019-04-26
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    相关资源
    最近更新 更多