全部產品
Search
文件中心

DataWorks:進階:商品訂單暢銷類目分析

更新時間:Nov 14, 2025

DataWorks基於MaxCompute、Hologres、EMR、AnalyticDB、CDP等巨量資料引擎,為資料倉儲、資料湖、湖倉一體等解決方案提供統一的全鏈路巨量資料開發治理平台。本文以DataWorks的部分核心功能為例,指導您使用DataWorks接入資料並進行業務處理、周期調度以及資料視覺效果。

入門簡介

本教程以電商情境為例,示範如何構建從未經處理資料接入→資料分析計算→可視化輸出的完整資料管道,通過標準化的開發流程,快速搭建可複用的資料生產鏈路,保證調度可靠性與營運可觀測性。使業務人員無需深入技術細節即可完成資料價值轉換,降低企業巨量資料應用門檻。

通過本教程,您可以快速完成以下操作。

  1. 資料同步:通過DataWorks的Data Integration模組,建立離線同步任務,將業務資料同步至巨量資料計算平台(如MaxCompute)。

  2. 資料清洗:在DataWorks的資料開發模組中,對業務資料進行處理、分析和挖掘。

  3. 資料展示:在DataWorks的資料分析模組中,將分析結果轉化為圖表,便於業務人員理解。

  4. 周期性調度:為資料同步和資料清洗流程配置周期性調度,使其定時執行。

image

本教程從公開資料來源同步原始商品和訂單資料至MaxCompute中,通過如下資料分析流程,產出每日最暢銷商品類目排名:

前提條件

為確保本教程可以順利進行,推薦使用阿里雲主帳號或具備AliyunDataWorksFullAccess許可權的RAM使用者。具體操作,請參見準備阿里雲帳號(主帳號)準備RAM使用者(子帳號)

說明

DataWorks提供了完善的許可權管控機制,支援在產品級與模組層級對許可權進行管控,如果您需要更精細的許可權控制,請參見DataWorks許可權體系功能概述

準備工作

開通DataWorks

本教程以華東2(上海)地區為例,介紹DataWorks快速入門,您需要登入DataWorks管理主控台,切換至華東2(上海)地區,查看該地區是否開通DataWorks。

說明

本教程以華東2(上海)為例,在實際使用中,請根據實際業務資料所在位置確定開通地區:

  • 如果您的業務資料位元於阿里雲的其他雲端服務,請選擇與其相同的地區。

  • 如果您的業務在本地,需要通過公網訪問,請選擇與您實際地理位置較近的地區,以降低訪問延遲。

全新使用者

如果您為新使用者,首次使用DataWorks,將顯示如下內容,表示當前地區尚未開通DataWorks,需要單擊0元組合購買

image

  1. 配置組合購買頁相關參數。

    參數

    說明

    樣本

    地區

    選擇需要開通DataWorks的地區。

    華東2(上海)

    DataWorks版本

    選擇需要購買的DataWorks版本。

    說明

    本教程以基礎版為例,所有版本均可體驗本教程所涉及的功能,您可以參考DataWorks各版本功能詳情,根據實際業務需要,選擇合適的DataWorks版本。

    基礎版

  2. 單擊確認訂單並支付,完成後續支付。

開通過但已到期

如果您在華東2(上海)地區曾經開通過DataWorks,但DataWorks版本已到期,則會出現如下提示,需要單擊購買版本

image

  1. 配置購買頁相關參數。

    參數

    說明

    樣本

    版本

    選擇需要購買的DataWorks版本。

    說明

    本教程以基礎版為例,所有版本均可體驗本教程所涉及的功能,您可以參考DataWorks各版本功能詳情,根據實際業務需要,選擇合適的DataWorks版本。

    基礎版

    地區

    選擇需要開通DataWorks的地區。

    華東2(上海)

  2. 單擊立即購買,完成後續支付。

重要

您在購買DataWorks版本後,如未找到相關DataWorks版本,可進行以下操作:

  • 等待幾分鐘重新整理頁面,系統更新可能會有延遲。

  • 查看所在地區是否與購買DataWorks版本地區一致,防止因地區選擇問題,未找到相關DataWorks版本。

已開通

如果您在華東2(上海)地區已開通DataWorks,將會進入DataWorks概覽頁,可直接進行下一步。

建立工作空間

  1. 前往DataWorks工作空間列表頁,切換至華東2(上海)地區,單擊建立工作空間

  2. 建立工作空間頁面,自訂工作空間名稱,開啟使用新版資料開發(Data Studio),然後單擊建立工作空間

    說明

    2025年02月18日後,主帳號在華東2(上海)地區首次開通DataWorks並建立工作空間時,預設啟用新版資料開發,介面將不展示使用新版資料開發(Data Studio)參數。

