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

文檔

數(shù)據(jù)開發(fā)

本文從需求分析、規(guī)劃業(yè)務(wù)流程、規(guī)劃表管理、同步數(shù)據(jù)以及加工數(shù)據(jù)幾方面,為您介紹數(shù)據(jù)開發(fā)。

需求分析

將MySQL的數(shù)據(jù)采集到MaxCompute 貼源層表中,進(jìn)行清洗和加工,產(chǎn)出最終的概覽應(yīng)用表。表血緣

規(guī)劃業(yè)務(wù)流程

業(yè)務(wù)流程是DataWorks針對業(yè)務(wù)實(shí)體抽象出來的概念,幫助您從業(yè)務(wù)視角組織代碼的開發(fā),提高任務(wù)管理效率。

本實(shí)驗(yàn)中參考數(shù)據(jù)建模的分層劃域,新建“零售數(shù)倉公共層、會員分析、交易分析、物流分析、信用風(fēng)控分析、電商360”這6個(gè)業(yè)務(wù)流程。

3

(可選)規(guī)劃表管理

DataWorks支持通過表管理功能實(shí)現(xiàn)目錄文件夾展示表列表,使表列表呈現(xiàn)更清晰,不操作不影響后續(xù)實(shí)驗(yàn)。

  • 層級管理:用于對表的物理層級進(jìn)行設(shè)計(jì),用來定義和管理數(shù)據(jù)倉庫分層。

    本實(shí)驗(yàn)中參考數(shù)據(jù)建模的分層劃域,新建“ODS數(shù)據(jù)引入層、DIM維度層、DWD明細(xì)數(shù)據(jù)層、DWS匯總數(shù)據(jù)層、ADS應(yīng)用數(shù)據(jù)層”。24

  • 主題管理:按照分析視角對表進(jìn)行劃分。

    本實(shí)驗(yàn)中參考數(shù)據(jù)建模的分層劃域,按照下表,新建八個(gè)一級主題和若干個(gè)二級主題。25

    一級主題

    二級主題

    應(yīng)用層_電商業(yè)務(wù)_電商集市

    活動(dòng)、電商360

    應(yīng)用層_電商業(yè)務(wù)_其他集市

    -

    公共層_電商業(yè)務(wù)_會員域

    注冊、登錄、會員域默認(rèn)

    公共層_電商業(yè)務(wù)_商品域

    -

    公共層_電商業(yè)務(wù)_交易域

    下單、加購、支付、退款

    公共層_電商業(yè)務(wù)_物流域

    發(fā)貨、接單、攬件、派送、簽收、物流域默認(rèn)

    公共層_電商業(yè)務(wù)_信用和風(fēng)控域

    評價(jià)、信用和風(fēng)控域默認(rèn)

    貼源層

    -

    參照下表,將數(shù)據(jù)建模發(fā)布的表歸到對應(yīng)層級和主題下。26

    表名

    層級

    一級主題

    二級主題

    dim_ec_itm_item_info

    DIM

    公共層_電商業(yè)務(wù)_商品域

    -

    dim_ec_mbr_user_info

    DIM

    公共層_電商業(yè)務(wù)_會員域

    -

    dws_ec_trd_cate_commodity_gmv_kpi_fy

    DWS

    公共層_電商業(yè)務(wù)_交易域

    -

    dws_ec_mbr_cnt_std

    DWS

    公共層_電商業(yè)務(wù)_會員域

    -

    dwd_ec_trd_create_ord_di

    DWD

    公共層_電商業(yè)務(wù)_交易域

    下單

    ads_ec_ec360_gmv_kpi_overview

    ADS

    應(yīng)用層_電商業(yè)務(wù)_電商集市

    電商360

    ods_mbr_user_info

    ODS

    貼源層

    -

    ods_item_info

    ODS

    貼源層

    -

    ods_t_area

    ODS

    貼源層

    -

    ods_trade_order

    ODS

    貼源層

    -

同步數(shù)據(jù)

將MySQL中的數(shù)據(jù)同步到MaxCompute ODS層。

數(shù)據(jù)集成是穩(wěn)定高效、彈性伸縮的數(shù)據(jù)同步平臺,致力于提供復(fù)雜網(wǎng)絡(luò)環(huán)境下、豐富的異構(gòu)數(shù)據(jù)源之間高速穩(wěn)定的數(shù)據(jù)移動(dòng)及同步能力。更多關(guān)于數(shù)據(jù)集成支持的數(shù)據(jù)源情況,請參見數(shù)據(jù)集成

步驟一:購買并配置獨(dú)享數(shù)據(jù)集成資源組

本教程需將存儲在MySQL中的數(shù)據(jù)同步至MaxCompute,同步任務(wù)需使用DataWorks的獨(dú)享數(shù)據(jù)集成資源組,因此您需要先準(zhǔn)備獨(dú)享數(shù)據(jù)集成資源組,并完成前期的準(zhǔn)備工作。

  1. 購買Serverless資源組。

    1. 登錄DataWorks控制臺,切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的資源組列表,進(jìn)入資源組列表頁面。

    2. 單擊新建資源組,在資源組購買頁面,選擇地域和可用區(qū)華東2(上海)、設(shè)置資源組名稱,其他參數(shù)可根據(jù)界面提示進(jìn)行配置,完成后根據(jù)界面提示完成付款。Serverless資源組的計(jì)費(fèi)說明請參見Serverless資源組計(jì)費(fèi)

      說明

      本教程將使用華東2(上海)地域的Serverless資源組進(jìn)行示例演示,需注意Serverless資源組不支持跨地域操作。

  2. 配置Serverless資源組。

    1. 登錄DataWorks控制臺,切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的資源組列表,進(jìn)入資源組列表頁面。

    2. 找到購買的Serverless資源組,單擊操作列的修改歸屬工作空間,根據(jù)界面提示將資源組綁定至已創(chuàng)建的DataWorks工作空間。

    3. 為資源組配置公網(wǎng)訪問能力。

      1. 登錄專有網(wǎng)絡(luò)-公網(wǎng)NAT網(wǎng)關(guān)控制臺,在頂部菜單欄切換至華東2(上海)地域。

      2. 單擊創(chuàng)建NAT網(wǎng)關(guān)。配置相關(guān)參數(shù)。

        參數(shù)

        取值

        所屬地域

        華東2(上海)。

        所屬專有網(wǎng)絡(luò)

        選擇資源組綁定的VPC和交換機(jī)。

        您可以前往DataWorks管理控制臺,切換地域后,在左側(cè)導(dǎo)航欄單擊資源組列表,找到已創(chuàng)建的資源組,然后單擊操作列的網(wǎng)絡(luò)設(shè)置,在數(shù)據(jù)調(diào)度 & 數(shù)據(jù)集成區(qū)域查看綁定的專有網(wǎng)絡(luò)交換機(jī)。VPC和交換機(jī)的更多信息,請參見什么是專有網(wǎng)絡(luò)

        關(guān)聯(lián)交換機(jī)

        訪問模式

        VPC全通模式(SNAT)。

        彈性公網(wǎng)IP

        新購彈性公網(wǎng)IP。

        關(guān)聯(lián)角色創(chuàng)建

        首次創(chuàng)建NAT網(wǎng)關(guān)時(shí),需要?jiǎng)?chuàng)建服務(wù)關(guān)聯(lián)角色,請單擊創(chuàng)建關(guān)聯(lián)角色

        說明

        上表中未說明的參數(shù)保持默認(rèn)值即可。

      3. 單擊立即購買,勾選服務(wù)協(xié)議后,單擊確認(rèn)訂單,完成購買。

