日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

統(tǒng)計(jì)MaxCompute TOPN費(fèi)用賬號(hào)及耗時(shí)作業(yè)

更新時(shí)間:

數(shù)據(jù)開(kāi)發(fā)者在使用MaxCompute開(kāi)發(fā)過(guò)程中,需要統(tǒng)計(jì)MaxCompute項(xiàng)目中賬號(hào)的費(fèi)用以及作業(yè)的耗時(shí)情況,助力合理規(guī)劃和調(diào)整作業(yè)。本文為您介紹如何通過(guò)MaxCompute元數(shù)據(jù)(Information Schema)統(tǒng)計(jì)TOP費(fèi)用賬號(hào)及耗時(shí)作業(yè),同時(shí)通過(guò)釘釘推送到客戶群。

背景信息

通常,數(shù)據(jù)開(kāi)發(fā)者會(huì)通過(guò)DataWorks標(biāo)準(zhǔn)模式使用MaxCompute,MaxCompute會(huì)在Information Schema中記錄所有作業(yè)的執(zhí)行賬號(hào)為同一個(gè)主賬號(hào),只有小部分的作業(yè)執(zhí)行賬號(hào)為RAM用戶。此時(shí)數(shù)據(jù)開(kāi)發(fā)者會(huì)關(guān)注如何統(tǒng)計(jì)各個(gè)賬號(hào)的費(fèi)用和耗時(shí)作業(yè)。MaxCompute提供如下方案解決這兩個(gè)問(wèn)題:

  • 賬號(hào)費(fèi)用:您可以通過(guò)賬單詳情中的用量明細(xì)來(lái)查詢,但是這種方式無(wú)法將用量明細(xì)歸屬到對(duì)應(yīng)的RAM用戶。Information Schema視圖中的TASKS_HISTORY會(huì)記錄MaxCompute項(xiàng)目?jī)?nèi)已完成的作業(yè)詳情,且保留近14天數(shù)據(jù)。您可以將TASKS_HISTORY中的數(shù)據(jù)備份到指定MaxCompute項(xiàng)目中,基于該數(shù)據(jù)統(tǒng)計(jì)TOP費(fèi)用賬號(hào)。

  • 耗時(shí)作業(yè):您可以通過(guò)TASKS_HISTORY中的數(shù)據(jù)統(tǒng)計(jì)TOP耗時(shí)作業(yè)。

更多關(guān)于Information Schema的功能及使用限制,請(qǐng)參見(jiàn)項(xiàng)目級(jí)別Information Schema(即將下線)

步驟一:獲取Information Schema服務(wù)

自2024年03月01日開(kāi)始,MaxCompute停止對(duì)新增項(xiàng)目自動(dòng)安裝項(xiàng)目級(jí)別Information Schema,即新增的項(xiàng)目默認(rèn)沒(méi)有項(xiàng)目級(jí)別Information Schema的Package。若您有查元數(shù)據(jù)的業(yè)務(wù),您可以查詢租戶級(jí)別的Information Schema,以便獲取更全的信息。租戶級(jí)別Information Schema的具體使用說(shuō)明請(qǐng)參見(jiàn)租戶級(jí)別Information Schema

對(duì)于存量MaxCompute項(xiàng)目,在您開(kāi)始使用Information Schema服務(wù)前,需要以項(xiàng)目所有者(Project Owner)或具備Super_Administrator管理角色的RAM用戶身份安裝Information Schema權(quán)限包,獲得訪問(wèn)項(xiàng)目元數(shù)據(jù)的權(quán)限。更多為用戶授權(quán)管理角色操作信息,請(qǐng)參見(jiàn)將角色賦予用戶。安裝方式有如下兩種:

說(shuō)明

如果統(tǒng)計(jì)多個(gè)MaxCompute項(xiàng)目的元數(shù)據(jù),您需要分別對(duì)各個(gè)MaxCompute項(xiàng)目安裝Information Schema權(quán)限包。然后把各個(gè)MaxCompute項(xiàng)目的元數(shù)據(jù)的備份數(shù)據(jù)插入到同一個(gè)表中做集中統(tǒng)計(jì)分析。

(可選)步驟二:對(duì)除Project Owner外的用戶授權(quán)

Information Schema的視圖包含了項(xiàng)目級(jí)別的所有用戶數(shù)據(jù),默認(rèn)項(xiàng)目所有者可以查看。如果項(xiàng)目?jī)?nèi)其他用戶或角色需要查看,需要進(jìn)行授權(quán),請(qǐng)參見(jiàn)基于Package跨項(xiàng)目訪問(wèn)資源