建立資源群組並綁定工作空間

  1. 前往DataWorks資源群組列表頁,切換至華東2(上海)地區,單擊建立資源群組

  2. 在資源群組購買頁面,配置如下參數。

    參數

    說明

    資源群組名稱

    自訂。

    Virtual Private Cloud交換器(V-Switch)

    選擇已有的VPC和交換器,如當前地區沒有,請單擊參數說明中對應的控制台連結前往建立。

    服務關聯角色

    根據頁面提示,建立AliyunServiceRoleForDataWorks服務關聯角色

  3. 單擊立即購買,完成後續支付。

  4. 前往DataWorks資源群組列表頁,切換至華東2(上海)地區,找到已建立的資源群組,單擊操作列的綁定工作空間

  5. 綁定工作空間頁面,找到已建立的DataWorks工作空間,單擊其操作列的綁定

為資源群組開通公網

本教程使用的電商平台公開測試業務資料需要通過公網擷取,而上一步建立的通用型資源群組預設不具備公網訪問能力,需要為資源群組綁定的VPC配置公網NAT Gateway添加EIP使其與公開資料的網路打通,從而擷取資料。

  1. 登入專用網路-公網NAT Gateway控制台,在頂部功能表列切換至華東2(上海)地區,單擊建立公網NAT Gateway。配置相關參數。

    說明

    表中未說明的參數保持預設值即可。

    參數

    取值

    地區

    華東2(上海)。

    網路及可用性區域

    選擇資源群組綁定的VPC和交換器。

    您可以前往DataWorks資源群組列表頁,切換至華東2(上海)地區,找到已建立的資源群組,然後單擊操作列的網路設定,在資料調度 & Data Integration地區查看綁定專用網路交換器。VPC和交換器的更多資訊,請參見什麼是Virtual Private Cloud

    網路類型

    公網NAT Gateway。

    Elastic IP Address

    新購Elastic IP Address。

    關聯角色建立

    首次建立NAT Gateway時,需要建立服務關聯角色,請單擊建立關聯角色

  2. 單擊立即購買,完成後續支付,建立NAT Gateway執行個體。

    image

  3. NAT Gateway執行個體購買成功後,單擊返回控制台,為剛購買的NAT Gateway執行個體建立SNAT條目。

    說明

    只有配置了SNAT條目後,使用該VPC的資源群組才能訪問公網。

    1. 單擊新購執行個體操作列的管理按鈕,進入目標NAT Gateway執行個體的管理頁面,並切至SNAT管理頁簽

    2. SNAT條目列表下單擊建立SNAT條目按鈕,建立NAT條目,以下為關鍵配置:

      參數

      取值

      SNAT條目粒度

      選擇VPC粒度,確保NAT Gateway所屬VPC內的所有資源群組都可通過配置的Elastic IP Address訪問公網。

      選擇Elastic IP Address地址

      配置當前NAT Gateway執行個體綁定的Elastic IP Address地址。

      完成SNAT條目參數配置後,單擊確定建立按鈕,建立SNAT條目。

    SNAT條目列表下,當新建立的SNAT條目的狀態變成可用即表示資源群組綁定的VPC已具備公網訪問能力。

建立並綁定MaxCompute計算資源

本教程需要建立MaxCompute專案並將其綁定為DataWorks計算資源,用於後續接收資料並進行巨量資料分析。

  1. 前往DataWorks工作空間列表頁,切換至華東2(上海)地區,找到已建立的工作空間,單擊工作空間名稱,進入空間詳情頁。

  2. 在左側導覽列單擊計算資源,進入計算資源頁面,單擊綁定計算資源,選擇MaxCompute類型。配置如下關鍵參數,建立MaxCompute專案並將其綁定為DataWorks的計算資源。

    說明

    表中未說明的參數保持預設值即可。

    參數

    描述

    MaxCompute專案

    在下拉選擇框中單擊建立,填寫如下參數。

    • 專案名稱:自訂,全網唯一。

    • 計算資源付費類型:選擇隨用隨付

      說明

      如果隨用隨付不可選,請單擊隨用隨付後的去開通,完成MaxCompute服務的開通。

    • 預設Quota:下拉選擇預設已存在的Quota。

    預設訪問身份

    選擇阿里雲主帳號

    計算資源執行個體名

    在後續任務運行時,通過計算資源執行個體名稱來選擇任務啟動並執行計算資源,方便識別,例如本教程命名為MaxCompute_Source

  3. 單擊確認

操作步驟

本文以如下情境為例,指導您快速體驗DataWorks的相關功能:

假設某一電商平台將商品資訊、訂單資訊儲存在MySQL資料庫中,需要定期對訂單資料進行分析,通過可視化的方式查看每日最暢銷商品類目排名表。

一、資料同步

建立資料來源

DataWorks通過建立資料來源的方式,接入資料來源和資料去向,本步驟需要建立MySQL資料來源,用於串連資料來源(儲存業務資料的MySQL資料庫),為本教程提供原始業務資料。