更多新增和使用獨(dú)享數(shù)據(jù)集成資源組的操作指導(dǎo)請參見新增和使用獨(dú)享數(shù)據(jù)集成資源組

步驟二:新建數(shù)據(jù)源

  1. 參照下表,新建MySQL數(shù)據(jù)源。詳細(xì)操作步驟請參見創(chuàng)建數(shù)據(jù)源

    參數(shù)

    描述

    數(shù)據(jù)源類型

    選擇連接串模式

    數(shù)據(jù)源名稱

    輸入retail_e_commerce_read

    數(shù)據(jù)源描述

    零售電商貼源數(shù)據(jù)。

    適用環(huán)境

    選中開發(fā)生產(chǎn)

    JDBC URL

    輸入jdbc:mysql://rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com:3306/retail_e_commerce

    重要

    本教程提供數(shù)據(jù)僅作為阿里云大數(shù)據(jù)開發(fā)治理平臺DataWorks數(shù)據(jù)應(yīng)用實(shí)操使用,所有數(shù)據(jù)均為人工Mock數(shù)據(jù),并且僅支持在數(shù)據(jù)集成模塊讀取數(shù)據(jù)。

    用戶名

    輸入用戶名,示例為workshop

    密碼

    輸入密碼,示例為workshop#2017

    認(rèn)證選項(xiàng)

    無認(rèn)證。

    資源組連通性

    數(shù)據(jù)集成頁簽下,單擊購買的獨(dú)享數(shù)據(jù)集成資源組后的測試連通性,等待界面提示測試完成,連通狀態(tài)為可連通

  2. 新增MaxCompute數(shù)據(jù)源。詳情請參見創(chuàng)建MaxCompute數(shù)據(jù)源

步驟三:新建離線同步任務(wù)