授權(quán)語(yǔ)法如下。

grant <actions> on package Information_Schema.systables to user <user_name>;
grant <actions> on package Information_Schema.systables to role <role_name>;
  • actions:待授予的操作權(quán)限,取值為Read。

  • user_name:已添加至項(xiàng)目中的阿里云賬號(hào)或RAM用戶。

    您可以通過(guò)MaxCompute客戶端執(zhí)行list users;命令獲取用戶賬號(hào)。

  • role_name:已添加至項(xiàng)目中的角色。

    您可以通過(guò)MaxCompute客戶端執(zhí)行list roles;命令獲取角色名稱。

授權(quán)示例如下。

grant read on package Information_Schema.systables to user RAM$Bob@aliyun.com:user01;

步驟三:下載并備份元數(shù)據(jù)

在MaxCompute項(xiàng)目上創(chuàng)建元數(shù)據(jù)備份表,并定時(shí)將元數(shù)據(jù)寫入備份表中。以MaxCompute客戶端為例,操作流程如下:

  1. 登錄MaxCompute客戶端,執(zhí)行如下命令創(chuàng)建元數(shù)據(jù)備份表。

    --project_name為MaxCompute項(xiàng)目名稱。
    create table if not exists <project_name>.information_history
    (
        task_catalog STRING
        ,task_schema STRING
        ,task_name STRING
        ,task_type STRING
        ,inst_id STRING
        ,`status` STRING
        ,owner_id STRING
        ,owner_name STRING
        ,result STRING
        ,start_time DATETIME
        ,end_time DATETIME
        ,input_records BIGINT
        ,output_records BIGINT
        ,input_bytes BIGINT
        ,output_bytes BIGINT
        ,input_tables STRING
        ,output_tables STRING
        ,operation_text STRING
        ,signature STRING
        ,complexity DOUBLE
        ,cost_cpu DOUBLE
        ,cost_mem DOUBLE
        ,settings STRING
        ,ds STRING
    );
  2. 進(jìn)入DataWorks數(shù)據(jù)開(kāi)發(fā)界面,創(chuàng)建ODPS SQL節(jié)點(diǎn)(information_history)并配置定時(shí)調(diào)度,用于定時(shí)將數(shù)據(jù)寫入備份表information_history。完成后單擊左上角保存圖標(biāo)保存。

    創(chuàng)建ODPS SQL節(jié)點(diǎn)操作,請(qǐng)參見(jiàn)開(kāi)發(fā)ODPS SQL任務(wù)

    ODPS SQL節(jié)點(diǎn)運(yùn)行的命令示例如下:

    --project_name為MaxCompute項(xiàng)目名稱。
    use <project_name>;
    insert into table <project_name>.information_history select * from information_schema.tasks_history where ds ='datetime1';

    ${datetime1}為DataWorks的調(diào)度參數(shù),您需要在ODPS SQL節(jié)點(diǎn)右側(cè),單擊調(diào)度配置,在基礎(chǔ)屬性區(qū)域配置參數(shù)值為datetime1=${yyyymmdd}

    說(shuō)明

    如果需要同時(shí)對(duì)多個(gè)MaxCompute項(xiàng)目的元數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,您可以創(chuàng)建多個(gè)ODPS SQL節(jié)點(diǎn),將這些MaxCompute項(xiàng)目的元數(shù)據(jù)寫入到同一張數(shù)據(jù)備份表中。

步驟四:創(chuàng)建統(tǒng)計(jì)TOPN費(fèi)用賬號(hào)及耗時(shí)作業(yè)