說明

您無需準備本教程使用的原始業務資料,為方便測試和學習,DataWorks為您提供測試資料集,相關表資料已儲存在公網MySQL資料庫中,您只需建立MySQL資料來源接入即可。

  1. 前往DataWorks管理中心頁,切換至華東2(上海)地區,在下拉框中選擇已建立的工作空間後,單擊進入管理中心

  2. 在左側導覽列單擊資料來源,進入資料來源列表頁,單擊新增資料來源,選擇MySQL類型,配置MySQL資料來源相關參數。

    說明
    • 表中未說明的參數保持預設值即可。

    • 首次新增資料來源時,需要完成跨服務授權,請根據頁面提示,授權服務關聯角色AliyunDIDefaultRole

    參數

    描述

    資料來源名稱

    本樣本為MySQL_Source

    配置模式

    選擇串連串模式

    串連地址

    • 主機地址IP:rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com

    • 連接埠號碼:3306

    重要

    本教程提供的資料僅作為阿里雲巨量資料開發治理平台 DataWorks資料應用實操使用,所有資料均為測試資料,並且僅支援在Data Integration模組讀取資料。

    資料庫名稱

    配置為retail_e_commerce

    使用者名稱

    輸入使用者名稱workshop

    密碼

    輸入密碼workshop#2017

  3. 串連配置地區,切換至Data Integration頁簽,找到工作空間已綁定的資源群組,單擊連通狀態列的測試連通性

    說明

    如果MySQL資料來源連通性測試失敗,請進行以下操作:

    • 完成連通性診斷工具後續操作。

    • 請檢查是否為資源群組綁定的VPC配置EIP,MySQL資料來源需要資源群組具備公網訪問能力。詳情請參見為資源群組開通公網

  4. 單擊完成建立

搭建同步鏈路

本步驟需要搭建同步鏈路,將電商平台商品訂單資料同步至MaxCompute的表中,為後續加工資料做準備。

  1. 單擊左上方的表徵圖表徵圖,選擇全部產品 > 資料開發與營運 > DataStudio(資料開發),進入資料開發頁面。

  2. 在頁面頂部切換至本教程建立好的工作空間,在左側導覽列單擊image,進入資料開發-專案目錄頁面。

  3. 專案目錄地區,單擊image,選擇建立工作流程,設定工作流程名稱。本教程設定為dw_quickstart

  4. 在工作流程編排頁面,從左側拖拽虛擬節點離線同步節點至畫布中,分別設定節點名稱。

    本教程節點名稱樣本及作用如下:

    節點類型

    節點名稱

    節點作用

    image虛擬節點

    workshop

    用於統籌管理整個使用者Portrait analysis工作流程,可使資料流轉路徑更清晰。該節點為空跑任務,無須編輯代碼。

    image離線同步節點

    ods_item_info

    用於將儲存於MySQL的商品資訊源表item_info同步至MaxCompute的ods_item_info表。

    image離線同步節點

    ods_trade_order

    用於將儲存於MySQL的訂單資訊源表trade_order同步至MaxCompute的ods_trade_order表。

    手動拖拽連線,將workshop節點設定為兩個離線同步節點的上遊節點。最終效果如下:

  5. 工作流程調度配置。

    在工作流程編排頁面右側單擊調度配置,配置相關參數。以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。

    調度配置參數

    說明

    調度參數

    為整個工作流程設定調度參數,工作流程中的內部節點可直接使用。

    本教程配置為bizdate=$[yyyymmdd-1],擷取前一天的日期。

    說明

    DataWorks提供的調度參數,可實現代碼動態入參,您可在SQL代碼中通過${變數名}的方式定義代碼中的變數,並在調度配置 > 調度參數處,為該變數賦值。調度參數支援的格式,詳情請參見調度參數支援的格式

    調度周期

    本教程配置為

    調度時間

    本教程配置調度時間00:30,該工作流程會在每日00:30啟動。

    周期依賴

    工作流程無上遊依賴,可不配置。為了方便統一管理,您可以單擊使用工作空間根節點,將工作流程掛載到工作空間根節點下。

    工作空間根節點命名格式為:工作空間名_root

配置同步任務

配置初始節點
  1. 在工作流程編排頁面中,滑鼠移至上方至workshop節點上,單擊開啟節點

  2. workshop節點編輯頁面右側單擊調度配置,配置相關參數。以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。

    調度配置參數

    說明

    調度類型

    本教程配置為空跑調度

    調度資源群組

    本教程配置為建立資源群組並綁定工作空間時建立的Serverless資源群組。

    節點依賴配置

    由於workshop為初始節點,無上遊依賴,此時可以單擊使用工作空間根節點,由工作空間根節點觸發工作流程執行。

    工作空間根節點命名為:工作空間名_root

  3. 在節點工具列單擊儲存,儲存節點。