各同步場景的通用操作步驟指導(dǎo)請參見通過向?qū)J脚渲秒x線同步任務(wù),核心配置要點(diǎn)如下。

  1. 同步會員信息源表 ods_mbr_user_info。

    1. 參照如下信息,新建MySQL到MaxCompute的離線同步任務(wù),使用向?qū)J剑瑢ySQL中數(shù)據(jù)同步到MaxCompute 表ods_mbr_user_info中。

      • 節(jié)點(diǎn)類型:離線同步。

      • 節(jié)點(diǎn)名:ods_mbr_user_info。

      • 路徑:業(yè)務(wù)流程/零售數(shù)倉公共層/數(shù)據(jù)集成。

    2. 配置網(wǎng)絡(luò)與資源。

      數(shù)據(jù)來源選擇為創(chuàng)建的MySQL數(shù)據(jù)源,數(shù)據(jù)去向選擇為MaxCompute數(shù)據(jù)源,我的資源組選擇更多選項(xiàng)下的公共資源組(調(diào)試資源組),選擇完成后單擊下一步,一鍵測試網(wǎng)絡(luò)連通性,連通后繼續(xù)后續(xù)配置。

    3. 配置數(shù)據(jù)源。

      由于任務(wù)每天需要更新寫入日期格式的分區(qū),所以這里數(shù)據(jù)去向的分區(qū)信息使用調(diào)度參數(shù)代替,每天周期性執(zhí)行任務(wù)的時(shí)候,調(diào)度參數(shù)會替換對應(yīng)的日期值。

      • 數(shù)據(jù)來源

        參數(shù)

        數(shù)據(jù)源

        MySQL:retail_e_commerce_read

        mbr_user_info

        數(shù)據(jù)過濾

        -

        切分鍵

        id

      • 數(shù)據(jù)去向

        參數(shù)

        數(shù)據(jù)源

        ODPS:odps_source

        開發(fā)項(xiàng)目名

        retail_e_commerce_2_dev

        生產(chǎn)項(xiàng)目名

        retail_e_commerce_2

        ods_mbr_user_info

        說明
        • 在維度建模部分已經(jīng)執(zhí)行過文末附件的ODS層DDL語句,所以這里直接下拉選擇表名即可。在實(shí)際開發(fā)時(shí)也可以直接使用一鍵生成目標(biāo)表根據(jù)源端表結(jié)構(gòu)快速生成MaxCompute表。

        • 如果僅創(chuàng)建了開發(fā)表,需要在數(shù)據(jù)開發(fā) > 表管理中搜索一下這4張ODS層表,都執(zhí)行一下提交到生產(chǎn)環(huán)境

        分區(qū)信息

        ds=${bizdate}

        清理規(guī)則

        寫入前清理已有數(shù)據(jù)(Insert Overwrite)

        空字符串作為null

    4. 配置字段映射:選擇同名映射,如下圖。29

    5. 配置通道控制:保持默認(rèn)配置即可,完成后單擊下一步

    6. 調(diào)度配置。核心配置要點(diǎn)如下,其他參數(shù)保持默認(rèn)即可。

      1. 參數(shù)配置:使用自動(dòng)生成的參數(shù)配置結(jié)果,bizdate=$bizdate。$bizdate為前一天的日期,格式為yyyymmdd,更多關(guān)于調(diào)度參數(shù)的配置說明,請參見調(diào)度參數(shù)支持的格式

      2. 時(shí)間屬性配置:當(dāng)前任務(wù)需要每日周期性更新數(shù)據(jù),所以這里將調(diào)度周期配置為“日調(diào)度”。重跑屬性設(shè)置為運(yùn)行成功或失敗后皆可重跑。33

      3. 資源屬性配置:任務(wù)由調(diào)度資源組調(diào)起運(yùn)行,所以這里配置調(diào)度資源組為公共調(diào)度資源組

      4. 調(diào)度依賴配置:單擊同周期頁簽中依賴的上游節(jié)點(diǎn)后的使用工作空間根節(jié)點(diǎn),其他參數(shù)保持默認(rèn)。

        配置調(diào)度依賴的目的是為了保障上游表產(chǎn)出完成才會觸發(fā)下游讀取數(shù)據(jù),而當(dāng)前節(jié)點(diǎn)上游的數(shù)據(jù)是靜態(tài)的,不需要等待產(chǎn)出,所以本節(jié)點(diǎn)的上游依賴可配置為工作空間根節(jié)點(diǎn)。

        說明

        嚴(yán)格遵守以下節(jié)點(diǎn)開發(fā)規(guī)范更有利于調(diào)度依賴自動(dòng)解析,如果對調(diào)度依賴不是非常熟悉的,更建議嚴(yán)格遵守。

        • 節(jié)點(diǎn)和產(chǎn)出表一對一關(guān)系。

        • 節(jié)點(diǎn)名命名與產(chǎn)出表名保持一致。

        更多關(guān)于調(diào)度依賴的原理,請參見調(diào)度依賴配置指引;若您需要調(diào)整調(diào)度依賴,請參考調(diào)度依賴配置指引以及配置依賴上一周期(跨周期依賴)。建議您在開發(fā)ODPS SQL任務(wù)的時(shí)候再了解,易于理解。

      5. 確認(rèn)調(diào)度依賴配置完成后的配置結(jié)果信息。

        • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2_root

        • 同周期 > 本節(jié)點(diǎn)的輸出 > 輸出名retail_e_commerce_2.502736866_outretail_e_commerce_2.ods_mbr_user_info

        說明

        輸出名中的數(shù)字為系統(tǒng)隨機(jī)生成。

    7. 保存并測試節(jié)點(diǎn)運(yùn)行結(jié)果。

      鍵盤操作Ctrl+S保存配置結(jié)果后,單擊帶參帶參運(yùn)行,配置業(yè)務(wù)日期的值后運(yùn)行節(jié)點(diǎn),例如設(shè)置日期為“20220726”。35任務(wù)運(yùn)行成功后可新建一個(gè)ODPS SQL臨時(shí)查詢校驗(yàn)導(dǎo)入的數(shù)據(jù)是否符合預(yù)期。臨時(shí)查詢的創(chuàng)建操作請參見創(chuàng)建臨時(shí)查詢

      SELECT * FROM  retail_e_commerce_2_dev.ods_mbr_user_info  where ds = '20220726' LIMIT 10;
      說明

      建議本實(shí)驗(yàn)中的任務(wù)高級運(yùn)行時(shí)填寫的日期值一致,比如都填寫“20220726”,避免下游任務(wù)再測試時(shí)因參數(shù)取值不同取不到數(shù)據(jù)。不影響生產(chǎn)調(diào)度。

    8. 提交并發(fā)布離線同步節(jié)點(diǎn)ods_mbr_user_info。

      說明

      必須要提交了以后才可以在下游節(jié)點(diǎn)配置依賴關(guān)系的時(shí)候被搜索到,發(fā)布可以等到全部提交完后批量發(fā)布。

      36

  2. 同步地區(qū)源表 ods_t_area。

    1. 新建如下MySQL到MaxCompute的離線同步任務(wù),使用向?qū)J健?/p>

      • 節(jié)點(diǎn)類型:離線同步。

      • 節(jié)點(diǎn)名:ods_t_area。

      • 路徑:業(yè)務(wù)流程/零售數(shù)倉公共層/數(shù)據(jù)集成。

    2. 配置網(wǎng)絡(luò)與資源。

      數(shù)據(jù)來源選擇為創(chuàng)建的MySQL數(shù)據(jù)源,數(shù)據(jù)去向選擇為MaxCompute數(shù)據(jù)源,我的資源組選擇更多選項(xiàng)下的公共資源組(調(diào)試資源組),選擇完成后單擊下一步,一鍵測試網(wǎng)絡(luò)連通性,連通后繼續(xù)后續(xù)配置。

    3. 配置數(shù)據(jù)來源和去向。

      • 數(shù)據(jù)來源

        參數(shù)

        數(shù)據(jù)源

        MySQL:retail_e_commerce_read

        t_area

        數(shù)據(jù)過濾

        -

        切分鍵

        id

      • 數(shù)據(jù)去向

        參數(shù)

        數(shù)據(jù)源

        ODPS:odps_source

        開發(fā)項(xiàng)目名

        retail_e_commerce_2_dev

        生產(chǎn)項(xiàng)目名

        retail_e_commerce_2

        ods_t_area

        分區(qū)信息

        ds=${bizdate}

        清理規(guī)則

        寫入前清理已有數(shù)據(jù)(Insert Overwrite)

        空字符串作為null

    4. 配置字段映射:使用同名映射。

    5. 配置通道控制:使用默認(rèn)通道配置。

    6. 單擊下一步

    7. 參數(shù)配置:使用自動(dòng)生成的參數(shù)配置結(jié)果,bizdate=$bizdate。$bizdate為前一天的日期,格式為yyyymmdd,更多關(guān)于調(diào)度參數(shù)的配置說明,請參見調(diào)度參數(shù)支持的格式

    8. 時(shí)間屬性與資源屬性配置:當(dāng)前任務(wù)需要每日周期性更新數(shù)據(jù),所以這里將調(diào)度周期配置為“日調(diào)度”。任務(wù)由調(diào)度資源組調(diào)起運(yùn)行,所以這里配置一下調(diào)度資源組“公共調(diào)度資源組”。時(shí)間屬性和調(diào)度資源屬性使用默認(rèn)配置即可。33

    9. 調(diào)度依賴配置:配置調(diào)度依賴的目的是為了保障上游表產(chǎn)出完成才會觸發(fā)下游讀取數(shù)據(jù),而當(dāng)前節(jié)點(diǎn)上游的數(shù)據(jù)是靜態(tài)的,不需要等待產(chǎn)出,所以本節(jié)點(diǎn)的上游依賴可配置為工作空間根節(jié)點(diǎn),即周期依賴的上游節(jié)點(diǎn)配置為"使用工作空間根節(jié)點(diǎn)",其他參數(shù)保持默認(rèn)。

      說明

      嚴(yán)格遵守以下節(jié)點(diǎn)開發(fā)規(guī)范更有利于調(diào)度依賴自動(dòng)解析,如果對調(diào)度依賴不是非常熟悉的,更建議嚴(yán)格遵守。

      • 節(jié)點(diǎn)和產(chǎn)出表一對一關(guān)系。

      • 節(jié)點(diǎn)名命名與產(chǎn)出表名保持一致。

      更多關(guān)于調(diào)度依賴的原理,請參見調(diào)度依賴配置指引;若您需要調(diào)整調(diào)度依賴,請參考調(diào)度依賴配置指引以及配置依賴上一周期(跨周期依賴)。建議您在開發(fā)ODPS SQL任務(wù)的時(shí)候再了解,易于理解。

      調(diào)度依賴配置完成后,請確認(rèn)如下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2_root

      • 同周期 > 本節(jié)點(diǎn)的輸出 > 輸出名retail_e_commerce_2.502736901_outretail_e_commerce_2.ods_t_area

        說明

        輸出名中的數(shù)字為系統(tǒng)隨機(jī)生成。

    10. 保存、測試及提交、發(fā)布。操作與第一個(gè)同步任務(wù)操作相同。

  3. 同步商品信息源表 ods_item_info。

    1. 新建如下MySQL到MaxCompute的離線同步任務(wù),使用向?qū)J健?/p>

      • 節(jié)點(diǎn)類型:離線同步。

      • 節(jié)點(diǎn)名:ods_item_info。

      • 路徑:業(yè)務(wù)流程/零售數(shù)倉公共層/數(shù)據(jù)集成。

    2. 配置數(shù)據(jù)來源和去向。

      • 數(shù)據(jù)來源

        參數(shù)

        數(shù)據(jù)源

        MySQL:retail_e_commerce_read

        item_info

        數(shù)據(jù)過濾

        -

        切分鍵

        id

      • 數(shù)據(jù)去向

        參數(shù)

        數(shù)據(jù)源

        ODPS:odps_source

        開發(fā)項(xiàng)目名

        retail_e_commerce_2_dev

        生產(chǎn)項(xiàng)目名

        retail_e_commerce_2

        ods_item_info

        分區(qū)信息

        ds=${bizdate}

        清理規(guī)則

        寫入前清理已有數(shù)據(jù)(Insert Overwrite)

        空字符串作為null

    3. 配置字段映射:使用同名映射。

    4. 配置通道控制:使用默認(rèn)通道配置。

    5. 單擊下一步。

    6. 參數(shù)配置:使用自動(dòng)生成的參數(shù)配置結(jié)果,bizdate=$bizdate。$bizdate為前一天的日期,格式為yyyymmdd,更多關(guān)于調(diào)度參數(shù)的配置說明,請參見調(diào)度參數(shù)支持的格式

    7. 時(shí)間屬性與資源屬性配置:當(dāng)前任務(wù)需要每日周期性更新數(shù)據(jù),所以這里將調(diào)度周期配置為“日調(diào)度”。任務(wù)由調(diào)度資源組調(diào)起運(yùn)行,所以這里配置一下調(diào)度資源組“公共調(diào)度資源組”。時(shí)間屬性和調(diào)度資源屬性使用默認(rèn)配置即可。33

    8. 調(diào)度依賴配置:配置調(diào)度依賴的目的是為了保障上游表產(chǎn)出完成才會觸發(fā)下游讀取數(shù)據(jù),而當(dāng)前節(jié)點(diǎn)上游的數(shù)據(jù)是靜態(tài)的,不需要等待產(chǎn)出,所以本節(jié)點(diǎn)的上游依賴可配置為工作空間根節(jié)點(diǎn),即周期依賴的上游節(jié)點(diǎn)配置為"使用工作空間根節(jié)點(diǎn)",其他參數(shù)保持默認(rèn)。

      說明

      嚴(yán)格遵守以下節(jié)點(diǎn)開發(fā)規(guī)范更有利于調(diào)度依賴自動(dòng)解析,如果對調(diào)度依賴不是非常熟悉的,更建議嚴(yán)格遵守。

      • 節(jié)點(diǎn)和產(chǎn)出表一對一關(guān)系。

      • 節(jié)點(diǎn)名命名與產(chǎn)出表名保持一致。

      更多關(guān)于調(diào)度依賴的原理,請參見調(diào)度依賴配置指引;若您需要調(diào)整調(diào)度依賴,請參考調(diào)度依賴配置指引以及配置依賴上一周期(跨周期依賴)。建議您在開發(fā)ODPS SQL任務(wù)的時(shí)候再了解,易于理解。

      調(diào)度依賴配置完成后,請確認(rèn)如下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2_root

      • 同周期 > 本節(jié)點(diǎn)的輸出 > 輸出名retail_e_commerce_2.502736904_outretail_e_commerce_2.ods_item_info

        說明

        輸出名中的數(shù)字為系統(tǒng)隨機(jī)生成。

    9. 保存、測試及提交、發(fā)布。操作與第一個(gè)同步任務(wù)操作相同。

  4. 同步訂單源表 ods_trade_order。

    1. 新建如下MySQL到MaxCompute的離線同步任務(wù),使用向?qū)J健?/p>

      • 節(jié)點(diǎn)類型:離線同步。

      • 節(jié)點(diǎn)名:ods_trade_order。

      • 路徑:業(yè)務(wù)流程/零售數(shù)倉公共層/數(shù)據(jù)集成。

    2. 配置數(shù)據(jù)來源和去向。

      • 數(shù)據(jù)來源

        參數(shù)

        數(shù)據(jù)源

        MySQL:retail_e_commerce_read

        trade_order

        數(shù)據(jù)過濾

        -

        切分鍵

        id

      • 數(shù)據(jù)去向

        參數(shù)

        數(shù)據(jù)源

        ODPS:odps_source

        開發(fā)項(xiàng)目名

        retail_e_commerce_2_dev

        生產(chǎn)項(xiàng)目名

        retail_e_commerce_2

        ods_trade_order

        分區(qū)信息

        ds=${bizdate}

        清理規(guī)則

        寫入前清理已有數(shù)據(jù)(Insert Overwrite)

        空字符串作為null

    3. 配置字段映射:使用同名映射。

    4. 配置通道控制:使用默認(rèn)通道配置。

    5. 單擊下一步。

    6. 參數(shù)配置:使用自動(dòng)生成的參數(shù)配置結(jié)果,bizdate=$bizdate。$bizdate為前一天的日期,格式為yyyymmdd,更多關(guān)于調(diào)度參數(shù)的配置說明,請參見調(diào)度參數(shù)支持的格式

    7. 時(shí)間屬性與資源屬性配置:當(dāng)前任務(wù)需要每日周期性更新數(shù)據(jù),所以這里將調(diào)度周期配置為“日調(diào)度”。任務(wù)由調(diào)度資源組調(diào)起運(yùn)行,所以這里配置一下調(diào)度資源組“公共調(diào)度資源組”。時(shí)間屬性和調(diào)度資源屬性使用默認(rèn)配置即可。33

    8. 調(diào)度依賴配置:配置調(diào)度依賴的目的是為了保障上游表產(chǎn)出完成才會觸發(fā)下游讀取數(shù)據(jù),而當(dāng)前節(jié)點(diǎn)上游的數(shù)據(jù)是靜態(tài)的,不需要等待產(chǎn)出,所以本節(jié)點(diǎn)的上游依賴可配置為工作空間根節(jié)點(diǎn),即周期依賴的上游節(jié)點(diǎn)配置為"使用工作空間根節(jié)點(diǎn)",其他參數(shù)保持默認(rèn)。

      說明

      嚴(yán)格遵守以下節(jié)點(diǎn)開發(fā)規(guī)范更有利于調(diào)度依賴自動(dòng)解析,如果對調(diào)度依賴不是非常熟悉的,更建議嚴(yán)格遵守。

      • 節(jié)點(diǎn)和產(chǎn)出表一對一關(guān)系。

      • 節(jié)點(diǎn)名命名與產(chǎn)出表名保持一致。

      更多關(guān)于調(diào)度依賴的原理,請參見調(diào)度依賴配置指引;若您需要調(diào)整調(diào)度依賴,請參考調(diào)度依賴配置指引以及配置依賴上一周期(跨周期依賴)。建議您在開發(fā)ODPS SQL任務(wù)的時(shí)候再了解,易于理解。

      調(diào)度依賴配置完成后,請確認(rèn)如下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2_root

      • 同周期 > 本節(jié)點(diǎn)的輸出 > 輸出名retail_e_commerce_2.502736916_outretail_e_commerce_2.ods_trade_order

        說明

        輸出名中的數(shù)字為系統(tǒng)隨機(jī)生成。

    9. 保存、測試及提交、發(fā)布。操作與第一個(gè)同步任務(wù)操作相同。

