在构建数据系统时,如果存在多个平台同时开发且不同平台间的任务存在依赖关系,您可以通过触发式节点完成依赖配置。例如,算法开发在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包,您可以通过阿里云相关技术支持人员进行获取。
DefaultProfile profile = DefaultProfile.getProfile("<Your region>", "<Dataphin accessKey>", "<Dataphin secret>"); DefaultProfile.addEndpoint("<Your region>", "dataphin-public", "<Your openapi endpoint>"); profile.getHttpClientConfig().setIgnoreSSLCerts(true); DefaultAcsClient client = new DefaultAcsClient(profile); ExecuteTriggerNodeRequest request = new ExecuteTriggerNodeRequest(); // 设置需要触发的节点所在租户的租户ID request.setOpTenantId(0L); // 设置需要触发的周期实例对应的业务日期,格式为yyyy-MM-dd request.setBizDate("<bizdate>"); // 设置需要触发的节点的节点ID request.setNodeId("<node_id>"); // 设置需要触发的节点所在项目的项目ID request.setProjectId(0L); // 设置环境类型 request.setEnv("PROD"); ExecuteTriggerNodeResponse response = client.getAcsResponse(request); System.out.println(response.getCode());执行触发节点代码成功且Dataphin收到后触发请求后,触发式节点运行状态将转变为成功。