如何使用sqoop作业自动执行sqoop增量导入?
据我所知,sqoop job会记住最后一个值。如果我们像这样创建一个sqoop作业
sqoop job --create myjob -- import --connect诸如此类。
sqoop exec myjob
并自动执行作业,它将在每次执行时创建作业。因此,我们将得到作业已存在错误。
那么,是否可以使用sqoop作业自动执行sqoop增量导入呢?
请让我知道你在这方面的知识。提前谢谢。
发布于 2017-01-25 23:42:02
最好完全控制书签,以避免重述的可能性。这就是自定义机制比sqoop作业更好的原因。
工作流模板为:
and etl_update_timestamp>$your_bookmark连接到WHERE子句。如果增量数据太大(书签值离current_timestamp太远),在每月/每天/每小时循环中运行sqoop,在每次迭代后保存书签。
书签可以是时间戳或某个run_id (源系统etl序列)
如果您需要重新声明数据(回溯加载),则更新书签,工作流将从书签开始重新加载数据。
发布于 2017-12-12 02:36:02
您可以使用选项文件简单地创建一个sqoop作业,您的作业将被保存。下次,当您运行该作业时,它将自动获取增量数据。
发布于 2019-11-01 15:37:53
您可以创建一个shell脚本来触发sqoop进程,我们可以添加一个条件来检查sqoop作业是否已经存在,方法是使用sqoop列表--作业名称,如果退出可以触发已保存的作业,如果不存在,则创建并触发sqoop作业。对于调度,您可以创建cron作业、oozie,也可以使用uc4、airflow、autosys等调度器...
https://stackoverflow.com/questions/41854966
复制相似问题