配置商品資訊同步鏈路(ods_item_info)
  1. 在工作流程編排頁面中,滑鼠移至上方至ods_item_info節點上,單擊開啟節點

  2. 配置同步鏈路網路與資源。

    參數

    描述

    資料來源

    • 資料來源:MySQL

    • 資料來源名稱:MySQL_Source

    我的資源群組

    選擇建立資源群組並綁定工作空間時購買的Serverless資源群組。

    資料去向

  3. 單擊下一步,配置同步任務。

    1. 配置資料來源與去向

      說明

      表中未說明的參數保持預設值即可。

      配置地區

      參數

      配置說明

      資料來源

      item_info

      資料去向

      單擊一鍵產生目標表結構快速建立MaxCompute表。將如下建表語句粘貼至建表語句地區,單擊建立表。該表用於接收資料來源端的商品資訊。

      建表SQL

      CREATE TABLE IF NOT EXISTS ods_item_info(
        `id`                              BIGINT COMMENT '',
        `cate_id`                         BIGINT COMMENT '',
        `cate_name`                       STRING COMMENT '',
        `commodity_id`                    BIGINT COMMENT '',
        `commodity_name`                  STRING COMMENT '',
        `desc_path`                       STRING COMMENT '',
        `duration`                        BIGINT COMMENT '',
        `features`                        STRING COMMENT '',
        `gmt_create`                      DATETIME COMMENT '',
        `gmt_modified`                    DATETIME COMMENT '',
        `is_deleted`                      BIGINT COMMENT '',
        `is_virtual`                      STRING COMMENT '',
        `item_id`                         BIGINT COMMENT '',
        `item_status`                     BIGINT COMMENT '',
        `last_offline_time`               DATETIME COMMENT '',
        `last_online_quantity`            BIGINT COMMENT '',
        `last_online_time`                DATETIME COMMENT '',
        `pict_url`                        STRING COMMENT '',
        `reserve_price`                   DECIMAL(38,18) COMMENT '',
        `secure_trade_ems_post_fee`       DECIMAL(38,18) COMMENT '',
        `secure_trade_fast_post_fee`      DECIMAL(38,18) COMMENT '',
        `secure_trade_ordinary_post_fee`  DECIMAL(38,18) COMMENT '',
        `shop_id`                         BIGINT COMMENT '',
        `shop_nick`                       STRING COMMENT '',
        `sub_title`                       STRING COMMENT '',
        `title`                           STRING COMMENT ''
      )
      COMMENT ''
      PARTITIONED BY (pt STRING) 
      lifecycle 36500;

      分區資訊

      本教程填入${bizdate},用於在後續測試階段為bizdate參數賦值常量,在調度執行時為bizdate參數動態賦值。Data Studio支援的變數格式及配置方法,請參見調度參數

    2. 確認欄位對應通道控制

      DataWorks通過配置源端與目標端欄位對應關係,實現源端指定欄位資料寫入目標端指定欄位,同時支援設定任務並發數、髒資料策略等。本教程髒資料策略配置為不容忍髒資料,其他配置保持預設。更多資訊,請參見嚮導模式配置

  4. 在節點工具列單擊儲存,儲存節點。

