首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sqoop作业自动执行sqoop增量导入?

如何使用sqoop作业自动执行sqoop增量导入?
EN

Stack Overflow用户
提问于 2017-01-25 23:08:39
回答 3查看 1.3K关注 0票数 2

如何使用sqoop作业自动执行sqoop增量导入?

据我所知,sqoop job会记住最后一个值。如果我们像这样创建一个sqoop作业

sqoop job --create myjob -- import --connect诸如此类。

sqoop exec myjob

并自动执行作业,它将在每次执行时创建作业。因此,我们将得到作业已存在错误。

那么,是否可以使用sqoop作业自动执行sqoop增量导入呢?

请让我知道你在这方面的知识。提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2017-01-25 23:42:02

最好完全控制书签,以避免重述的可能性。这就是自定义机制比sqoop作业更好的原因。

工作流模板为:

  1. 阅读最新书签。可以存储在一些关系型数据库(MySQL)或Hadoop/等的文件中。如果不存在,可以从目标表中选择书签。例如,将书签条件作为参数运行到sqoop查询中,例如,将and etl_update_timestamp>$your_bookmark连接到WHERE子句。
  2. 运行sqoop
  3. 保存最新的书签(请参见1.)

如果增量数据太大(书签值离current_timestamp太远),在每月/每天/每小时循环中运行sqoop,在每次迭代后保存书签。

书签可以是时间戳或某个run_id (源系统etl序列)

如果您需要重新声明数据(回溯加载),则更新书签,工作流将从书签开始重新加载数据。

票数 1
EN

Stack Overflow用户

发布于 2017-12-12 02:36:02

您可以使用选项文件简单地创建一个sqoop作业,您的作业将被保存。下次,当您运行该作业时,它将自动获取增量数据。

票数 0
EN

Stack Overflow用户

发布于 2019-11-01 15:37:53

您可以创建一个shell脚本来触发sqoop进程,我们可以添加一个条件来检查sqoop作业是否已经存在,方法是使用sqoop列表--作业名称,如果退出可以触发已保存的作业,如果不存在,则创建并触发sqoop作业。对于调度,您可以创建cron作业、oozie,也可以使用uc4airflowautosys等调度器...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41854966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档