全部產品
Search
文件中心

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

更新時間:Jun 10, 2026

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

入門簡介

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

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

  1. 資料同步:通過DataWorks的Data Integration模組,建立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元組合購買

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

    參數

    說明

    樣本

    地區

    選擇需要開通DataWorks的地區。

    華東2(上海)

    DataWorks版本

    選擇需要購買的DataWorks版本。

    說明

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

    基礎版

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

開通過但已到期

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

頁面提示您必須同時保有DataWorks任意版本及隨用隨付資源,其中紅色叉號表示當前地區未保有DataWorks任意版本,綠色勾號表示當前地區已保有隨用隨付資源

  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執行個體。

    支付完成後,建立Elastic IP Address建立NAT Gateway綁定Elastic IP Address三項資源操作均顯示成功,表示 NAT Gateway執行個體購買並綁定Elastic IP Address完成。

  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

    连接地址

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

    • 連接埠號碼:3306

    重要

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

    數據庫名稱

    配置為retail_e_commerce

    使用者名稱

    輸入使用者名稱workshop

    密碼

    輸入密碼workshop#2017

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

    說明

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

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

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

  4. 單擊完成創建

搭建同步鏈路

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

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

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

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

  4. 在工作流程編排頁面,從左側拖拽虛擬節點數據集成節點至畫布中,建立節點。其中數據集成節點的配置如下:

    • 數據來源類型MySQL

    • 數據去向類型MaxCompute

    • 具体类型单表离线

    分別設定節點名稱,本教程節點名稱樣本及作用如下:

    節點類型

    節點名稱

    節點作用

    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_Source

    去向

    資料來源:選擇建立並綁定MaxCompute計算資源時綁定的MaxCompute計算資源,此處樣本為MaxCompute_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_Source

    去向

    資料來源:選擇建立並綁定MaxCompute計算資源時綁定的MaxCompute計算資源,此處樣本為MaxCompute_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自訂圖表樣式。

    可視化圖表結果在 Copilot 地區以圖表形式(如環形圖)展示各品類的訂單數、銷售額等指標佔比分布。

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

五、周期性調度

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

說明

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

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

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

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

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

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

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

    預期結果如下:

    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 > 實例管理 > 釋放,在確認視窗中單擊確定