配置訂單資料同步鏈路(ods_trade_order
  1. 在工作流程編排頁面中,滑鼠移至上方至ods_trade_order節點上,單擊開啟節點

  2. 配置同步鏈路網路與資源。

    參數

    描述

    資料來源

    • 資料來源:MySQL

    • 資料來源名稱:MySQL_Source

    我的資源群組

    選擇建立資源群組並綁定工作空間時購買的Serverless資源群組。

    資料去向

  3. 單擊下一步,配置同步任務。

    1. 配置資料來源與去向

      說明

      表中未說明的參數保持預設值即可。

      配置地區

      參數

      配置說明

      資料來源

      trade_order

      資料去向

      單擊一鍵產生目標表結構快速建立MaxCompute表。將如下建表語句粘貼至建表語句地區,單擊建立表。該表用於接收資料來源端的商品資訊。

      建表SQL

      CREATE TABLE IF NOT EXISTS ods_trade_order(
        `id`                BIGINT COMMENT '',
        `biz_type`          BIGINT COMMENT '',
        `buy_amount`        BIGINT COMMENT '',
        `buyer_id`          BIGINT COMMENT '',
        `buyer_memo`        STRING COMMENT '',
        `buyer_nick`        STRING COMMENT '',
        `end_time`          DATETIME COMMENT '',
        `gmt_create`        DATETIME COMMENT '',
        `gmt_modified`      DATETIME COMMENT '',
        `ip`                STRING COMMENT '',
        `is_parent`         BIGINT COMMENT '',
        `is_sub`            BIGINT COMMENT '',
        `item_id`           BIGINT COMMENT '',
        `item_price`        DECIMAL(38,18) COMMENT '',
        `logistics_status`  BIGINT COMMENT '',
        `memo`              STRING COMMENT '',
        `parent_order_id`   BIGINT COMMENT '',
        `pay_status`        BIGINT COMMENT '',
        `pay_time`          DATETIME COMMENT '',
        `seller_memo`       STRING COMMENT '',
        `shop_id`           BIGINT COMMENT '',
        `status`            BIGINT COMMENT '',
        `sub_order_id`      BIGINT COMMENT '',
        `total_fee`         DECIMAL(38,18) COMMENT ''
      )
      COMMENT ''
      PARTITIONED BY (pt STRING) 
      lifecycle 36500;

      分區資訊

      本教程填入${bizdate},用於在後續測試階段為bizdate參數賦值常量,在調度執行時為bizdate參數動態賦值。Data Studio支援的變數格式及配置方法,請參見調度參數

    2. 確認欄位對應通道控制

      DataWorks通過配置源端與目標端欄位對應關係,實現源端指定欄位資料寫入目標端指定欄位,同時支援設定任務並發數、髒資料策略等。本教程髒資料策略配置為不容忍髒資料,其他配置保持預設。更多資訊,請參見嚮導模式配置

  4. 在節點工具列單擊儲存,儲存節點。

二、資料清洗

資料從MySQL同步至MaxCompute後,獲得兩張資料表(商品資訊表ods_item_info和訂單資訊表ods_trade_order),您可以在DataWorks的資料開發模組對錶中資料進行清洗、處理和分析,從而擷取每日最暢銷商品類目排名表。

搭建資料加工鏈路

  1. 在Data Studio左側導覽列單擊image,進入資料開發頁面,然後在專案目錄地區找到已建立好的工作流程,單擊進入工作流程編排頁,從左側拖拽MaxCompute SQL節點至畫布中,分別設定節點名稱。

    本教程節點名稱樣本及作用如下:

    節點類型

    節點名稱

    節點作用

    imageMaxCompute SQL

    dim_item_info

    基於ods_item_info表,處理商品維度資料,產出商品基礎資訊維度資料表dim_item_info

    imageMaxCompute SQL

    dwd_trade_order

    基於ods_trade_order表,對訂單的詳細交易資料進行初步清洗、轉換和商務邏輯處理,產出交易下單明細事實表dwd_trade_order

    imageMaxCompute SQL

    dws_daily_category_sales

    基於dwd_trade_order表和dim_item_info表,對DWD層經過清洗和標準化的詳細資料進行匯總,產出每日商品類目銷售匯總表dws_daily_category_sales

    imageMaxCompute SQL

    ads_top_selling_categories

    基於dws_daily_category_sales表,產出每日最暢銷商品類目排名表ads_top_selling_categories

  2. 手動拖拽連線,配置各節點的上遊節點。最終效果如下:

    說明

    工作流程中支援通過手動連線方式設定各節點的上下遊依賴關係,也支援在子節點中,使用代碼解析自動識別節點上下遊依賴關係。本教程採用手動連線方式,代碼解析的更多資訊,請參見自動解析依賴

配置資料加工節點

配置dim_item_info節點

基於ods_item_info表,處理商品維度資料,產出商品基礎資訊維度資料表dim_item_info

  1. 在工作流程編排頁面中,滑鼠移至上方至dim_item_info節點上,單擊開啟節點

  2. 將如下代碼粘貼至節點編輯頁面。

    CREATE TABLE IF NOT EXISTS dim_item_info (
        gmt_modified                   STRING COMMENT '商品最後修改日期',
        gmt_create                     STRING COMMENT '商品建立時間',
        item_id                        BIGINT COMMENT '商品數字ID',
        title                          STRING COMMENT '商品標題',
        sub_title                      STRING COMMENT '商品子標題',
        pict_url                       STRING COMMENT '主圖URL',
        desc_path                      STRING COMMENT '商品描述的路徑',
        item_status                    BIGINT COMMENT '商品狀態1:確認通過0:未確認通過',
        last_online_time               DATETIME COMMENT '最近一次開始銷售時間,商品上架時間',
        last_offline_time              DATETIME COMMENT '銷售結束時間,表示一個銷售周期的結束,僅作用於拍賣商品',
        duration                       BIGINT COMMENT '有效期間,銷售周期,只有兩個值,7天或14天',
        reserve_price                  DOUBLE COMMENT '當前價格',
        secure_trade_ordinary_post_fee DOUBLE COMMENT '平郵費用',
        secure_trade_fast_post_fee     DOUBLE COMMENT '快遞費用',
        secure_trade_ems_post_fee      DOUBLE COMMENT 'EMS郵費',
        last_online_quantity           BIGINT COMMENT '商品最近一次上架時的庫存數量',
        features                       STRING COMMENT '商品特徵',
        cate_id                        BIGINT COMMENT '商品葉子類目ID',
        cate_name                      STRING COMMENT '商品葉子類目名稱',
        commodity_id                   BIGINT COMMENT '品類ID',
        commodity_name                 STRING COMMENT '品類名稱',
        is_virtual                     STRING COMMENT '是否虛擬商品',
        shop_id                        BIGINT COMMENT '商家ID',
        shop_nick                      STRING COMMENT '商家NICK',
        is_deleted                     BIGINT COMMENT '類目是否刪除'
    )
    COMMENT '商品基礎資訊維度資料表'
    PARTITIONED BY (pt STRING COMMENT '業務日期, yyyymmdd')
    LIFECYCLE 365;
    
    
    -- 插入資料到 dim_item_info 表
    INSERT OVERWRITE TABLE dim_item_info PARTITION(pt='${bizdate}')
    SELECT
        gmt_create,
        gmt_modified,
        item_id,
        title,
        sub_title,
        pict_url,
        desc_path,
        item_status,
        last_online_time,
        last_offline_time,
        duration,
        cast(reserve_price as DOUBLE),
        cast(secure_trade_ordinary_post_fee as DOUBLE),
        cast(secure_trade_fast_post_fee as DOUBLE),
        cast(secure_trade_ems_post_fee as DOUBLE),
        last_online_quantity,
        features,
        cate_id,
        cate_name,
        commodity_id,
        commodity_name,
        is_virtual,
        shop_id,
        shop_nick,
        is_deleted
    FROM ods_item_info
    WHERE pt = '${bizdate}';
  3. 配置調試參數。

    在MaxCompute SQL節點編輯頁面右側單擊調試配置

  4. 在節點工具列單擊儲存,儲存節點。

配置dwd_trad_order節點

基於ods_trade_order表,對訂單的詳細交易資料進行初步清洗、轉換和商務邏輯處理,產出交易下單明細事實表dwd_trade_order

  1. 在工作流程編排頁面中,滑鼠移至上方至dwd_trade_order節點上,單擊開啟節點

  2. 將如下代碼粘貼至節點編輯頁面。

    CREATE TABLE IF NOT EXISTS dwd_trade_order (
        id               BIGINT COMMENT '主鍵,去重後的最新id',
        gmt_create       DATETIME COMMENT '建立時間',
        gmt_modified     DATETIME COMMENT '修改時間',
        sub_order_id     BIGINT COMMENT '子訂單ID',
        parent_order_id  BIGINT COMMENT '父訂單ID',
        buyer_id         BIGINT COMMENT '買家數字id',
        buyer_nick       STRING COMMENT '買家暱稱,處理空值',
        item_id          BIGINT COMMENT '商品數字id',
        item_price       DECIMAL(38,18) COMMENT '商品價格,單位分',
        buy_amount       BIGINT COMMENT '購買數量',
        biz_type         BIGINT COMMENT '交易類型',
        memo             STRING COMMENT '備忘,處理空值',
        pay_status       BIGINT COMMENT '支付狀態',
        logistics_status BIGINT COMMENT '物流狀態',
        status           BIGINT COMMENT '狀態',
        seller_memo      STRING COMMENT '賣家的給交易的備忘',
        buyer_memo       STRING COMMENT '買家給交易的備忘',
        clean_ip         STRING COMMENT '清洗後的買家IP,過濾無效格式',
        end_time         DATETIME COMMENT '交易結束時間',
        pay_time         DATETIME COMMENT '付款的時間',
        is_sub           BIGINT COMMENT '是否是子訂單1表示子訂單',
        is_parent        BIGINT COMMENT '是否是父訂單1表示父訂單',
        shop_id          BIGINT COMMENT '商家id',
        total_fee        DECIMAL(38,18) COMMENT '去除折扣和調整後的子訂單費用',
        is_large_order_flag BOOLEAN COMMENT '是否為大額訂單標誌'
    )
    COMMENT '交易下單明細事實表,包含初步清洗和商務邏輯處理'
    PARTITIONED BY (pt STRING COMMENT '業務日期, yyyymmdd')
    LIFECYCLE 365; -- 資料生命週期設定為365天
    
    
    INSERT OVERWRITE TABLE dwd_trade_order PARTITION(pt='${bizdate}')
    SELECT
        MAX(id) AS id, -- 假設使用最新的id作為去重標準
        gmt_create,
        gmt_modified,
        sub_order_id,
        parent_order_id,
        buyer_id,
        COALESCE(buyer_nick, '') AS buyer_nick, -- 處理buyer_nick為空白的情況
        item_id,
        item_price,
        buy_amount,
        biz_type,
        COALESCE(memo, '') AS memo, -- 處理memo為空白的情況
        pay_status,
        logistics_status,
        status,
        seller_memo,
        buyer_memo,
        CASE 
            WHEN ip LIKE '__.__.__.__' THEN NULL -- 過濾無效IP格式
            ELSE ip 
        END AS clean_ip,
        end_time,
        pay_time,
        is_sub,
        is_parent,
        shop_id,
        total_fee,
        CASE 
            WHEN total_fee >= 10000 THEN TRUE -- 假設大於10000分的訂單為大額訂單
            ELSE FALSE 
        END AS is_large_order_flag -- 添加商務邏輯標誌
    FROM (
        SELECT
            *,
            ROW_NUMBER() OVER(PARTITION BY buyer_id, item_id, gmt_create ORDER BY id DESC) AS rn -- 用於去重的行號
        FROM ods_trade_order
        WHERE pt = '${bizdate}'
    ) AS sub_query
    WHERE rn = 1 -- 僅保留每個去重組的第一條記錄
    GROUP BY 
        gmt_create,
        gmt_modified,
        sub_order_id,
        parent_order_id,
        buyer_id,
        buyer_nick,
        item_id,
        item_price,
        buy_amount,
        biz_type,
        memo,
        pay_status,
        logistics_status,
        status,
        seller_memo,
        buyer_memo,
        clean_ip,
        end_time,
        pay_time,
        is_sub,
        is_parent,
        shop_id,
        total_fee,
        is_large_order_flag;
  3. 配置調試參數。

    在MaxCompute SQL節點編輯頁面右側單擊調試配置

  4. 在節點工具列單擊儲存,儲存節點。

配置dws_daily_category_sales節點

基於dwd_trade_order表和dim_item_info表,對DWD層經過清洗和標準化的詳細資料進行匯總,產出每日商品類目銷售匯總表dws_daily_category_sales

  1. 在工作流程編排頁面中,滑鼠移至上方至dws_daily_category_sales節點上,單擊開啟節點

  2. 將如下代碼粘貼至節點編輯頁面。

    CREATE TABLE IF NOT EXISTS dws_daily_category_sales (
        cate_id             BIGINT COMMENT '商品葉子類目ID',
        cate_name           STRING COMMENT '商品葉子類目名稱',
        total_sales_amount  DECIMAL(38,18) COMMENT '商品類目總銷售額,單位分',
        order_count         BIGINT COMMENT '訂單數量'
    )
    COMMENT '每日商品類目銷售匯總表'
    PARTITIONED BY (pt STRING COMMENT '業務日期, yyyymmdd')
    LIFECYCLE 365;
    
    
    INSERT OVERWRITE TABLE dws_daily_category_sales PARTITION(pt='${bizdate}')
    SELECT
        i.cate_id,
        i.cate_name,
        SUM(t.total_fee) AS total_sales_amount,
        COUNT(DISTINCT t.id) AS order_count
    FROM dwd_trade_order t
    JOIN dim_item_info i ON t.item_id = i.item_id AND t.pt = i.pt
    WHERE t.pt = '${bizdate}'
    GROUP BY t.pt, i.cate_id, i.cate_name;
  3. 配置調試參數。

    在MaxCompute SQL節點編輯頁面右側單擊調試配置

  4. 在節點工具列單擊儲存,儲存節點。

配置ads_top_selling_categories節點

基於dws_daily_category_sales表,產出每日最暢銷商品類目排名表ads_top_selling_categories

  1. 在工作流程編排頁面中,滑鼠移至上方至ads_top_selling_categories節點上,單擊開啟節點

  2. 將如下代碼粘貼至節點編輯頁面。

    CREATE TABLE IF NOT EXISTS ads_top_selling_categories (
        rank                BIGINT COMMENT '銷量排名',
        cate_id             BIGINT COMMENT '商品葉子類目ID',
        cate_name           STRING COMMENT '商品葉子類目名稱',
        total_sales_amount  DECIMAL(38,18) COMMENT '商品類目總銷售額,單位分',
        order_count         BIGINT COMMENT '訂單數量'
    )
    COMMENT '每日最暢銷商品類目排名表'
    PARTITIONED BY (pt STRING COMMENT '業務日期, yyyymmdd');
    
    
    INSERT OVERWRITE TABLE ads_top_selling_categories PARTITION(pt='${bizdate}')
    SELECT
        rank,
        cate_id,
        cate_name,
        total_sales_amount,
        order_count
    FROM (
        SELECT
            DENSE_RANK() OVER(ORDER BY total_sales_amount DESC) AS rank,
            cate_id,
            cate_name,
            total_sales_amount,
            order_count
        FROM (
            SELECT
                cate_id,
                cate_name,
                SUM(total_sales_amount) AS total_sales_amount,
                SUM(order_count) AS order_count
            FROM dws_daily_category_sales
            WHERE pt = '${bizdate}'
            GROUP BY cate_id, cate_name
        ) agg_sub
    ) agg_outer
    WHERE rank <= 10;
  3. 配置調試參數。

    在MaxCompute SQL節點編輯頁面右側單擊調試配置

  4. 在節點工具列單擊儲存,儲存節點。

三、調試運行

工作流程配置完成後,在發布到生產環境前,您需要運行整個工作流程,驗證工作流程的配置是否正確。

  1. 在Data Studio左側導覽列單擊image,進入資料開發頁面,然後在專案目錄地區找到已建立好的工作流程。

  2. 單擊節點工具列的運行,填寫本次運行值為當前日期的前一天(例如20250416)。

    說明

    在工作流程節點配置中,已使用了DataWorks提供的調度參數,實現了代碼動態入參,調試運行時需為該參數賦值常量進行測試。

  3. 單擊確定,進入調試運行頁面。

  4. 等待運行完成,預期運行結果如下:

    image

四、資料查詢與展示

您已經將從MySQL中擷取的原始測試資料,經過資料開發處理,匯總於表ads_top_selling_categories中,現在可查詢表資料,查看資料分析後的結果。

  1. 單擊左上方image表徵圖,在彈出頁面中單擊全部產品 > 資料分析 > SQL查詢

  2. 在我的檔案後單擊image > 建立檔案,自訂檔案名稱後單擊確定

  3. 在SQL查詢頁面,配置如下SQL。

    SELECT * FROM ads_top_selling_categories WHERE pt=${bizdate};
  4. 在右上方選擇MaxCompute資料來源後單擊確定

  5. 單擊頂部的運行按鈕,在成本預估頁面,單擊運行

  6. 在查詢結果中單擊image,查看可視化圖表結果,您可以單擊圖表右上方的image自訂圖表樣式。

  7. 您也可以單擊圖表右上方儲存,將圖表儲存為卡片,然後在左側導覽列單擊卡片image)查看。

