【发布时间】:2017-02-06 02:46:14
【问题描述】:
使用 sqoop 作业,我们可以使用 --lastval 对 HBase 进行增量加载
但是我们如何对 shell 脚本做同样的事情,以及当我们自动化脚本时我们将如何获得--lastval?
我的意思是如何存储--lastval以及如何将其传递给下一次
提前感谢您的帮助!!
【问题讨论】:
标签: shell hadoop hbase sqoop sqoop2
使用 sqoop 作业,我们可以使用 --lastval 对 HBase 进行增量加载
但是我们如何对 shell 脚本做同样的事情,以及当我们自动化脚本时我们将如何获得--lastval?
我的意思是如何存储--lastval以及如何将其传递给下一次
提前感谢您的帮助!!
【问题讨论】:
标签: shell hadoop hbase sqoop sqoop2
如何存储 --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 如果您更喜欢脚本。可以使用它来安排它 协调器功能可用。
也可以看看
--incremental
--check-column id
--last-value 100
如果您从命令行运行增量导入,Sqoop 会在后续增量导入中打印最后一个值。如果您从保存的作业运行增量导入,Sqoop 会保留保存的作业中的最后一个值。要仅导入比先前导入的行更新的行,请使用 --exec 选项。 Sqoop 只导入 id 大于指定行 id 的行。
【讨论】: