触发式节点开发说明

更新时间:
复制为 MD 格式

在构建数据系统时,如果存在多个平台同时开发且不同平台间的任务存在依赖关系,您可以通过触发式节点完成依赖配置。例如,算法开发在A系统,在Dataphin中需要基于A系统某个算法任务的产出来运行某个周期任务。本文将介绍触发式节点开发的相关说明。

前提条件

使用外部触发节点,需要满足以下前提条件:

  • 已购买Dataphin OpenAPI功能。

  • 发起触发请求的环境与Dataphin的网络必须连通。

触发式节点任务基本特点

触发式节点任务与其他计算任务相同点与不同点如下:

  • 触发式节点任务的周期实例进入运行状态需要满足以下条件:

    1. 当前系统时间大于或等于实例的定时运行时间,与其他计算任务一致。

    2. 所有上游节点运行状态均已成功,与其他计算任务一致。

    3. 已收到外部触发请求,此为触发式节点独有的运行条件。

  • 触发式节点任务的补数据实例,不依赖外部触发请求,与普通计算任务一致。

触发方式

Dataphin当前仅支持通过OpenAPI方式在Dataphin之外发送触发请求,即外部触发。

外部触发

外部触发步骤如下:

  1. 获取触发信息。

    通过外部触发请求前,需要先获取以下信息。

    • 节点ID(node_id):可以在已提交的触发式节点任务属性面板的基本信息区域获取任务ID。如下图所示:

      image

    • 项目ID(project_id):可以在研发页面的浏览器URL中获取。例如,URL地址为https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=3091070126982117****30048即为项目ID。

    • 租户IDtenant_id):可以在研发页面的浏览器URL中获取。例如,URL地址为https://www.aliyun.com/dev/codeManage/698348****632?env=DEV&projectId=6982117****30048&tenantId=309***012309***012即为租户ID。

  2. 编写触发节点代码。

    本文以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());
  3. 执行触发节点代码成功且Dataphin收到后触发请求后,触发式节点运行状态将转变为成功