DataWorks支持通过OSS对象检查节点检查OSS指定路径的文件是否存在,当下游任务需依赖该OSS文件时,您可使用此功能先检查文件是否存在。例如,同步OSS数据至DataWorks,需先检测出已经产生OSS数据文件,才可执行OSS同步任务。本文为您介绍如何使用OSS对象检查节点。
运行机制
OSS对象检查节点在执行期间若检测到目标文件存在,则当前任务会成功退出;若到了超时时间仍未检测到目标文件,则当前任务会失败退出。
权限说明
MaxCompute结合了阿里云的访问控制服务(RAM)和令牌服务(STS)实现对数据的安全访问,在任务运行时,将会通过MaxCompute访问身份检查OSS对象;在开发或生产环境中,将会通过相应开发或生产环境访问身份检查OSS对象,请确认相关身份拥有OSS Bucket的权限,授权详情请参见STS模式授权。
任务配置说明
OSS对象检查节点与普通调度节点一样,需设置调度依赖、调度时间。调度配置及检测的相关说明如下:
调度依赖配置
DataWorks上每个节点均需拥有上游依赖,若OSS对象检查节点无实际上游依赖,您可根据空间业务复杂度选择依赖虚拟节点或直接依赖工作空间根节点。
检查时间
通过调度时间,定义OSS对象检查节点预计几点开始检查文件是否存在。
通过OSS对象检查节点自带的超时时间参数,判断任务执行多久后未检测到目标文件产生,任务会失败退出。
检查对象
通过配置OSS待检测对象的存放路径,来确认待检测文件是否生成。该路径支持使用DataWorks调度参数根据任务执行时间,自动将代码中的变量替换为具体的值,实现OSS文件对象动态检测。
创建并使用OSS对象检查节点
OSS对象检查节点可检测所有租户下的OSS对象,具体操作步骤如下。
进入数据开发页面。
登录DataWorks控制台,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
创建业务流程。
如果您已有业务流程,则可以忽略该步骤。
鼠标悬停至
图标,选择新建业务流程。
在新建业务流程对话框,输入业务名称。
单击新建。
创建OSS对象检查节点。
鼠标悬停至
图标,选择 。
您也可找到相应的业务流程,右键单击业务流程名称,选择
。在新建节点对话框中,配置名称等信息,单击确认。
配置OSS对象检查节点。
参数说明如下。
参数
描述
OSS对象
您需手动填写OSS对象的存储路径。该路径支持使用调度参数,详情请参见DataWorks调度参数。
超时时间
在超时时间内,每5秒检测一次目标OSS对象是否存在于OSS中。若超出超时时间,仍未检测到OSS对象产生,则OSS对象检查任务失败。最大可设置1440分钟。
存储地址(
)
您可选择以下两种存储地址:
自己的存储:检测当前租户下的OSS对象。
别人的存储:检测非当前租户下(即您所选择的其他租户)的OSS对象。
任务调度配置。
提交并发布节点任务。
单击工具栏中的
图标,保存节点。
单击工具栏中的
图标,提交节点任务。
在提交新版本对话框中,输入变更描述。
单击确定。
如果您使用的是标准模式的工作空间,任务提交成功后,需要将任务发布至生产环境进行发布。请单击顶部菜单栏左侧的任务发布。具体操作请参见发布任务。
查看运行结果。
您需进入运维中心,查看节点的运行日志。若出现如下日志信息,表示未检测到OSS对象产生。
<Error> <Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> <RequestId></RequestId> <HostId>oss对象</HostId> <Key>xc/111.txt</Key> </Error>
常见问题:报错The specified key does not exist
报错原因:指定的OSS文件不存在,未检测到OSS对象产生。
解决方案:
请检查OSS文件路径是否填写正确,是否携带文件后缀。
请检查调度参数替换值与文件名称是否匹配。