通过任务编排中的脚本代码可以实现周期性或定时运行脚本,本文介绍配置基于数据库网关的脚本代码节点。

背景信息

很多任务以脚本的方式存在于服务器中,脚本代码节点结合数据库网关,可以实现这些脚本的统一调度。例如:
  • 使用高级的工具(例如:Python的Numpy库、Sklearn库,Spark的MLlib库)加工数据,产出各种业务模型,应用到搜索系统的精排、推荐系统。
  • 数据消费场景。例如,读取数据生成的Excel脚本,读取数据发邮件的脚本等。

使用限制

目前仅支持Shell脚本文件。

说明
  • 您也可以通过Shell脚本调度其他程序,在其他程序中实现其各类脚本文件的调度。
  • 脚本文件名只能包含字母、数字、下划线(_)和半角句号(.)。

步骤1:创建数据库网关

在脚本文件所在设备上创建数据库网关,并将脚本文件放在dg_scripts目录下。
说明 数据库网关应与目标设备一一对应。

例如,3台阿里云ECS设备上需要调用脚本代码,您需要创建3个数据库网关,而不是在一个数据库网关下新建3个节点。

  1. 登录数据库网关控制台
  2. 单击新建网关
  3. 新建网关对话框中,填写网关的名称和备注信息,单击下一步
  4. 在脚本文件所在设备上安装数据库网关。
    1. 选中Linux/MacOS(x86_64)。脚本代码任务当前只支持Linux系统,且不允许使用Root账号安装启动。
    2. 如果目标设备为阿里云ECS,建议选中通过阿里云VPC内部地址接入(ECS自建库/专线/云企业网/VPN网关)
    3. 单击复制命令行,将命令行粘贴到需要安装网关的设备上,回车执行。
      本地网关成功启动后,即可执行下一步操作。
  5. 在Linux安装网关的用户目录下创建dg_scripts目录,默认自动创建。
    例如,当前用户为xiaoming,在/home/xiaoming目录下执行命令mkdir dg_scripts,创建dg_scripts目录。
  6. 将需要执行任务的Shell脚本文件放到dg_scripts目录下。
    例如,脚本文件名为demo.sh,在脚本文件所在目录下,执行命令mv <demo.sh> /home/xiaoming/dg_scripts,将脚本文件移动到dg_scripts目录下。

步骤二:配置脚本代码节点

  1. 登录数据管理DMS 5.0
    说明 如果您需要切换到旧版数据管理DMS,单击页面右下角返回旧版,进入数据管理DMS平台。具体操作,请参见数据管理DMS 5.0切换至旧版
  2. 在顶部菜单栏中,选择集成与开发(DTS) > 数据开发 > 任务编排
    说明 如果您使用的是旧版数据管理DMS,在顶部菜单栏中,选择全部功能 > 数据工厂 > 任务编排(新)
  3. 单击目标任务流名称,进入任务流详情页面。
    说明 如果您需要新增任务流,请参见新增任务流
  4. 可选:在画布左侧任务类型列表中,拖拽脚本代码到画布空白区域。
  5. 双击脚本代码节点。
  6. 根据业务需要,在脚本代码配置页面设置变量。您可以单击变量设置区域右上角的提示,查看配置变量的提示信息。
    • 单击节点变量页签,配置节点变量。配置方法,请参见配置时间变量
    • 单击任务流变量页签,配置任务流变量。配置方法,请参见配置时间变量
    • 单击输入变量页签,查看输入变量,输入变量包括上游变量、运行状态和系统变量。
    • 如果您想在下游节点中使用脚本输出变量,单击输出变量页签,单击增加变量,添加输出变量。

      变量文本框中,填写脚本输出变量的名称。关于脚本输出变量,请参见变量介绍

  7. 脚本配置区域,配置脚本参数。
    配置项 说明
    地区 选择目标数据库网关所属的地区。
    网关ID 选择目标数据库网关的名称。
    说明 网关名称在控制台网关列表页面查看。
    网关实例ID 选择目标数据库网关的网关节点ID。
    说明 网关节点ID在目标网关的网关详情页面查看。
    文件名 输入目标数据库网关安装目录dg_scripts下的脚本文件名。例如数据库网关中存放脚本文件的完整目录为/home/xiaoming/dg_scripts/demo.sh,则文件名输入demo.sh
    运行参数 选择或输入变量。变量在脚本中将作为运行参数。

    脚本支持的变量有3种:

    • 系统变量:变量的引用形式为${var_name} ,例如${sys.flow.start.year}。关于系统变量,请参见系统变量
    • 时间变量:变量的引用形式为${var_name}。自定义时间变量,请参见配置时间变量
    • 脚本输出变量:不需要手动输入,脚本任务会自动从脚本中获取,关于脚本输出变量,请参见变量介绍
  8. 单击试运行
    • 如果执行日志的最后一行出现status SUCCEEDED,表明任务试运行成功。
    • 如果执行日志的最后一行出现status FAILED,表明任务试运行失败。
      说明 如果试运行失败,在执行日志中查看执行失败的节点和原因,修改配置后重新尝试。
    执行成功后,您可以在执行日志中查看脚本的标准输出打印。