全部產品
Search
文件中心

DataWorks:加工資料

更新時間:Jun 13, 2025

本文為您介紹如何通過DataWorks加工採集至MaxCompute的資料,並擷取清洗後的資料。

前提條件

開始本文的操作前,請首先完成準備資料中的操作。

建立表

  1. 進入資料開發頁面。

    登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料開發與營運 > 資料開發,在下拉框中選擇對應工作空間後單擊進入資料開發

  2. 資料開發頁面,展開目標商務程序。

  3. 按右鍵MaxCompute,選擇建立表

  4. 建立表對話方塊中,輸入表名稱,單擊建立

    重要

    表名必須以字母開頭,不能包含中文或特殊字元,且不能超過64個字元。

    此處需要建立的資料表,如下所示:

    • 建立三張表,分別儲存同步過來的電量下降趨勢資料、指標資料和竊電標誌資料清洗之後的資料(clean_trend_dataclean_indicators_dataclean_steal_flag_data)。

    • 建立表data4ml,儲存匯聚後的資料。

  5. 開啟建立的表,單擊DDL,分別輸入以下相應的建表語句。

    --清洗後的電量下降趨勢資料
    CREATE TABLE clean_trend_data (
        uid bigint,
        trend bigint
    )
    PARTITIONED BY (dt string)
    LIFECYCLE 7;
    --清洗後的指標資料
    CREATE TABLE clean_indicators_data (
        uid bigint,
        xiansun bigint,
        warnindicator bigint
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
    --清洗後的竊電標誌資料
    CREATE TABLE clean_steal_flag_data (
        uid bigint,
        flag bigint
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
    --匯聚後的資料
    CREATE TABLE data4ml (
        uid bigint,
        trend bigint,
        xiansun bigint,
        warnindicator bigint,
        flag bigint
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
  6. 建表語句輸入完成後,單擊產生表結構確認覆蓋當前操作。
  7. 返回建表頁面後,在基本屬性中輸入表的中文名。
  8. 完成設定後,分別單擊提交到開發環境提交到生產環境

設計商務程序

商務程序的建立及依賴關係的配置請參見建立商務程序

進入商務程序開發面板,並向面板中拖入兩個ODPS SQL節點,依次命名為資料清洗資料匯聚

配置ODPS SQL節點

  • 配置資料清洗節點。

    1. 雙擊資料清洗節點,進入節點配置頁面。

    2. 編寫處理邏輯。

      SQL邏輯如下所示。

      INSERT OVERWRITE TABLE clean_trend_data PARTITION(dt=${bdp.system.bizdate})
      SELECTuid
      ,trend
      FROMtrend_data
      WHEREtrend IS NOT NULL
      ANDuid != 0
      ANDdt = ${bdp.system.bizdate}
      ;
      
      INSERT OVERWRITE TABLE clean_steal_flag_data PARTITION(ds=${bdp.system.bizdate})
      SELECTuid
      ,flag
      FROMsteal_flag_data
      WHEREuid != 0
      ANDds = ${bdp.system.bizdate}
      ;
      
      INSERT OVERWRITE TABLE clean_indicators_data PARTITION(ds=${bdp.system.bizdate})
      SELECTuid
      ,xiansun,warnindicator
      FROMindicators_data
      WHEREuid != 0
      ANDds = ${bdp.system.bizdate}
      ;
    3. 單擊工具列中的儲存表徵圖。

  • 配置資料匯聚節點。

    1. 雙擊資料匯聚節點,進入節點配置頁面。

    2. 編寫處理邏輯。

      SQL邏輯如下所示。

      INSERT OVERWRITE TABLE data4ml PARTITION (ds=${bdp.system.bizdate})
      SELECTa.uid
      ,trend
      ,xiansun
      ,warnindicator
      ,flag
      FROM
      (
      SELECT uid,trend FROM clean_trend_data where dt=${bdp.system.bizdate}
      )a
      FULL OUTER JOIN
      (
      SELECT uid,xiansun,warnindicator FROMclean_indicators_data where ds=${bdp.system.bizdate}
      )b
      ONa.uid = b.uid
      FULL OUTER JOIN
      (
      SELECT uid,flag FROMclean_steal_flag_data where ds=${bdp.system.bizdate}
      )c
      ONb.uid = c.uid
      ;
    3. 單擊工具列中的儲存表徵圖。

提交商務程序

  1. 開啟商務程序配置面板,單擊工具列中的提交表徵圖。

  2. 選擇提交對話方塊中需要提交的節點,輸入備忘,並選中忽略輸入輸出不一致的警示

  3. 單擊確認,待顯示提交成功即可。

運行商務程序

  1. 開啟商務程序配置面板,單擊工具列中的運行表徵圖。

  2. 在左側導覽列,單擊臨時查詢

  3. 臨時查詢頁面,按右鍵臨時查詢,選擇建立節點 > ODPS SQL

  4. 編寫並執行SQL語句,查看匯入表clean_trend_dataclean_indicators_dataclean_steal_flag_datadata4ml的記錄數。

    SQL語句如下所示,其中分區列需要更新為業務日期。例如,任務啟動並執行日期為20190809,則業務日期為20190808。

    --查看是否成功寫入MaxCompute
    SELECT count(*) from clean_trend_data where dt=業務日期;
    SELECT count(*) from clean_indicators_data where ds=業務日期;
    SELECT count(*) from clean_steal_flag_data where ds=業務日期;
    SELECT count(*) from data4ml where ds=業務日期;

發布商務程序

提交商務程序後,表示任務已進入開發環境。由於開發環境的任務不會自動調度,您需要將配置完成的任務發布至生產環境。

說明

將任務發布至生產環境前,您需要對代碼進行測試,確保其正確性。

  1. 開啟商務程序配置面板,單擊工具列中的發布表徵圖。

  2. 建立發布包頁面,選中待發布的任務,單擊添加到待發布

  3. 進入右上方的待發布列表,單擊全部打包發布

  4. 發布包列表頁面查看發行的內容。

在生產環境運行任務

  1. 任務發布成功後,單擊右上方的營運中心

  2. 選擇周期任務營運 > 周期任務中的相應節點。

  3. 按右鍵DAG圖中的start節點,選擇補資料 > 當前節點及下遊節點

  4. 選中需要補資料的任務,並選擇業務日期

  5. 單擊提交

  6. 補資料執行個體頁面,單擊重新整理,直至SQL任務都運行成功即可。

後續步驟

現在,您已經學習了如何建立SQL任務、如何處理未經處理資料。您可以繼續下一個教程,學習如何通過機器學習,載入處理好的資料並構建竊漏電使用者的識別模型。