加工數(shù)據(jù)

產(chǎn)出“dim_ec_mbr_user_info 會員基礎(chǔ)信息維度表”

  1. 創(chuàng)建調(diào)度任務(wù)。

    新建ODPS SQL節(jié)點(diǎn),在零售數(shù)倉公共層業(yè)務(wù)流程MaxCompute引擎模塊下,并命名為“dim_ec_mbr_user_info”。新建ODPS SQL的詳細(xì)操作步驟請參見開發(fā)ODPS SQL任務(wù)37

  2. 開發(fā)SQL。

    由于任務(wù)每天需要從日期格式的分區(qū)讀取,清理后寫入日期格式的分區(qū),所以這里Insert的分區(qū)信息和From的分區(qū)使用調(diào)度參數(shù)代替,每天周期性執(zhí)行任務(wù)的時(shí)候,調(diào)度參數(shù)會替換對應(yīng)的業(yè)務(wù)日期值。

    INSERT OVERWRITE TABLE dim_ec_mbr_user_info PARTITION(ds='${biz_date}')
    SELECT  user.user_id AS user_id
            ,user.nick AS nick
            ,user.gmt_create AS gmt_modified
            ,user.gmt_modified AS gmt_create
            ,user.reg_fullname AS reg_fullname
            ,user.reg_mobile_phone AS reg_mobile_phone
            ,user.reg_email AS reg_email
            ,user.reg_gender AS reg_gender
            ,user.reg_gender_name AS reg_gender_name
            ,user.reg_birthdate AS reg_birthdate
            ,user.reg_address AS reg_address
            ,user.reg_nation_id AS reg_nation_id
            ,user.reg_nation_name AS reg_nation_name
            ,user.reg_prov_id AS reg_prov_id
            ,area_prov.name AS reg_prov_name
            ,user.reg_city_id AS reg_city_id
            ,area_city.name AS reg_city_name
            ,user.user_regip AS user_regip
            ,user.id_card_type AS id_card_type
            ,user.id_card_type_name AS id_card_type_name
            ,user.id_card_number AS id_card_number
            ,null as id_gender
            ,null as id_bday
            ,null as id_age
            ,user.user_regdate AS user_regdate
            ,user.user_active_type AS user_active_type
            ,user.user_active_name AS user_active_name
            ,user.user_active_time AS user_active_time
            ,user.vip_level AS vip_level
            ,user.vip_level_name AS vip_level_name
            ,user.is_delete AS is_delete
    --,id_region
    FROM    (
                SELECT  id    -- 主鍵
                        ,gmt_create    -- 創(chuàng)建時(shí)間
                        ,gmt_modified    -- 修改時(shí)間
                        ,user_id    -- 會員數(shù)字ID
                        ,nick    -- 會員NICK。會員昵稱
                        ,reg_fullname    -- 個(gè)人認(rèn)證表示真實(shí)姓名,企業(yè)認(rèn)證表示企業(yè)名稱
                        ,reg_mobile_phone    -- 注冊時(shí)綁定手機(jī)號碼
                        ,reg_email    -- 注冊填寫EMAIL(用戶可以修改)
                        ,reg_gender    -- 注冊填寫性別(F女,M男,不是這兩個(gè)就是未知的,說明性別保密)
                        ,CASE    WHEN reg_gender='F' THEN '女'
                                 WHEN reg_gender='M' THEN '男'
                                 ELSE '未知'
                         END AS reg_gender_name    -- 注冊填寫性別(F女,M男,不是這兩個(gè)就是未知的,說明性別保密)
                        ,reg_birthdate    -- 注冊填寫生日(用戶可以修改)
                        ,reg_address    -- 注冊填寫地址(用戶可以修改)
                        ,reg_nation_id    -- 注冊填寫國家ID(暫時(shí)為空)
                        ,CASE    WHEN reg_nation_id='cn' THEN '中國'
                                 ELSE '海外'
                         END AS reg_nation_name
                        ,reg_prov_id    -- 注冊填寫省ID
                        ,reg_city_id    -- 注冊填寫城市ID
                        ,user_regip    -- 注冊IP
                        ,id_card_type    -- 會員認(rèn)證證件類型 0:未知 1:身份證 2:企業(yè)營業(yè)執(zhí)照號
                        ,CASE    WHEN id_card_type=0 THEN '未知'
                                 WHEN id_card_type=1 THEN '身份證'
                                 WHEN id_card_type=2 THEN '企業(yè)營業(yè)執(zhí)照號'
                                 ELSE '異常'
                         END AS id_card_type_name
                        ,id_card_number    -- 個(gè)人認(rèn)證表示身份證號,企業(yè)認(rèn)證表示企業(yè)的營業(yè)執(zhí)照號,沒有認(rèn)證不保證準(zhǔn)確性
                        ,user_regdate    -- 注冊時(shí)間
                        ,user_active_type    -- 用戶激活方式
                        ,CASE    WHEN user_active_type='email' THEN '郵箱'
                                 WHEN user_active_type='mobile_phone' THEN '手機(jī)'
                                 ELSE '異常'
                         END AS user_active_name    -- 用戶激活方式
                        ,user_active_time    -- 激活時(shí)間
                        ,cast(vip_level AS BIGINT) AS vip_level    -- VIP等級
                        ,CASE    WHEN vip_level>0 AND vip_level<=3 THEN '初級'
                                 WHEN vip_level>3 AND vip_level<=6 THEN '中級'
                                 WHEN vip_level>6 AND vip_level<=10 THEN '高級'
                                 WHEN vip_level>10  THEN '特級'
                        ELSE '異常'
                         END  AS vip_level_name
                        ,is_delete    -- 是否刪除
                FROM    ods_mbr_user_info
                WHERE   ds = '${biz_date}'
            ) AS USER
    LEFT JOIN (
                  SELECT  id
                          ,pid
                          ,name
                          ,shortname
                          ,longitude
                          ,latitude
                          ,level
                          ,sort
                  FROM    ods_t_area
                  WHERE   ds = ${biz_date}
              ) AS area_prov
    ON      user.reg_prov_id = area_prov.id LEFT
    JOIN    (
                SELECT  id
                        ,pid
                        ,name
                        ,shortname
                        ,longitude
                        ,latitude
                        ,level
                        ,sort
                FROM    ods_t_area
                WHERE   ds = ${biz_date}
            ) AS area_city
    ON      user.reg_city_id = area_city.id
    ;
  3. 調(diào)度配置。在ODPS SQL節(jié)點(diǎn)右側(cè)導(dǎo)航欄,單擊調(diào)度配置

    1. 參數(shù):新增參數(shù)biz_date=${yyyymmdd}。更多關(guān)于調(diào)度參數(shù)的配置說明,請參見調(diào)度參數(shù)支持的格式38

    2. 時(shí)間屬性:當(dāng)前任務(wù)需要每天執(zhí)行一次,因此調(diào)度周期選擇。時(shí)間屬性和調(diào)度資源屬性使用默認(rèn)配置即可。39

    3. 調(diào)度依賴:單擊從代碼解析輸入輸出

      由于我們insert當(dāng)前表dim_ec_mbr_user_info需要from表ods_mbr_user_info和ods_t_area,所以從調(diào)度上需要等待兩張上游表更新完成,才能開始運(yùn)當(dāng)前任務(wù),因此將產(chǎn)出兩張上游表的任務(wù)作為當(dāng)前任務(wù)的上游。開啟代碼解析,使用默認(rèn)解析結(jié)果就可以掛在上游表產(chǎn)出任務(wù)下。更多關(guān)于調(diào)度依賴的內(nèi)容,請參見調(diào)度依賴配置指引;若您需要調(diào)整調(diào)度依賴,請參見配置同周期調(diào)度依賴配置依賴上一周期(跨周期依賴)

      請確認(rèn)以下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 上游節(jié)點(diǎn)輸出名retail_e_commerce_2.ods_mbr_user_inforetail_e_commerce_2.ods_t_area

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502637287_outretail_e_commerce_2.dim_ec_mbr_user_info

      40