五、周期性調度

通過完成前文操作步驟,您已經擷取了前一天各類商品的銷售資料,但是,如果需要每天擷取最新的銷售資料,則可以將工作流程發布至生產環境,使其周期性定時執行。

說明

在配置資料同步和資料加工時,已同步為工作流程、同步節點以及資料加工節點配置了調度相關參數,此時無需再配置,只需將工作流程發布到生產環境即可。調度配置的更多詳細資料,請參見節點調度配置

  1. 單擊左上方image表徵圖,在彈出頁面中單擊全部產品 > 資料開發與營運 > DataStudio(資料開發)

  2. 在Data Studio左側導覽列單擊image,進入資料開發頁面,切換至本案例使用的專案空間,然後在專案目錄地區找到已建立好的工作流程。

  3. 單擊節點工具列的發布,在發布面板中單擊開始發布生產,等待發布包構建生產檢查器完成後,單擊確認發布

  4. 發布到生產環境狀態為已完成後,單擊去營運,前往營運中心。

    image

  5. 周期任務營運 > 周期任務中即可看到工作流程的周期任務(本教程工作流程命名為dw_quickstart)。

  6. 如需查看工作流程內子節點的周期任務詳情,請右鍵工作流程的周期任務,選擇查看內部任務。

    image

    預期結果如下:

    image

