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等各类数据库或存储服务。

使用限制

  • 目前仅华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、华北3(张家口)、西南1(成都)、亚太东南1(新加坡)等地域发布了FTP Check节点功能。
  • FTP Check节点仅支持使用独享调度资源组。
  • 分钟和小时周期调度的任务,FTP Check节点的Check停止策略不支持配置为Check停止时间,该类任务您只能选择使用Check停止次数停止策略。

创建FTP Check节点

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 数据开发页面,鼠标悬停至新建图标,单击通用 > FTP Check
    您也可以打开相应的业务流程,右键单击 通用,选择 新建 > FTP Check
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹
    说明 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。
  4. 单击提交
  5. 单击节点编辑区域右侧的调度配置,配置节点的调度属性。
    调度属性包括 基础属性时间属性资源属性调度依赖,详情请参见 配置基础属性配置时间属性配置资源属性配置调度依赖
  6. 配置检测对象及检测策略。
    配置FTP Check参数
    1. 选择FTP数据源下拉列表,选择需要检测的目标FTP数据源。
      您可以选择FTP或SFTP数据源,如果下拉列表没有可用的数据源,则您需要新建数据源,详情请参见 配置FTP数据源
    2. 指定Check的文件配置需要检测的文件路径。如果您的文件路径是动态变化的,则您可以在文件路径中使用调度参数来配置变量路径,详情请参见基础属性:调度参数
    1. Check间隔(秒)中配置定时检测的时间间隔。
    2. 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. 测试节点,详情请参见查看周期任务

常见问题