產(chǎn)出“dim_ec_itm_item_info 商品基礎(chǔ)信息維度表”

  1. 創(chuàng)建調(diào)度任務(wù):方法同上,參照如下信息。

    • 節(jié)點(diǎn)類型:ODPS SQL。

    • 節(jié)點(diǎn)名:dim_ec_itm_item_info。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程/零售數(shù)倉公共層/MaxCompute。

  2. 開發(fā)SQL:方法同上,您也可以使用維度建模的模型開發(fā)功能,參考如下腳本。

    --模型名稱:dim_ec_itm_item_info(商品基礎(chǔ)信息維度表)
    --業(yè)務(wù)分類:電商業(yè)務(wù);   數(shù)據(jù)域:商品域;   業(yè)務(wù)過程:商品域_默認(rèn);   生命周期:365天;
    --模型描述:商品基礎(chǔ)信息維度表
    
    INSERT OVERWRITE TABLE dim_ec_itm_item_info PARTITION(ds='${biz_date}')
    SELECT t1.gmt_create AS gmt_create --創(chuàng)建時(shí)間
    ,t1.gmt_modified AS gmt_modified --修改時(shí)間
    ,t1.item_id AS item_id --商品數(shù)字ID
    ,t1.title AS title --商品標(biāo)題
    ,t1.sub_title AS sub_title --商品子標(biāo)題
    ,t1.pict_url AS pict_url --主圖URL
    ,t1.desc_path AS desc_path --商品描述的路徑
    ,t1.item_status AS item_status --商品狀態(tài)1:確認(rèn)通過0:未確認(rèn)通過
    ,t1.last_online_time AS last_online_time --最近一次開始銷售時(shí)間,商品上架時(shí)間
    ,t1.last_offline_time AS last_offline_time --銷售結(jié)束時(shí)間,表示一個(gè)銷售周期的結(jié)束,僅作用于拍賣商品
    ,t1.duration AS duration --有效期,銷售周期,只有兩個(gè)值,7天或14天
    ,cast(t1.reserve_price as DOUBLE) AS reserve_price --當(dāng)前價(jià)格
    ,cast(t1.secure_trade_ordinary_post_fee as DOUBLE)  AS secure_trade_ordinary_post_fee --平郵費(fèi)用
    ,cast(t1.secure_trade_fast_post_fee as DOUBLE)  AS secure_trade_fast_post_fee --快遞費(fèi)用
    ,cast(t1.secure_trade_ems_post_fee as DOUBLE)  AS secure_trade_ems_post_fee --EMS郵費(fèi)
    ,t1.last_online_quantity AS last_online_quantity --商品最近一次上架時(shí)的庫存數(shù)量
    ,t1.features AS features --商品特征
    ,t1.cate_id AS cate_id --商品葉子類目ID
    ,t1.cate_name AS cate_name --商品葉子類目名稱
    ,t1.commodity_id AS commodity_id --品類ID
    ,t1.commodity_name AS commodity_name --品類名稱
    ,t1.is_virtual AS is_virtual --是否虛擬商品
    ,t1.shop_id AS shop_id --商家ID
    ,t1.shop_nick AS shop_nick --商家NICK
    ,t1.is_deleted AS is_deleted --類目是否刪除
    FROM ods_item_info t1
    -- FROM retail_e_commerce_2.default.ods_item_info t1
    -- 注意:模型開發(fā)自動(dòng)生成的代碼FROM后的表名使用的是“項(xiàng)目名.schema名.表名”,這里的sql中我們僅保留了表名。
    -- 原因一:不指定項(xiàng)目名前綴,在DataStudio運(yùn)行時(shí)會默認(rèn)訪問開發(fā)表,發(fā)布生產(chǎn)環(huán)境自動(dòng)調(diào)度會默認(rèn)訪問生產(chǎn)表。
    -- 原因二:本實(shí)驗(yàn)中的sql基本都沒有帶上schema名,所以這里也不指定schema。使用自動(dòng)解析時(shí),在對調(diào)度依賴還不是很熟的情況下,我們建議都保持一致,所有sql都不帶上schema或都帶上schema。
    WHERE ds = '${biz_date}';
    ;
  3. 調(diào)度配置。

    1. 調(diào)度參數(shù):方法同上,新增參數(shù)biz_date=${yyyymmdd}

    2. 時(shí)間屬性:方法同上,使用默認(rèn)的配置,日調(diào)度。

    3. 調(diào)度依賴:方法同上,使用自動(dòng)解析,不需要手動(dòng)修改。

      請確認(rèn)以下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2.ods_item_info

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502637814_outretail_e_commerce_2.dim_ec_itm_item_info

