FTP Check节点

FTP Check节点可用于通过FTP协议周期性检测指定文件是否存在。如果文件存在,则启动调度下游任务,不存在,则按照配置的间隔时间重复检测,直到满足检测的停止条件时停止检测。该节点通常作为DataWorks调度系统与其他调度系统之间传递信号使用。本文为您介绍使用FTP Check节点的流程和注意事项。

前提条件

背景信息

FTP Check节点的典型应用场景:当DataWorks调度系统中的任务需要访问一个外部数据库时,但由于该数据库的相关数据写入任务不在DataWorks中,DataWorks无法知道该数据库何时完成写入任务并可以被访问。如果DataWorks读取未写入完成的数据,则可能导致读取的数据不全或读取失败。为了保证DataWorks成功读取完整的外部数据库的数据,此时,可以让其他调度系统在数据库中的数据写入任务完成后,在指定文件系统中进行文件标记(例如,生成一个.done文件),表明该任务已完成。然后在DataWorks中配置一个FTP Check节点,周期性检测该.done文件是否存在,当检测到文件存在时,表明该数据库中的数据写入任务已经完成,可以启动调度需要访问该数据库数据的任务。

说明
  • 其他调度系统可以自行指定生成标记文件的文件系统。

  • 本文以生成的标记文件为.done示例,在实际使用中,您可以自定义标记文件的格式、名称等信息。

具体如下:FTP Check

  1. 其他调度系统检测到外部数据库的数据已就绪(即数据写入已完成,可以被访问),会在指定的文件系统中生成一个标记文件,例如,xxxx2021-03-03.done。本文以.done为后缀的文件做为标记文件,您也可以根据业务需求,自定义标记文件。

  2. FTP数据源读取文件系统中的标记文件。

  3. FTP Check节点根据配置的检测策略,定期检测FTP数据源中该标记文件是否存在。

    • 如果检测该标记文件存在,则表示外部数据库中的数据已准备就绪,可以被访问,FTP Check节点会将检测成功的结果反馈至下游节点。

    • 如果检测该标记文件不存在,则表示外部数据库中的数据未准备就绪,不能被访问,FTP Check节点会将检测失败并且不会调度下游节点的结果反馈至下游节点,并根据配置的检测策略继续检测,直到达到预设的检测上限后停止检测。

    FTP Check节点的检测策略,请参见下文《配置检测对象及检测策略》

  4. 下游节点根据FTP Check节点的反馈结果,选择是否启动访问外部数据库的数据。

    • 如果FTP Check节点反馈检测成功,则下游节点启动访问外部数据库的数据。

    • 如果FTP Check节点反馈检测失败,则下游节点不启动访问外部数据库的数据。

  5. 下游节点访问外部数据库的数据。

说明

外部数据库可以包含但不限于Oracle、MySQL、SQLServer等各类数据库或存储服务。

使用限制

  • FTP Check节点支持Serverless资源组(推荐)或旧版独享调度资源组运行任务。如需购买使用Serverless资源组,详情请参见新增和使用Serverless资源组

  • 分钟和小时周期调度的任务,FTP Check节点的Check停止策略不支持配置为Check停止时间,该类任务您只能选择使用Check停止次数停止策略。

  • 支持的地域:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)。

创建FTP Check节点

  1. 登录DataWorks控制台。

  2. 数据开发页面,鼠标悬停至新建图标,单击通用 > FTP Check

    您也可以打开相应的业务流程,右键单击通用,选择新建 > FTP Check

  3. 新建节点对话框中,输入节点名称,并选择目标文件夹

    说明

    节点名称必须是大小写字母、中文、数字、下划线(_)和英文句号(.),且不能超过128个字符。

  4. 单击确认

  5. 单击节点编辑区域右侧的调度配置,配置节点的调度属性。

    调度属性包括基础属性时间属性资源属性调度依赖,详情请参见 配置基础属性时间属性配置说明配置资源属性配置同周期调度依赖

  6. 配置检测对象及检测策略。

    配置FTP Check参数

    1. 选择FTP数据源下拉列表,选择需要检测的目标FTP数据源。

      您可以选择FTP或SFTP数据源,如果下拉列表没有可用的数据源,则您需要新建数据源,详情请参见配置FTP数据源

    2. 指定Check的文件配置需要检测的文件路径。如果您的文件路径是动态变化的,则您可以在文件路径中使用调度参数来配置变量路径,详情请参见调度参数支持的格式

    3. Check间隔(秒)中配置定时检测的时间间隔。

    4. Check停止策略中配置停止检测的策略。

      • Check停止时间:检测任务的到时时间点,格式为hh24:mi:ss,即24小时制时间。每次执行检测任务时,如果没有检测到对应的标记文件,则该检测任务失败,不会触发启动调度下游任务,只有检测成功时,才会启动调度下游任务。检测失败后,该任务会按配置的间隔时间继续检测,直到达配置的停止检测时间,才不再继续检测。如果检测失败,您可以在任务日志中查看具体的失败原因。

        说明

        FTP Check节点的调度周期配置结果会影响FTP Check的停止策略:

        • 当调度周期配置为分钟小时时,停止策略不支持配置为Check停止时间,只能配置为Check停止次数。详情请参见配置FTP Check的检测策略

        • 当调度周期开始配置为,并且已经配置好停止策略为Check停止时间,此时如果将调度周期修改为分钟小时,则停止策略Check停止时间选项无效,您需要重新配置停止策略为Check停止次数,否则FTP Check节点无法提交。

      • Check停止次数:检测次数限制。每次执行检测任务时,如果没有检测到对应的标记文件,则该检测任务失败,不会触发启动调度下游任务,只有检测成功时,才会启动调度下游任务。检测失败后,该任务会按配置的间隔时间继续检测,直到达配置的停止检测次数,才不再继续检测。如果检测失败,您可以在任务日志中查看具体的失败原因。

  7. 保存并提交节点。

    说明

    您需要设置节点的重跑属性依赖的上游节点,才可以提交节点。

    1. 单击工具栏中的保存图标,保存节点。

    2. 单击工具栏中的提交图标。

    3. 提交新版本对话框中,输入变更描述

    4. 单击确认

    如果您使用的是标准模式的工作空间,提交成功后,请单击右上方的发布。具体操作请参见发布任务

  8. 任务运维,详情请参见周期任务基本运维操作