在构建数据系统时,如果存在多个平台同时开发且不同平台间的任务存在依赖关系,您可以通过触发式节点完成依赖配置。例如,算法开发在A系统,在Dataphin中需要基于A系统某个算法任务的产出来运行某个周期任务。本文将介绍触发式节点开发的相关说明。
前提条件
使用外部触发节点,需要满足以下前提条件:
已开通Dataphin OpenAPI功能。
发起触发请求的环境与Dataphin必须网络可连通。
触发式节点任务基本特点
触发式节点任务与其他计算任务相同点与不同点如下:
触发式节点任务的周期实例进入运行状态需要满足以下条件:
当前系统时间大于或等于实例的定时运行时间,与其他计算任务一致。
所有上游节点运行状态均已成功,与其他计算任务一致。
已收到外部触发请求,此为触发式节点独有的运行条件。
触发式节点任务的补数据实例,不依赖外部触发请求,与普通计算任务一致。
触发方式
Dataphin当前仅支持通过OpenAPI方式在Dataphin之外发送触发请求,即外部触发。
外部触发
外部触发步骤如下:
获取触发信息。
通过外部触发请求前,需要先获取以下信息。
节点ID(node_id):可以在已提交的触发式节点任务属性面板的基本信息区域获取任务ID。如下图所示:
项目ID(project_id):可以在研发页面的浏览器URL中获取。例如,URL地址为
https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=309107012
。6982117****30048
即为项目ID。租户ID(tenant_id):可以在研发页面的浏览器URL中获取。例如,URL地址为
https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=309***012
。309***012
即为租户ID。
编写触发节点代码。
本文以Java代码为例。
重要代码中所需要的Jar包,您可以通过阿里云相关技术支持人员进行获取。
package sample; import com.aliyuncs.dataphin.DataphinAcsClient; import com.aliyuncs.dataphin.model.v20200830.sop.node.RunTriggerNodeRequest; import com.aliyuncs.dataphin.model.v20200830.sop.node.RunTriggerNodeResponse; import com.aliyuncs.exceptions.ClientException; public class RunTriggerNodeTest { public static void main(String[] args) throws ClientException { DataphinAcsClient client = DataphinAcsClient.create("<Your region>", "<Your openapi endpoint>", "<Dataphin accessKey>", "<Dataphin secret>"); RunTriggerNodeRequest runTriggerNodeRequest = new RunTriggerNodeRequest(); // 设置需要触发的节点的节点ID。 runTriggerNodeRequest.setNodeId("<node_id>"); // 设置需要触发的周期实例对应的业务日期,格式为yyyy-MM-dd。 runTriggerNodeRequest.setBizDate("<bizdate>"); // 设置需要触发的节点所在项目的项目ID。 runTriggerNodeRequest.setProjectId(<project_id>); // 设置环境类型,建议保持 PROD(生产环境)不变。 runTriggerNodeRequest.setEnv("PROD"); // 设置需要触发的节点所在租户的租户ID。 runTriggerNodeRequest.setOpTenantId(<tenant_id>); RunTriggerNodeResponse runTriggerNodeResponse = client.getAcsResponse(runTriggerNodeRequest); System.out.println(runTriggerNodeResponse.getCode()); } }
执行触发节点代码成功且Dataphin收到后触发请求后,触发式节点运行状态将转变为成功。