產(chǎn)出“dwd_ec_trd_create_ord_di 交易下單明細(xì)事實(shí)表”

  1. 創(chuàng)建調(diào)度任務(wù)。

    • 節(jié)點(diǎn)類型:ODPS SQL。

    • 節(jié)點(diǎn)名:dwd_ec_trd_create_ord_di。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程/零售數(shù)倉公共層/MaxCompute。

  2. 開發(fā)SQL。

    INSERT OVERWRITE TABLE dwd_ec_trd_create_ord_di PARTITION(ds='${biz_date}')
    SELECT
      id,
      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,
      ip,
      end_time,
      pay_time,
      is_sub,
      is_parent,
      shop_id,
      total_fee
     FROM ods_trade_order
     WHERE   ds = '${biz_date}';
  3. 調(diào)度配置。

    1. 調(diào)度參數(shù):新增參數(shù)biz_date=${yyyymmdd}

    2. 時(shí)間屬性:使用默認(rèn)的配置,日調(diào)度。

    3. 調(diào)度依賴:使用自動(dòng)解析,不需要手動(dòng)修改。

      請確認(rèn)以下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2.ods_trade_order

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502638246_outretail_e_commerce_2.dwd_ec_trd_create_ord_di

產(chǎn)出“dws_ec_mbr_cnt_std 歷史截至當(dāng)日存量會員數(shù)cube統(tǒng)計(jì)表”

  1. 創(chuàng)建調(diào)度任務(wù)。

    • 節(jié)點(diǎn)類型:ODPS SQL。

    • 節(jié)點(diǎn)名:dws_ec_mbr_cnt_std。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程/零售數(shù)倉公共層/MaxCompute。

  2. 開發(fā)SQL。

    -- 維度建模建表,這里不需要再創(chuàng)建
    CREATE TABLE IF NOT EXISTS dws_ec_mbr_cnt_std
    (
       reg_prov_id      STRING COMMENT '注冊填寫省ID',
       reg_prov_name    STRING COMMENT '注冊填寫省名稱',
       reg_gender       STRING COMMENT '身份證解析性別(F女,M男,unkown表示身份證為空或格式不對)',
       reg_gender_name  STRING COMMENT '身份證解析性別(F女,M男,unkown表示身份證為空或格式不對)',
       age_tag          STRING COMMENT '出生年代',
       user_active_type STRING COMMENT '用戶激活方式',
       user_active_name STRING COMMENT '激活方式名稱',
       vip_level        BIGINT COMMENT 'VIP等級',
       vip_level_name   STRING COMMENT 'VIP等級名稱。v1,v2,v3等',
       mbr_cnt          BIGINT COMMENT '存量會員數(shù)'
    )
    COMMENT '歷史截至當(dāng)日_存量會員數(shù)_cube統(tǒng)計(jì)表'
    PARTITIONED BY
    (
       ds STRING COMMENT '業(yè)務(wù)日期, yyyymmdd'
    )
    LIFECYCLE 365;
    
    INSERT OVERWRITE TABLE dws_ec_mbr_cnt_std PARTITION(ds = '${biz_date}')
    
    SELECT    if(grouping(reg_prov_id) == 0, reg_prov_id, '-9999') as reg_prov_id
            , if(grouping(reg_prov_name) == 0, reg_prov_name, '全部') as reg_prov_name
            , if(grouping(reg_gender) == 0, reg_gender, '-9999') as reg_gender
            , if(grouping(reg_gender_name) == 0, reg_gender_name, '全部') as reg_gender_name
            , if(grouping(age_tag) == 0, age_tag, '-9999') as age_tag
            , if(grouping(user_active_type) == 0, user_active_type, '-9999') as user_active_type
            , if(grouping(user_active_name) == 0, user_active_name, '全部') as user_active_name
            , if(grouping(vip_level) == 0, vip_level, -9999) as vip_level
            , if(grouping(vip_level_name) == 0, vip_level_name, '全部') as vip_level_name
            , count(distinct user_id) as mbr_cnt
    
    from (
        select    reg_prov_id
                , reg_prov_name
                , reg_gender
                , reg_gender_name
                ,(case when substr(reg_birthdate,1,4)>=2010 and substr(reg_birthdate,1,4)<2020 then '10后'
                        when substr(reg_birthdate,1,4)>=2000 and substr(reg_birthdate,1,4)<2010 then '00后'
                        when substr(reg_birthdate,1,4)>=1990 and substr(reg_birthdate,1,4)<2000 then '90后'
                        when substr(reg_birthdate,1,4)>=1980 and substr(reg_birthdate,1,4)<1990 then '80后'
                        when substr(reg_birthdate,1,4)>=1970 and substr(reg_birthdate,1,4)<1980 then '70后'
                        else '其他'
                  end)as age_tag
                , user_active_type
                , user_active_name
                , vip_level
                , vip_level_name
                , user_id
        from    dim_ec_mbr_user_info
        where   ds = max_pt('dim_ec_mbr_user_info')
    ) _main
    
    group by reg_prov_id
            , reg_prov_name
            , reg_gender
            , reg_gender_name
            , age_tag
            , user_active_type
            , user_active_name
            , vip_level
            , vip_level_name
    grouping sets(
        (reg_prov_id, reg_prov_name)
       ,(reg_gender, reg_gender_name)
       ,(age_tag)
       ,(user_active_type, user_active_name)
       ,(vip_level, vip_level_name)
       ,()
    );
  3. 調(diào)度配置。

    1. 調(diào)度參數(shù):新增參數(shù)biz_date=${yyyymmdd}

    2. 時(shí)間屬性:使用默認(rèn)的配置,日調(diào)度。

    3. 調(diào)度依賴:使用自動(dòng)解析,不需要手動(dòng)修改。

      請確認(rèn)以下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2.dim_ec_mbr_user_info

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502638770_outretail_e_commerce_2.dws_ec_mbr_cnt_std

