OSS对象检查节点可用于通过FTP协议周期性检测指定文件是否存在。如果文件存在,则启动调度下游任务;如果不存在,则按照配置的间隔时间重复检测,直到满足检测的停止条件时停止检测。该节点通常作为DataWorks调度系统与其他调度系统之间传递信号使用。本文为您介绍使用OSS对象检查节点的流程和注意事项。
节点介绍
OSS对象检查节点的典型应用场景:当DataWorks调度系统中的任务需要访问一个外部数据库时,但由于该数据库的相关数据写入任务不在DataWorks中,DataWorks无法知道该数据库何时完成写入任务并可以被访问。如果DataWorks读取未写入完成的数据,则可能导致读取的数据不全或读取失败。为了保证DataWorks成功读取完整的外部数据库的数据,此时,可以让其他调度系统在数据库中的数据写入任务完成后,在指定文件系统中进行文件标记(例如,生成一个.done
文件),表明该任务已完成。然后在DataWorks中配置一个OSS对象检查节点,周期性检测该.done
文件是否存在,当检测到文件存在时,表明该数据库中的数据写入任务已经完成,可以启动调度需要访问该数据库数据的任务。
其他调度系统可以自行指定生成标记文件的文件系统。
本文以生成的标记文件为
.done
示例,在实际使用中,您可以自定义标记文件的格式、名称等信息。
其他调度系统检测到外部数据库的数据已就绪(即数据写入已完成,可以被访问),会在指定的文件系统中生成一个标记文件,例如,
XXXX2024-09-29.done
。本文以.done
为后缀的文件作为标记文件,您也可以根据业务需求,自定义标记文件。OSS数据源读取文件系统中的标记文件。
OSS对象检查节点根据配置的检测策略,定期检测OSS数据源中该标记文件是否存在。
如果检测到该标记文件存在,则表示外部数据库中的数据已准备就绪,可以被访问,OSS对象检查节点会将检测成功的结果反馈至下游节点。
如果检测该标记文件不存在,则表示外部数据库中的数据未准备就绪,不能被访问,OSS对象检查节点会将检测失败并且不会将结果反馈至下游节点,同时根据配置的检测策略继续检测,直到达到预设的检测上限后停止检测。
下游节点根据OSS对象检查节点的反馈结果,选择是否启动访问外部数据库的数据。
如果OSS对象检查节点反馈检测成功,则下游节点启动访问外部数据库的数据。
如果OSS对象检查节点反馈检测失败,则下游节点不启动访问外部数据库的数据。
下游节点访问外部数据库的数据。
外部数据库可以包含但不限于Oracle、MySQL、SQLServer等各类数据库或存储服务。
前提条件
RAM账号添加至对应空间(可选)。
进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发或空间管理员(权限较大,谨慎添加)角色权限。添加成员并授权,详情请参见为工作空间添加空间成员。
对应空间已绑定Serverless资源组。详情请参见:使用Serverless资源组。
进行OSS对象检查节点开发前,需创建对应的OSS对象检查节点,详情请参见:创建任务节点。
注意事项
分钟和小时周期调度的任务,OSS对象检查节点的Check停止策略不支持配置为Check停止时间,该类任务您只能选择使用Check停止次数停止策略。
在任务运行时,将会通过MaxCompute访问身份检查OSS对象,请确认OSS Bucket权限设置。
在开发/生产环境中,将会通过空间管理员职责访问身份检查OSS对象,请确认OSS Bucket权限设置。
步骤一:开发OSS对象检查节点
进入已创建OSS对象检查节点后,即可按照界面提示进行配置。
配置检查对象及检测策略。
OSS对象:输入OSS对象路径,支持${bizdate}、${cyctime}等参数。
超时时间:检查节点检查对象文件的超时时间。
OSS对象检查节点在配置完检测策略后,即可进行调度配置,详情请参见调度配置。