TASKS_HISTORY視圖中的settings會(huì)記錄上層調(diào)度或用戶傳入的信息,以JSON格式存儲(chǔ)。包含的具體信息有:useragent、bizid、skynet_id和skynet_nodename。您可以通過(guò)settings字段定位到創(chuàng)建作業(yè)的RAM用戶信息。因此您可以基于備份數(shù)據(jù)表計(jì)算TOPN費(fèi)用賬號(hào)及耗時(shí)作業(yè)。操作流程如下:

  1. 登錄MaxCompute客戶端,創(chuàng)建一張RAM用戶明細(xì)表user_ram,記錄需要統(tǒng)計(jì)的賬號(hào)及賬號(hào)ID。

    命令示例如下:

    create table if not exists <project_name>.user_ram
    (
        user_id STRING
        ,user_name STRING
    );
  2. 創(chuàng)建一張統(tǒng)計(jì)賬號(hào)費(fèi)用的明細(xì)表cost_topn,記錄TOPN費(fèi)用賬號(hào)明細(xì)。

    命令示例如下:

    create table if not exists <project_name>.cost_topn
    (
        cost_sum DECIMAL(38,5)
        ,task_owner STRING
    )
    partitioned by 
    (
        ds STRING
    );
  3. 建一張統(tǒng)計(jì)耗時(shí)作業(yè)的明細(xì)表time_topn,記錄TOPN耗時(shí)作業(yè)明細(xì)。

    命令示例如下:

    create table if not exists <project_name>.time_topn
    (
        inst_id STRING
        ,cost_time BIGINT
        ,task_owner STRING
    )
    partitioned by 
    (
        ds STRING
    );
  4. 進(jìn)入DataWorks數(shù)據(jù)開(kāi)發(fā)界面,創(chuàng)建ODPS SQL節(jié)點(diǎn)(topn)并配置定時(shí)調(diào)度,用于定時(shí)將cost_topn表中統(tǒng)計(jì)的數(shù)據(jù)寫入user_ram表。完成后單擊左上角保存圖標(biāo)保存。

    創(chuàng)建ODPS SQL節(jié)點(diǎn)操作,請(qǐng)參見(jiàn)開(kāi)發(fā)ODPS SQL任務(wù)

    ODPS SQL節(jié)點(diǎn)運(yùn)行的命令示例如下:

    --開(kāi)啟2.0數(shù)據(jù)類型開(kāi)關(guān)。2.0數(shù)據(jù)類型詳情,請(qǐng)參見(jiàn)2.0數(shù)據(jù)類型版本。
    set odps.sql.decimal.odps2=true;
    --將元數(shù)據(jù)寫入cost_topn、time_topn表。user_id為賬號(hào)ID。您可以在個(gè)人信息頁(yè)面查看賬號(hào)ID。
    insert into table <project_name>.cost_topn partition (ds = '${datetime1}')
    select   
    nvl(cost_sum,0) cost_sum
            ,case when a.task_owner='<user_id>' or a.task_owner='<user_id>' or a.task_owner='<user_id>' then b.user_name 
                  else a.task_owner 
             end task_owner 
    from    (
                select  inst_id
                        ,owner_name
                        ,task_type
                        ,a.input_bytes
                        ,a.cost_cpu
                        ,a.status
                        ,case    when a.task_type = 'SQL' then cast(a.input_bytes/1024/1024/1024 * a.complexity * 0.3 as DECIMAL(18,5) )
                                 when a.task_type = 'SQLRT' then cast(a.input_bytes/1024/1024/1024 * a.complexity * 0.3 as DECIMAL(18,5) )
                                 when a.task_type = 'CUPID' and a.status='Terminated'then cast(a.cost_cpu/100/3600 * 0.66 as DECIMAL(18,5) ) 
                                 else 0 
                         end cost_sum
                        ,a.settings
                        ,get_json_object(settings, "$.SKYNET_ONDUTY") owner
                        ,case    when get_json_object(a.settings, "$.SKYNET_ONDUTY") is null then owner_name 
                                 else get_json_object(a.settings, "$.SKYNET_ONDUTY") 
                         end task_owner
                from    information_history
                where   ds = '${datetime1}'
            ) a
    left join <project_name>.user_ram b
    on      a.task_owner = b.user_id;
    
    insert into table <project_name>.time_topn partition(ds = '${datetime1}')
    select  inst_id
            ,cost_time
            ,case    when a.task_owner='<user_id>' or a.task_owner='<user_id>' or a.task_owner='<user_id>' then b.user_name 
                     else a.task_owner 
             end task_owner
    from    (
                select  inst_id
                        ,task_type
                        ,status
                        ,datediff(a.end_time, a.start_time, 'ss') AS cost_time
                        ,case    when get_json_object(a.settings, "$.SKYNET_ONDUTY") is null then owner_name 
                                 else get_json_object(a.settings, "$.SKYNET_ONDUTY") 
                         end task_owner
                from    <project_name>.information_history a
                where   ds = '${datetime1}'
            ) a
    left join <project_name>.user_ram b
    on      a.task_owner = b.user_id
    ;
    說(shuō)明

    示例中的task_type = 'SQL'表示SQL作業(yè),task_type = 'SQLRT'表示查詢加速作業(yè),task_type = 'CUPID'表示Spark作業(yè)。如果需要統(tǒng)計(jì)其他計(jì)費(fèi)作業(yè),例如MapReduce、Lightning(交互式分析)、Mars,您可以按照計(jì)費(fèi)公式添加相應(yīng)代碼行。計(jì)費(fèi)詳情,請(qǐng)參見(jiàn)計(jì)算費(fèi)用(按量計(jì)費(fèi))

    ${datetime1}為DataWorks的調(diào)度參數(shù),您需要在ODPS SQL節(jié)點(diǎn)右側(cè),單擊調(diào)度配置,在基礎(chǔ)屬性區(qū)域配置參數(shù)值為datetime1=${yyyymmdd}

