配置脚本代码节点

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

背景信息

很多任务以脚本的方式存在于服务器中,脚本代码节点结合数据库网关,可以实现这些脚本的统一调度。例如:

  • 使用高级的工具(例如: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
  2. 在顶部菜单栏中,选择集成与开发 > 数据开发 > 任务编排

    说明

    若您使用的是极简模式的控制台,请单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 集成与开发 > 数据开发 > 任务编排

  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,表明任务试运行失败。

      说明

      如果试运行失败,在执行日志中查看执行失败的节点和原因,修改配置后重新尝试。

    执行成功后,您可以在执行日志中查看脚本的标准输出打印。