產(chǎn)出“dws_ec_trd_cate_commodity_gmv_kpi_fy 財(cái)年KPI類目品類GMV統(tǒng)計(jì)”

  1. 創(chuàng)建調(diào)度任務(wù)。

    • 節(jié)點(diǎn)類型:ODPS SQL。

    • 節(jié)點(diǎn)名:dws_ec_trd_cate_commodity_gmv_kpi_fy。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程/零售數(shù)倉公共層/MaxCompute。

  2. 開發(fā)SQL。

    -- 建模發(fā)布建的表,這里不需要再重新創(chuàng)建
    CREATE TABLE IF NOT EXISTS dws_ec_trd_cate_commodity_gmv_kpi_fy
    (
       cate_id         BIGINT COMMENT '商品葉子類目ID',
       cate_name       STRING COMMENT '商品葉子類目名稱',
       commodity_id    BIGINT COMMENT '品類ID',
       commodity_name  STRING COMMENT '品類名稱',
       pay_ord_amt_fy  DECIMAL COMMENT '財(cái)年_訂單支付成功金額',
       kpi_gmv_rate_fy DECIMAL COMMENT '財(cái)年_成交金額完成度'
    )
    COMMENT '財(cái)年KPI_類目_品類_GMV統(tǒng)計(jì)'
    PARTITIONED BY
    (
       ds STRING COMMENT '業(yè)務(wù)日期, yyyymmdd'
    )
    LIFECYCLE 365;
    
    INSERT OVERWRITE TABLE dws_ec_trd_cate_commodity_gmv_kpi_fy PARTITION(ds = '${biz_date}')
    
    select   t1.cate_id
            ,t1.cate_name
            ,t1.commodity_id
            ,t1.commodity_name
            ,round(10*sum(t1.total_fee),4) as pay_ord_amt_fy
            ,round((10*sum(t1.total_fee)/30000000),4) as kpi_gmv_rate_fy
    from    (
                select  to_char(a.gmt_create,'yyyymmdd') as stat_date
                        ,a.sub_order_id
                        ,a.buyer_id
                        ,a.item_id
                        ,a.biz_type
                        ,a.pay_status
                        ,a.total_fee/100 as total_fee
                        ,b.cate_id
                        ,b.cate_name
                        ,b.commodity_id
                        ,b.commodity_name
                from    dwd_ec_trd_create_ord_di a
                left outer join (
                                    select  distinct item_id
                                            ,cate_id
                                            ,cate_name
                                            ,commodity_id
                                            ,commodity_name
                                            ,shop_id
                                            ,shop_nick
                                    from    dim_ec_itm_item_info
                                    where   ds = max_pt('dim_ec_itm_item_info')
                                ) b
                on      a.item_id = b.item_id
                and     a.shop_id = b.shop_id
                where   a.ds = max_pt('dwd_ec_trd_create_ord_di')
            ) t1
    where   t1.pay_status in ('2')
    and     t1.biz_type in ('2','3','4')
    group by   t1.cate_id
             , t1.cate_name
             , t1.commodity_id
             , t1.commodity_name
    ;
  3. 調(diào)度配置。

    • 調(diào)度參數(shù):新增參數(shù)biz_date=${yyyymmdd}

    • 時(shí)間屬性:使用默認(rèn)的配置,日調(diào)度。

    • 調(diào)度依賴:使用自動(dòng)解析,不需要手動(dòng)修改。

      請確認(rèn)以下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2.dwd_ec_trd_create_ord_diretail_e_commerce_2.dim_ec_itm_item_info

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502638774_outretail_e_commerce_2.dws_ec_trd_cate_commodity_gmv_kpi_fy

產(chǎn)出“ads_ec_ec360_gmv_kpi_overview 電商360KPI概覽”

  1. 創(chuàng)建調(diào)度任務(wù)。

    • 節(jié)點(diǎn)類型:ODPS SQL。

    • 節(jié)點(diǎn)名:ads_ec_ec360_gmv_kpi_overview。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程/零售數(shù)倉公共層/MaxCompute。

  2. 開發(fā)SQL。

    -- 維度建模建表,這里不需要再創(chuàng)建。
    CREATE TABLE IF NOT EXISTS ads_ec_ec360_gmv_kpi_overview
    (
        pay_ord_amt_fy DECIMAL COMMENT '財(cái)年_訂單支付成功金額'
        ,mbr_cnt_std BIGINT COMMENT '歷史截至當(dāng)日_存量會員數(shù)'
        ,kpi_gmv_rate_fy DECIMAL COMMENT '財(cái)年_成交金額完成度'
    )
    COMMENT '電商360KPI概覽'
    PARTITIONED BY
    (
        ds STRING COMMENT '業(yè)務(wù)日期, yyyymmdd'
    )
    LIFECYCLE 365
    ;
    
    -- 指標(biāo)計(jì)算口徑:
    -- 1. pay_ord_amt_fy 財(cái)年訂單支付成功金額。訂單類型包含:等待賣家發(fā)貨、等待買家確認(rèn)收貨、交易成功;訂單支付狀態(tài)包含付款成功。
    -- 2. mbr_cnt_std 歷史截止當(dāng)日存量會員數(shù)。存量會員數(shù):注冊且激活的會員總量。
    -- 3. kpi_gmv_rate_fy 成交金額目標(biāo)完成度=成交金額實(shí)際完成值/成交金額目標(biāo)值;成交金額目標(biāo)值為3000萬。
    INSERT OVERWRITE TABLE ads_ec_ec360_gmv_kpi_overview PARTITION(ds = '${biz_date}')
    SELECT  pay_ord_amt_fy
            ,mbr_cnt_std
            ,round(pay_ord_amt_fy/30000000, 4) AS kpi_gmv_rate_fy
    FROM    (
                SELECT  max(pay_ord_amt_fy) AS pay_ord_amt_fy
                        ,max(mbr_cnt_std) AS mbr_cnt_std
                FROM    (
                            SELECT  1 AS id
                                    ,sum(pay_ord_amt_fy) AS pay_ord_amt_fy
                                    ,null AS mbr_cnt_std
                            FROM    dws_ec_trd_cate_commodity_gmv_kpi_fy
                            WHERE   ds = max_pt('dws_ec_trd_cate_commodity_gmv_kpi_fy')
                            UNION
                            SELECT  1 AS id
                                    ,null AS pay_ord_amt_fy
                                    ,SUM(mbr_cnt) AS mbr_cnt_std
                            FROM    dws_ec_mbr_cnt_std
                            WHERE   ds = max_pt('dws_ec_mbr_cnt_std')
                            AND     reg_prov_id = '-9999'
                            AND     reg_gender = '-9999'
                            AND     age_tag = '-9999'
                            AND     user_active_type = '-9999'
                            AND     vip_level =  - 9999
                        ) t1
                GROUP BY id
            ) t2
    ;
                        
  3. 調(diào)度配置。

    1. 新增參數(shù):biz_date=${yyyymmdd}

    2. 時(shí)間屬性:使用默認(rèn)的配置,日調(diào)度。

    3. 調(diào)度依賴:使用自動(dòng)解析,不需要手動(dòng)修改。

      請確認(rèn)以下信息:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2.dws_ec_trd_cate_commodity_gmv_kpi_fyretail_e_commerce_2.dws_ec_mbr_cnt_std

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502643753_outretail_e_commerce_2.ads_ec_ec360_gmv_kpi_overview