步驟五:創(chuàng)建釘釘群機(jī)器人并推送TOPN費(fèi)用賬號(hào)及耗時(shí)作業(yè)信息

以PC端為例,創(chuàng)建釘釘群機(jī)器人并推送TOPN費(fèi)用賬號(hào)及耗時(shí)作業(yè)信息的操作流程如下:

  1. 創(chuàng)建釘釘群機(jī)器人。

    1. 選擇目標(biāo)釘釘群,單擊右上角的1圖標(biāo)。

    2. 群設(shè)置面板,單擊智能群助手

    3. 智能群助手面板,單擊添加機(jī)器人

    4. 群機(jī)器人對(duì)話框的添加機(jī)器人區(qū)域,單擊添加圖標(biāo)。

    5. 群機(jī)器人對(duì)話框,單擊自定義機(jī)器人。

    6. 機(jī)器人詳情對(duì)話框,單擊添加

    7. 添加機(jī)器人對(duì)話框,編輯機(jī)器人信息。

      屬性名稱

      設(shè)置規(guī)則

      頭像

      單擊頭像右下角的編輯圖標(biāo)來(lái)編輯頭像。

      機(jī)器人名字

      輸入機(jī)器人名字。

      安全設(shè)置

      完成必要的安全設(shè)置(至少選擇1種),勾選我已閱讀并同意《自定義機(jī)器人服務(wù)及免責(zé)條款》,單擊完成

      安全設(shè)置有3種方式:

      • 自定義關(guān)鍵詞:最多可以設(shè)置10個(gè)關(guān)鍵詞。

      • 加簽:勾選加簽可以獲取到機(jī)器人的密鑰。

      • IP地址(段):只有來(lái)自IP地址范圍內(nèi)的請(qǐng)求才會(huì)被正常處理。

    8. 添加機(jī)器人對(duì)話框,復(fù)制生成的Webhook地址。單擊完成

      重要

      請(qǐng)保管好此Webhook地址,不要公布在外部網(wǎng)站上,泄露后會(huì)有安全風(fēng)險(xiǎn)。

  2. 通過(guò)IntelliJ IDEA創(chuàng)建Maven項(xiàng)目并編譯推送釘釘群消息的Java程序,編譯完成后生成JAR包。

    IntelliJ IDEA操作詳情,請(qǐng)單擊IntelliJ IDEA工具界面右上角的Help獲取。

    1. 配置Pom依賴。

      Pom依賴如下。

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
      
          <groupId>DingTalk_Information</groupId>
          <artifactId>DingTalk_Information</artifactId>
          <version>1.0-SNAPSHOT</version>
          <dependencies>
              <dependency>
                  <groupId>com.aliyun.odps</groupId>
                  <artifactId>odps-sdk-core</artifactId>
                  <version>0.35.5-public</version>
              </dependency>
              <dependency>
                  <groupId>log4j</groupId>
                  <artifactId>log4j</artifactId>
                  <version>1.2.15</version>
                  <exclusions>
                      <exclusion>
                          <groupId>com.sun.jmx</groupId>
                          <artifactId>jmxri</artifactId>
                      </exclusion>
                      <exclusion>
                          <groupId>com.sun.jdmk</groupId>
                          <artifactId>jmxtools</artifactId>
                      </exclusion>
                      <exclusion>
                          <groupId>javax.jms</groupId>
                          <artifactId>jms</artifactId>
                      </exclusion>
                  </exclusions>
              </dependency>
              <dependency>
                  <groupId>com.aliyun</groupId>
                  <artifactId>alibaba-dingtalk-service-sdk</artifactId>
                  <version>1.0.1</version>
              </dependency>
              <dependency>
                  <groupId>com.aliyun.odps</groupId>
                  <artifactId>odps-jdbc</artifactId>
                  <version>3.0.1</version>
                  <classifier>jar-with-dependencies</classifier>
              </dependency>
          </dependencies>
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-assembly-plugin</artifactId>
                      <version>2.4.1</version>
                      <configuration>
                          <!-- get all project dependencies -->
                          <descriptorRefs>
                              <descriptorRef>jar-with-dependencies</descriptorRef>
                          </descriptorRefs>
                          <!-- MainClass in mainfest make a executable jar -->
                          <archive>
                              <manifest>
                                  <mainClass>com.alibaba.sgri.message.test</mainClass>
                              </manifest>
                          </archive>
                      </configuration>
                      <executions>
                          <execution>
                              <id>make-assembly</id>
                              <!-- bind to the packaging phase -->
                              <phase>package</phase>
                              <goals>
                                  <goal>single</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </project>
    2. 開(kāi)發(fā)Java程序并生成JAR包topn_new.jar。

      Java代碼示例如下:

      package com.alibaba.sgri.message;
      import java.io.IOException;
      import java.util.concurrent.atomic.AtomicInteger;
      import com.aliyun.odps.Instance;
      import com.aliyun.odps.Odps;
      import com.aliyun.odps.OdpsException;
      import com.aliyun.odps.account.Account;
      import com.aliyun.odps.account.AliyunAccount;
      import com.aliyun.odps.data.ResultSet;
      import com.aliyun.odps.task.SQLTask;
      import com.dingtalk.api.DefaultDingTalkClient;
      import com.dingtalk.api.DingTalkClient;
      import com.dingtalk.api.request.OapiRobotSendRequest;
      import com.dingtalk.api.response.OapiRobotSendResponse;
      import com.taobao.api.ApiException;
      
      public class test {
      
          public static void main(String[] args) throws ApiException {
              if (args.length < 1) {
                  System.out.println("請(qǐng)輸入日期參數(shù)");
                  System.exit(0);
              }
              System.out.println("開(kāi)始讀取數(shù)據(jù)");
              DingTalkClient client = new DefaultDingTalkClient(
                      "https://oapi.dingtalk"
                              + ".com/robot/send?access_token=<機(jī)器人Webhook地址>\n");
              OapiRobotSendRequest request = new OapiRobotSendRequest();
              request.setMsgtype("markdown");
              OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
              //這里的日期作為參數(shù)
              markdown.setText(getContent(args[0]));
              markdown.setTitle("作業(yè)消費(fèi)TOPN");
              request.setMarkdown(markdown);
              OapiRobotSendResponse response = client.execute(request);
              System.out.println("消息發(fā)送成功");
          }
      
          /**
           * 讀取ODPS,獲取要發(fā)送的數(shù)據(jù)
           */
      
          public static String getContent(String day) {
              Odps odps = createOdps();
              StringBuilder sb = new StringBuilder();
              try {
                  //==================這是費(fèi)用賬號(hào)=====================
                  String costTopnSql = "select sum(cost_sum)cost_sum,task_owner from cost_topn where ds='" + day + "' " + "group by task_owner order by cost_sum desc limit 5;";
                  Instance costInstance = SQLTask.run(odps, costTopnSql);
                  costInstance.waitForSuccess();
                  ResultSet costTopnRecords = SQLTask.getResultSet(costInstance);
                  sb.append("<font color=#FF0000 size=4>").append("費(fèi)用賬號(hào)TOPN(").append(day).append(
                          ")[按照阿里云按量付費(fèi)計(jì)算]").append("</font>").append("\n\n");
                  AtomicInteger costIndex = new AtomicInteger(1);
                  costTopnRecords.forEach(item -> {
                      sb.append(costIndex.getAndIncrement()).append(".").append("賬號(hào):");
                      sb.append("<font color=#2E64FE>").append(item.getString("task_owner")).append("\n\n").append("</font>");
                      sb.append("  ").append(" ").append("消費(fèi):").append("<font color=#2E64FE>").append(item.get("cost_sum"))
                              .append("元").append(
                              "</font>").append("\n\n")
                              .append("</font>");
                  });
                  //==================這是耗時(shí)作業(yè)=====================
                  String timeTopnSql = "select * from time_topn where ds='" + day + "' ORDER BY cost_time DESC limit 5;";
                  Instance timeInstance = SQLTask.run(odps, timeTopnSql);
                  timeInstance.waitForSuccess();
                  ResultSet timeTopnRecords = SQLTask.getResultSet(timeInstance);
                  sb.append("<font color=#FF8C00 size=4>").append("耗時(shí)作業(yè)TOPN(").append(day).append(")")
                          .append("\n\n").append("</font>");
                  AtomicInteger timeIndex = new AtomicInteger(1);
                  timeTopnRecords.forEach(item -> {
                      sb.append(timeIndex.getAndIncrement()).append(".").append("作業(yè):");
                      sb.append("<font color=#2E64FE>").append(item.getString("inst_id")).append("\n\n").append("</font>");
                      sb.append("   ").append("賬號(hào):").append("<font color=#2E64FE>").append(item.getString("task_owner")).append("\n\n").append("</font>");
                      sb.append("   ").append("耗時(shí):).append("<font color=#2E64FE>").append(item.get("cost_time"))
                              .append("秒").append(
                              "</font>").append("\n\n");
                  });
              } catch (OdpsException | IOException e) {
                  e.printStackTrace();
              }
              return sb.toString();
          }
      
          /**
           * 創(chuàng)建ODPS
           */
          public static Odps createOdps() {
              String project = "<project_name>";
              // 阿里云賬號(hào)AccessKey擁有所有API的訪問(wèn)權(quán)限,風(fēng)險(xiǎn)很高。強(qiáng)烈建議您創(chuàng)建并使用RAM用戶進(jìn)行API訪問(wèn)或日常運(yùn)維,請(qǐng)登錄RAM控制臺(tái)創(chuàng)建RAM用戶
      				// 此處以把AccessKey 和 AccessKeySecret 保存在環(huán)境變量為例說(shuō)明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里
      				// 強(qiáng)烈建議不要把 AccessKey 和 AccessKeySecret 保存到代碼里,會(huì)存在密鑰泄漏風(fēng)險(xiǎn)
      				private static String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
      				private static String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
              String endPoint = "http://service.odps.aliyun.com/api";
              Account account = new AliyunAccount(accessId, accessKey);
              Odps odps = new Odps(account);
              odps.setEndpoint(endPoint);
              odps.setDefaultProject(project);
              return odps;
          }
      }
      說(shuō)明

      自定義釘釘群機(jī)器人開(kāi)發(fā)API,請(qǐng)參見(jiàn)機(jī)器人開(kāi)發(fā)

    3. 上傳生成的topn_new.jar包為MaxCompute資源。

      上傳MaxCompute資源操作,請(qǐng)參見(jiàn)創(chuàng)建并使用MaxCompute資源

  3. 創(chuàng)建Shell節(jié)點(diǎn)(dingsend),引用topn_new.jar包并配置定時(shí)調(diào)度。

    創(chuàng)建Shell節(jié)點(diǎn)操作,請(qǐng)參見(jiàn)Shell節(jié)點(diǎn)

    Shell節(jié)點(diǎn)運(yùn)行的命令示例如下:

    java -jar  topn_new.jar  $1

    $1為DataWorks的調(diào)度參數(shù),您需要在Shell節(jié)點(diǎn)右側(cè),單擊調(diào)度配置,在基礎(chǔ)屬性區(qū)域配置參數(shù)值為${yyyymmdd}

步驟六:配置上下游節(jié)點(diǎn)調(diào)度屬性并運(yùn)行節(jié)點(diǎn)

在業(yè)務(wù)流程面板將information_history、topn和dingsend節(jié)點(diǎn)連線形成依賴關(guān)系,并配置每個(gè)節(jié)點(diǎn)的重跑屬性和依賴的上游節(jié)點(diǎn)。配置完成后在節(jié)點(diǎn)上單擊右鍵,選擇運(yùn)行節(jié)點(diǎn)即可。

依賴關(guān)系配置,請(qǐng)參見(jiàn)配置同周期調(diào)度依賴

節(jié)點(diǎn)上下游配置,請(qǐng)參見(jiàn)配置節(jié)點(diǎn)上下文

效果展示

釘釘群推送內(nèi)容效果如下,僅供參考。

推送

相關(guān)文檔

在線支持

如果您在使用MaxCompute的過(guò)程中有任何疑問(wèn)或建議,單擊申請(qǐng)鏈接搜索(釘釘群號(hào):11782920)加入釘釘群進(jìn)行反饋。