FTP Check节点可用于通过FTP协议周期性检测指定文件是否存在。如果文件存在,则启动调度下游任务,不存在,则按照配置的间隔时间重复检测,直到满足检测的停止条件时停止检测。该节点通常作为DataWorks调度系统与其他调度系统之间传递信号使用。本文为您介绍使用FTP Check节点的流程和注意事项。
前提条件
已创建FTP数据源。
已创建好业务流程,详情请参见创建周期业务流程。
背景信息
FTP Check节点的典型应用场景:当DataWorks调度系统中的任务需要访问一个外部数据库时,但由于该数据库的相关数据写入任务不在DataWorks中,DataWorks无法知道该数据库何时完成写入任务并可以被访问。如果DataWorks读取未写入完成的数据,则可能导致读取的数据不全或读取失败。为了保证DataWorks成功读取完整的外部数据库的数据,此时,可以让其他调度系统在数据库中的数据写入任务完成后,在指定文件系统中进行文件标记(例如,生成一个.done
文件),表明该任务已完成。然后在DataWorks中配置一个FTP Check节点,周期性检测该.done
文件是否存在,当检测到文件存在时,表明该数据库中的数据写入任务已经完成,可以启动调度需要访问该数据库数据的任务。
其他调度系统可以自行指定生成标记文件的文件系统。
本文以生成的标记文件为
.done
示例,在实际使用中,您可以自定义标记文件的格式、名称等信息。
具体如下:
其他调度系统检测到外部数据库的数据已就绪(即数据写入已完成,可以被访问),会在指定的文件系统中生成一个标记文件,例如,
xxxx2021-03-03.done
。本文以.done
为后缀的文件做为标记文件,您也可以根据业务需求,自定义标记文件。FTP数据源读取文件系统中的标记文件。
FTP Check节点根据配置的检测策略,定期检测FTP数据源中该标记文件是否存在。
如果检测该标记文件存在,则表示外部数据库中的数据已准备就绪,可以被访问,FTP Check节点会将检测成功的结果反馈至下游节点。
如果检测该标记文件不存在,则表示外部数据库中的数据未准备就绪,不能被访问,FTP Check节点会将检测失败并且不会调度下游节点的结果反馈至下游节点,并根据配置的检测策略继续检测,直到达到预设的检测上限后停止检测。
FTP Check节点的检测策略,请参见下文《配置检测对象及检测策略》。
下游节点根据FTP Check节点的反馈结果,选择是否启动访问外部数据库的数据。
如果FTP Check节点反馈检测成功,则下游节点启动访问外部数据库的数据。
如果FTP Check节点反馈检测失败,则下游节点不启动访问外部数据库的数据。
下游节点访问外部数据库的数据。
外部数据库可以包含但不限于Oracle、MySQL、SQLServer等各类数据库或存储服务。
使用限制
FTP Check节点支持Serverless资源组(推荐)或旧版独享调度资源组运行任务。如需购买使用Serverless资源组,详情请参见新增和使用Serverless资源组。
分钟和小时周期调度的任务,FTP Check节点的Check停止策略不支持配置为Check停止时间,该类任务您只能选择使用Check停止次数停止策略。
支持的地域:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)。
创建FTP Check节点
登录DataWorks控制台。
在数据开发页面,鼠标悬停至图标,单击 。
您也可以打开相应的业务流程,右键单击通用,选择
。在新建节点对话框中,输入节点名称,并选择目标文件夹。
说明节点名称必须是大小写字母、中文、数字、下划线(_)和英文句号(.),且不能超过128个字符。
单击确认。
单击节点编辑区域右侧的调度配置,配置节点的调度属性。
配置检测对象及检测策略。
在选择FTP数据源下拉列表,选择需要检测的目标FTP数据源。
您可以选择FTP或SFTP数据源,如果下拉列表没有可用的数据源,则您需要新建数据源,详情请参见配置FTP数据源。
在指定Check的文件配置需要检测的文件路径。如果您的文件路径是动态变化的,则您可以在文件路径中使用调度参数来配置变量路径,详情请参见调度参数支持的格式。
在Check间隔(秒)中配置定时检测的时间间隔。
在Check停止策略中配置停止检测的策略。
Check停止时间:检测任务的到时时间点,格式为
hh24:mi:ss
,即24小时制时间。每次执行检测任务时,如果没有检测到对应的标记文件,则该检测任务失败,不会触发启动调度下游任务,只有检测成功时,才会启动调度下游任务。检测失败后,该任务会按配置的间隔时间继续检测,直到达配置的停止检测时间,才不再继续检测。如果检测失败,您可以在任务日志中查看具体的失败原因。说明FTP Check节点的调度周期配置结果会影响FTP Check的停止策略:
当调度周期配置为分钟或小时时,停止策略不支持配置为Check停止时间,只能配置为Check停止次数。详情请参见配置FTP Check的检测策略。
当调度周期开始配置为天,并且已经配置好停止策略为Check停止时间,此时如果将调度周期修改为分钟或小时,则停止策略Check停止时间选项无效,您需要重新配置停止策略为Check停止次数,否则FTP Check节点无法提交。
Check停止次数:检测次数限制。每次执行检测任务时,如果没有检测到对应的标记文件,则该检测任务失败,不会触发启动调度下游任务,只有检测成功时,才会启动调度下游任务。检测失败后,该任务会按配置的间隔时间继续检测,直到达配置的停止检测次数,才不再继续检测。如果检测失败,您可以在任务日志中查看具体的失败原因。
保存并提交节点。
说明您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
单击工具栏中的图标,保存节点。
单击工具栏中的图标。
在提交新版本对话框中,输入变更描述。
单击确认。
如果您使用的是标准模式的工作空间,提交成功后,请单击右上方的发布。具体操作请参见发布任务。
任务运维,详情请参见周期任务基本运维操作。