• 使用RestCloud ETL Shell组件实现定时调度DataX离线任务


     

    RestCloud ETL社区版是一款数据集成工具,提供可视化多数据管道构建、数据源管理、运行监控及权限管理功能。

    1.场景说明:

    对于一些已经在使用阿里的离线数据同步工具DataX的用户,想实现每天定时运行(或手动运行)job任务是非常困难的,都需要进入控制界面敲命令行,有没有更简单、快捷的方法呢?有!使用RestCloud ETL Shell组件构建流程,实现定时/手动运行任务。

    2.整体流程图:

    3.实现步骤:

    3.1创建一个流程,在脚本执行组件分类中拉取一个执行Shell脚本组件

    3.2 配置Shell脚本内容

    这里使用调用远程服务器的方式调用,填写好远程服务器的IP、登录用户ID、密码以及需要执行的shell脚本。

    Shell脚本这里可以使用变量的方式,动态获取到流程里的数据或者是http请求传进来的数据。

    Shell脚本示例代码如下:

    ============

    #!/bin/bash

    #!/usr/bin/env python

    source /etc/profile

    python /usr/wgx/datax/bin/datax.py -p "-DlastSuccessEndTime='2022-05-12 18:37:27'" \

    /usr/wgx/datax/job/mysql-job3.json

    ============

    DataX的Job示例代码如下:

    3.3 配置断言执行逻辑

    运行的结果会存放到shellResult变量中,所以可以通过在流程线中获取并进行判断。

    如果返回的是0代表成功,其他返回则不成功,不成功我们则可以实现发送钉钉消息的方式预警消息。

    成功的路由线配置

    失败的路由线配置

    失败后则通过钉钉消息的方式发送:

     

    钉钉配置

    这样,整个流程就已经配置完成了。

    3.4 配置定时调度

     

    我们可以通过返回到流程界面,修改流程配置。

    我们这里使用 只有主服务器可运行 即可。


    运行方式:我们这里选择定时调度的方式运行
    调度策略:根据自己的需求选择调度的策略
    任务调度模式:

    任务队列领取模式:表示将任务放到队列中,由服务器自由领取的方式运行

    所有集群服务器均可同时运行:表示所有服务器均执行
    只有主服务器可运行:适用于主服务器性能比其他服务器高时使用,或只有一台服务器 运行时使用

    由调度服务器统一调度:表示由系统的调度器统一调度

     4.执行结果

    我们可以手动运行并查看调度记录

    具体的流程运行流程线可以点击图形控制查看

    我们进入到datax可以查看到运行产生的日志文件

     当执行Shell失败时,则发送钉钉消息

     到这里,完成了通过RestCloud ETL Shell组件实现远程调度datax任务。

    感谢您对我们的关注和支持!如需了解更多的功能,请加入RestCloud ETL社区免费下载体验,下载地址:https://etl.restcloud.cn

  • 相关阅读:
    Charles抓取接口报文并修改各种参数信息调试
    ESP32主板-MoonESP32
    java计算机毕业设计家政服务网站源程序+mysql+系统+lw文档+远程调试
    数据库实践 Hw07
    决策树的优缺点
    web serveer
    在 Docker 容器内集成 Crontab 定时任务
    《构建专属私域商城,微三云助力企业开启数字化转型!》
    从另外一个进程中读取数据
    Windows驱动开发(一)第一个驱动程序
  • 原文地址:https://blog.csdn.net/RestCloud/article/details/125414170