(可選) 建MaxCompute用戶自定義函數(shù)

對dim_ec_mbr_user_info表的user_regip通過IP2Region函數(shù)解析成地域,最后可以可視化展示注冊地分布。

  1. 上傳資源。

    零售數(shù)倉公共層業(yè)務(wù)流程,MaxCompute引擎模塊下新建jar資源,選中上傳為ODPS資源,提交并發(fā)布。您可以使用Demo文件IP2Region.jar。更多關(guān)于UDF的開發(fā),請參見MaxCompute UDF概述41

  2. 注冊函數(shù)。

    參照如下配置,在零售數(shù)倉公共層業(yè)務(wù)流程,MaxCompute引擎模塊下新建GET_REGION函數(shù)。42

    函數(shù)類型

    其他函數(shù)

    MaxCompute引擎實(shí)例

    retail_e_commerce_2

    函數(shù)名

    GET_REGION

    責(zé)任人

    DataWorks

    類名

    org.alidata.odps.udf.Ip2Region

    資源列表

    ip2region.jar

    描述

    IP地址轉(zhuǎn)換地域

    命令格式

    string get_region(string <str>)

    參數(shù)說明

    str:必填。STRING類型。待轉(zhuǎn)換成地域的IP字符串。

    返回值

    返回string類型。返回地域名。

    示例

    SELECT GET_REGION('139.209.57.***');-- 吉林省

  3. 使用函數(shù)。

    使用如下腳本,新建一個(gè)odps sql節(jié)點(diǎn)。

    SELECT  user_id
            ,user_regip
            ,GET_REGION(user_regip) AS region
    FROM    dim_ec_mbr_user_info
    WHERE   ds LIKE '%%'
    LIMIT   10

    運(yùn)行成功后返回結(jié)果如下:

    -- 返回結(jié)果
    -- user_id    user_regip    region
    -- 17088752    139.209.57.XXX    吉林省
    -- 78468007    106.90.172.XXX    重慶市
    -- 42307553    121.76.42.XXX    上海市
    -- 48261858    182.83.94.XXX    陜西省
    -- 10124462    139.199.116.XX   未知
    -- 52070735    123.232.226.XX   山東省
    -- 55604197    222.46.88.XX    浙江省
    -- 13785369    36.58.241.XX    安徽省
    -- 38112363    210.43.197.XXX    湖南省
    -- 60806246    36.61.121.XX    安徽省

(可選)建Hologres外表,加速分析“ads_ec_ec360_gmv_kpi_overview 電商360KPI概覽”

說明

您需要先創(chuàng)建Hologres數(shù)據(jù)源,并將其綁定至數(shù)據(jù)開發(fā)才可參考下文進(jìn)行創(chuàng)建Hologres外表的操作步驟。

  1. 創(chuàng)建調(diào)度任務(wù)。

    • 節(jié)點(diǎn)類型:Hologres SQL。

    • 節(jié)點(diǎn)名:ads_ec_ec360_gmv_kpi_overview_bi。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程、零售數(shù)倉公共層、Hologres、數(shù)據(jù)開發(fā)。

    43

  2. 開發(fā)SQL。

    BEGIN;
    CREATE FOREIGN TABLE IF NOT EXISTS ads_ec_ec360_gmv_kpi_overview_bi
    (
        pay_ord_amt_fy DECIMAL(38,18)
        ,mbr_cnt_std BIGINT
        ,kpi_gmv_rate_fy DECIMAL(38,18)
        ,ds TEXT
    )
    SERVER odps_server
    OPTIONS (project_name 'retail_e_commerce_2', table_name 'ads_ec_ec360_gmv_kpi_overview');
    
    COMMENT ON FOREIGN TABLE "ads_ec_ec360_gmv_kpi_overview_bi" IS '電商360KPI概覽';
    COMMENT ON COLUMN  "ads_ec_ec360_gmv_kpi_overview_bi".pay_ord_amt_fy IS '財(cái)年_訂單支付成功金額';
    COMMENT ON COLUMN  "ads_ec_ec360_gmv_kpi_overview_bi".mbr_cnt_std IS '歷史截至當(dāng)日_存量會員數(shù)';
    COMMENT ON COLUMN  "ads_ec_ec360_gmv_kpi_overview_bi".kpi_gmv_rate_fy IS '財(cái)年_成交金額完成度';
    COMMENT ON COLUMN  "ads_ec_ec360_gmv_kpi_overview_bi".ds IS '業(yè)務(wù)日期, yyyymmdd';
    
    COMMIT;
    
    
    -- 注意當(dāng)前執(zhí)行賬號要申請?jiān)磑dps生產(chǎn)表權(quán)限
    SELECT * FROM ads_ec_ec360_gmv_kpi_overview_bi  WHERE ds like '%' limit 10;
  3. 調(diào)度配置。

    1. 調(diào)度參數(shù):無。

    2. 時(shí)間屬性:使用默認(rèn)的配置,日調(diào)度。

    3. 調(diào)度依賴:

      • 同周期 > 依賴的上游節(jié)點(diǎn) > 輸出名retail_e_commerce_2.ads_ec_ec360_gmv_kpi_overview

      • 同周期 > 本節(jié)點(diǎn)輸出 > 輸出名retail_e_commerce_2.502654249_outretail_e_commerce_2.ads_ec_ec360_gmv_kpi_overview_bi

      44

(可選)建EMR Hive內(nèi)表

說明

您需要先注冊EMR集群至DataWorks才可參考下文進(jìn)行創(chuàng)建EMR Hive內(nèi)表的操作步驟,本操作步驟為能力演示,不操作不影響后續(xù)實(shí)驗(yàn)。

  1. 創(chuàng)建調(diào)度任務(wù)。

    • 節(jié)點(diǎn)類型:EMR hHive。

    • 節(jié)點(diǎn)名:demo_emr_hive。

    • 業(yè)務(wù)流程:業(yè)務(wù)流程、DEMO_EMR_DLA、EMR、數(shù)據(jù)開發(fā)。

    45

  2. 開發(fā)SQL。

    CREATE TABLE IF NOT EXISTS demo_emr_hive
    (
        id STRING COMMENT 'ID'
        ,name STRING COMMENT '姓名'
    )
    PARTITIONED BY
    (
        pt STRING
    )
    ;
    
    INSERT INTO TABLE demo_emr_hive PARTITION(pt = '${bizdate}') VALUES ('001','張三'),('002','李四')
    ;
  3. 調(diào)度配置。

    僅演示,不發(fā)布調(diào)度。

發(fā)布節(jié)點(diǎn)

將以上所有節(jié)點(diǎn)依次發(fā)布到生產(chǎn)環(huán)境,如果已經(jīng)發(fā)布的則不需要再發(fā)布。46