下一步

附錄:資源釋放與清理

如果您需要釋放本次教程所建立的資源,具體操作步驟如下:

  1. 停止周期任務。

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

    2. 周期任務營運 > 周期任務中,勾選所有之前建立的周期任務(工作空間root節點無需下線),然後在底部單擊操作 > 下線節點

  2. 刪除資料開發節點並解除綁定MaxCompute計算資源。

    1. 進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的快速進入 > Data Studio,進入Data Studio。

    2. 在Data Studio左側導覽列單擊image,進入資料開發頁面,然後在專案目錄地區找到已建立好的工作流程,右鍵工作流程,單擊刪除

    3. 在左側導覽列,單擊image > 計算資源管理,找到已綁定的MaxCompute計算資源,單擊解除綁定。在確認視窗中勾選選項後按照指引完成解除綁定。

  3. 刪除MySQL資料來源。

    1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的更多 > 管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心

    2. 在左側導覽列單擊資料來源,進入資料來源列表頁,找到已建立的MySQL資料來源,單擊操作列的刪除,按照指引完成刪除。

  4. 刪除MaxCompute專案。

    前往MaxCompute專案管理頁面,找到已建立的MaxCompute專案,單擊操作列的刪除,按照指引完成刪除。

  5. 刪除公網NAT Gateway並釋放Elastic IP Address。

    1. 前往專用網路-公網NAT Gateway控制台,在頂部功能表列切換至華東2(上海)地區。

    2. 找到已建立的公網NAT Gateway,單擊操作列的image > 刪除,在確認視窗中,勾選強制移除,然後單擊確定

    3. 在左側導覽列單擊公網訪問 > Elastic IP Address,找到已建立的Elastic IP Address,單擊操作列中image > 執行個體管理 > 釋放,在確認視窗中單擊確定