DataWorks智能數據建模產品內置了零售電子商務數據倉庫行業模型模板,您可以一鍵導入模板,本文結合零售電子商務業務背景以及模型構建核心步驟來幫助您了解維度建模理論和智能數據建模產品。
案例使用流程
零售電子商務公司背景簡介
零售電子商務公司是全品類綜合性電商平臺,隨著業務的發展,每天新增的用戶訪問行為日志、訂單交易等數據越來越龐大,對這部分數據進行分析挖掘可以更好地了解用戶行為、商品銷售情況等,從而更好地進行運營和決策。
通過對數據進行建模,平臺可以發現數據中的規律和趨勢,更好地進行數據分析和挖掘,因此零售電商公司需要搭建一套完整數據模型。
我們會在DataWorks智能建模產品上完成整套模型的開發和管理,模型可以直接對接DataWorks其他模塊,基于數倉云產品使用,也可以導出對應的DDL或ETL代碼實現更靈活的應用。本案例搭建完成后我們會為您介紹如何在DataWorks其他模塊中消費和使用這一套模型。
我們可以在DataWorks數據資產模塊中查看數據模型、數據指標資產的全景。
數據資產目前處于邀測階段,保有DataWorks標準版、專業版、企業版的用戶如需使用數據資產,可提交工單聯系技術支持人員開通白名單免費使用。邀測結束后,數據資產需單獨購買才可使用。升級或購買DataWorks相應版本,請參見DataWorks各版本詳解。
本案例中涉及到的分層劃域、事實表模型、維度表模型、維度模型概覽如下圖所示:
維度建模儲備知識介紹
智能建模強依賴于Kimball維度建模理論,請您在實際操作前務必閱讀一下數倉分層和維度建模中的基本概念。
以下結合案例簡單介紹了維度建模模型理論,更多關于維度建模方法論、維度表事實表模型設計內容,請參見《Star Schema完全參考手冊》[1]中的第2章~第6章節和第11章節、《數據倉庫工具箱(第3版)》[2]。
實施工作流可以參考下圖:
上面示意圖引用自阿里巴巴數據技術及產品部《大數據之路:阿里巴巴大數據實踐》,部分修改。
數倉規劃相關概念
業務分類:業務分類是某一大類的業務的指標和維度的集合。在后續模型設計過程中,可將模型歸屬到對應的業務分類,提升后續模型使用的便捷性。例如零售電子商務就是一個一級業務分類,如需進一步細分,可分為門店零售,電子商務等。
數據域:數據域是指一個或多個業務過程或者維度的集合。例如在電商領域,可以劃分消費者域、商品域、交易域等。
業務過程:業務過程指企業的業務活動事件,如下單,支付。
數據集市:是基于業務分類,面向特定應用場景或者產品的數據組織。通常位于數據應用層,依賴于公共層的整合數據。例如電商集市(數據應用集市)、供應鏈數據集市(業務集市)等。
主題域:用于將數據集市按照分析視角進行劃分,通常是聯系較為緊密的數據主題的集合。例如在行業集市下,可以創建商品、渠道等主題域。
數倉分層體系:數據倉庫的分層體系如下圖所示:
維度概念
維度:維度是觀察業務狀況的視角,提供圍繞某一業務過程事件所涉及的“誰、什么、何處、何時、為什么、如何”等背景。例如,會員維度、日期維度、城市維度等。
指標概念
指標:是衡量業務特征的統計數值,用于體現企業某一業務活動的業務狀況。例如,會員數、銷售額、支付金額。
指標體系由原子指標、修飾詞、時間周期和派生指標構成。
原子指標:是基于某一業務過程下的度量,如“支付訂單”業務過程中的“支付金額”。度量:是指可以被分析的數值數據,例如,銷售額、支付金額等。
修飾詞:是對指標統計業務范圍的限定,如限定“支付金額”的統計范圍為“母嬰類產品”。
時間周期:用于明確指標統計的時間范圍或者時間點,如指定統計“支付金額”的時間周期為“最近7天”。
派生指標:由原子指標、修飾詞、時間周期組合定義。如,統計“最近7天”“母嬰類產品”的“支付金額”。
環境準備
創建工作空間并創建MaxCompute數據源
登錄DataWorks控制臺,單擊左側導航欄的工作空間,選擇工作空間地域為華東2(上海)后,在工作空間列表頁面單擊創建工作空間。進入創建工作空間詳情頁面,配置工作空間信息后單擊創建工作空間。其中核心配置參數如表所示,其他參數可自定義配置或保持默認值即可。
參數
描述
工作空間名稱
可自定義工作空間名稱。由于工作空間名稱需要全局唯一,如果后續操作時提示名稱已存在,可更換名稱。
本案例設置工作空間名稱為retail_e_commerce_<自定義>。
生產、開發環境隔離
選擇:默認不打開生產、開發環境隔離開關,本案例選擇簡單模式即可。
【擴展知識】
DataWorks的工作空間分為簡單模式和標準模式:
簡單模式:指一個DataWorks工作空間對應一個引擎項目,無法設置開發和生產環境,只能進行簡單的數據開發,無法對數據開發流程以及表權限進行嚴格控制。
標準模式:指一個DataWorks工作空間對應兩個引擎項目,可以設置開發和生產兩種環境,提升代碼開發規范,并能夠對表權限進行嚴格控制,禁止隨意操作生產環境的表,保證生產表的數據安全。
詳情請參見必讀:簡單模式和標準模式的區別。
創建MaxCompute數據源。MaxCompute為計費產品,您可以創建數據源時選擇已有的MaxCompute項目,或新創建一個MaxCompute項目。創建數據源的操作請參見創建MaxCompute數據源。
導入模型
創建完成后,找到已創建的工作空間,單擊操作列的
。默認進入數倉分層頁面,在頂部菜單欄單擊行業模型模板,進入行業模型模板頁面。
單擊進入零售電子商務模板。
在頁面中單擊載入完整版零售電子商務模型模板,進入載入模板配置頁面,選擇載入方式后單擊確認,等待載入完成,您可以前往相應模塊進行體驗。
說明在導入模型前,確保當前賬號已有項目所有者、空間管理員或模型設計師角色(個人版僅限主賬號登錄)。授權詳情請參見空間級模塊權限管控。
模型設計
數倉規劃
業務分類規劃
當企業業務比較復雜,不同業務之間需要共享數據域,但是又希望能在模型設計和應用過程中快速定位本業務的數據時,您可結合真實業務情況,規劃不同的業務分類。在后續事實表、維度表建模后,可以關聯到業務分類中。創建業務分類的操作可參見業務分類。
查看零售電子商務行業模板導入的“零售”業務分類,如果有更細粒度的分類需求也可以繼續創建子分類。
數倉分層規劃
為了提升數據的加工效率,我們需要對數據模型進行分層。數倉分層是結合對業務場景、實際數據、使用系統的綜合分析,對數據模型進行的整體架構設計及層級劃分。DataWorks為您默認創建業界通用的五層數倉分層如下表所示,也可以新建其他層級。后續所有表模型都至少關聯且僅關聯一個層級。
層級 | 描述 |
數據引入層 ODS(Operational Data Store) | ODS層用于存放未經過處理的原始數據至數據倉庫系統,其數據表的結構與原始數據所在的數據系統中的表結構一致,是數據倉庫的數據準備區。 |
公共維度層 DIM(Dimension) | DIM層使用維度構建數據模型。可基于實際業務,存放邏輯模型的維度表;或存放概念模型的維度定義,通過定義維度,確定維度主鍵,添加維度屬性,關聯不同維度等操作,建立整個企業的一致性數據分析維表。 維度表推薦表名規范:dim_{業務分類}_{數據域}_{自定義內容}_{存儲策略}。 |
明細數據層DWD(Data Warehouse Detail) | DWD層通過企業的業務活動事件構建數據模型。基于具體業務事件的特點,構建最細粒度的明細數據表。您可以結合企業的數據使用特點,將明細數據表的某些重要維度屬性字段適當冗余,即寬表化處理。同時,也可以減少明細數據表及維度表的關聯,提高明細表的易用性。 推薦表名規范:dwd_{業務分類}_{數據域}_{業務過程}_{自定義內容}_{存儲策略}。 |
匯總數據層DWS(Data Warehouse Summary) | DWS層通過分析的主題對象構建數據模型。基于上層的應用和產品的指標需求,構建公共粒度的匯總指標事實表。推薦表名規范:dws_{業務分類}_{數據域}_{自定義內容}_{時間周期}。 |
應用數據層ADS(Application Data Service) | 以分析的主題對象作為建模驅動,基于公共粒度的匯總指標表,構建直接面向業務分析需求的業務分析指標表。推薦表名規范:ads_{業務分類}_{數據集市}_{主題域}_{自定義內容}_{時間周期}。 |
公共層規劃
公共層用于加工、整合貼源層輸入的公共數據,建立統一的指標維度,構建可復用面向分析和統計的明細事實數據和匯總數據。該層級可掛載明細表、維度表、匯總表。
在公共層規劃中我們需要創建好數據域以及業務過程,以便后面創建的明細表模型、維度表模型、匯總表模型可以進行掛載。在實際建模時我們需要先選擇好業務過程,再根據業務過程進行劃分數據域。
數據域構建
劃分數據域可以更好地管理數據,提高數據的利用率,降低數據冗余度、幫助企業更好地了解自己的業務。數據域面向業務分析,可以概括為一個個不可拆分的行為事件。在劃分數據域時,既能涵蓋當前所有業務需求,又能在新業務拓展時無影響地被包含進已有的數據域中,并擴展新的數據域。
數據域示例:
數據域
說明
消費者域
包含訪客注冊、會員登錄等相關行為的數據。
商品域
包含商家對商品進行入庫、上架、下架等相關行為的數據。
交易域
包含所有消費者和商家之間的交易行為如加購、下單、支付等相關的數據。
我們將各個域錄入到系統中,以便后續新建業務過程、新建公共層表模型的時候做關聯,每個業務過程、公共層表模型等都必須歸屬且僅歸屬于一個數據域。
零售電子商務行業模型模板已經導入數據域,如下圖所示。
業務過程構建
在明確了業務需求以后,需要對業務的整個生命周期進行分析,明確關鍵的業務步驟,選擇和需求有關的業務過程。
例如,在一次交易過程中,涉及到買家加購、買家下單、訂單創建、等待買家付款、買家付款、等待賣家發貨、賣家發貨、等待買家確認收貨、買家確認收貨、交易成功等步驟,而對分析有意義的我們僅需要關注買家加購、訂單創建、買家付款、交易成功這些核心步驟,再從核心步驟中抽象出業務過程“加購、訂單創建、訂單支付”。
說明上面示意圖引用自阿里巴巴數據技術及產品部《大數據之路:阿里巴巴大數據實踐》,部分修改。
我們將抽象好的各個業務過程錄入到系統中,以便后續在創建公共層匯總表模型、公共層指標的時候做關聯,公共層匯總表模型、公共層指標等都必須歸屬且僅歸屬于一個業務過程。零售電子商務行業模型模板已經導入業務過程,如下圖所示,以“訂單支付”為例,英文縮寫為“order_pay,歸屬于交易域,包含了消費者和商家之間的訂單支付相關行為數據。
我們再查看數據域“交易域”,可以看到已關聯的業務過程“加購、訂單創建、訂單支付、退款”等。
應用層規劃
應用層是基于實際應用需求,獲取公共層加工整合后的數據,面向具體應用場景或指定產品進行的個性化數據統計。該層級可以掛載應用表、維度表。在應用層規劃中我們需要創建好數據集市以及主題域,以便后面創建的應用表模型、維度表模型可以進行掛載。
數據集市構建
數據集市是基于業務分類,面向特定應用場景或者產品的數據組織。通常位于數據應用層,依賴于公共層的整合數據。
零售電子商務行業模型模板已經導入數據集市,如下圖,以“行業集市”為例,重點服務行業運營人員的分析需求,所屬業務分類為零售,后續基于不同視角對行業集市中的數據劃分成“商品、品類、品牌”等主題域。后續在創建應用層派生指標、創建應用層模型時需要關聯到目標集市和主題域中。
主題域構建
創建完數據集市以后,我們需要將目標“行業集市”基于不同的視角劃分成“商品、品類、品牌、消費者、商家、渠道、地區”等主題域,最終面向業務應用統計分析數據。
零售電子商務行業模型模板已經導入主題域,如下圖所示,以“消費者”主題域為例,消費者主題域重點服務行業運營人員關于消費者畫像的分析需求,歸屬于行業集市。后續在創建應用層派生指標、創建應用層模型時需要關聯到對應主題域中。
構建維度
維度是您觀察業務狀況的視角,您可在維度建模中規劃并創建維度,后續創建維度表時進行關聯,關聯后即可通過不同維度分析呈現不同視角的業務數據狀況。
如下圖所示,我們可以通過“日期維度、訂單維度、商品維度、訂單類型維度、訂單狀態維度”來描述“訂單創建”業務過程的環境。
維度示例:
數據域 (功能模塊/業務線) | 維度 |
消費者域 | 賬戶、會員等 |
商品域 | 品牌、類目、品類、商品等 |
交易域 | 訂單、訂單類型、支付幣種、支付方式等 |
零售電子商務行業模型模板已經導入了各個數據域下的維度,如下圖所示,我們嘗試新建一個“賬戶_測試”維度,歸屬于“公共層-維度層”,數據域為“消費者域”,英文縮寫“account_test”,中文名稱“賬戶_測試”。
構建維度表模型
維度表一般由主鍵列和表示維度的列也叫維度屬性組成,表示維度的列提供事實存在的環境。維度屬性是查詢約束條件、分組和報表標簽生成的基本來源,是數據易用性的關鍵。
例如,商品維度表,由主鍵“商品id”,維度屬性“商品名稱、商品單價”,以及與品牌維度表建立關聯關系的外鍵“品牌id”組成。
維度設計重要且復雜,當前案例沒有詳細展開,更多相關方法論可以參考《Star Schema完全參考手冊》[1]第5章、第6章,《數據倉庫工具箱(第3版)》[2]第2章第3節、第4節。
零售電子商務行業模型模板已經導入了各個數據域下的維度表模型,我們嘗試新建一個“商品屬性維度表_測試”模型。
基本信息
基本信息
值
*數倉分層
公共層-維度層
業務分類
零售
*數據域
商品域
存儲策略
每日全量(df)
維度
商品(sku)
表名規則
-(在“數倉規劃-數倉分層”單擊具體分層,可以為每個層級配置強/弱表名檢查器,新建表模型時可以選擇對應的檢查器,那么表名就會根據選擇的數倉分層、業務分類、數據域等自動填充英文縮寫)
*表名
dim_ec_itm_attribute_df_test
維度表推薦表名規范:dim_{業務分類}_{數據域}_{自定義內容}_{存儲策略}
*表中文名
商品屬性維度表_測試
生命周期
7
描述
零售&泛交易類業務商品屬性維度表。
字段和分區字段管理
支持手動錄入、快捷模式或代碼模式的方式配置字段管理和分區字段管理,建議新建模型時使用快捷模式查找已有表或視圖的方式來快速導入,修改模型時使用代碼模式,兩種方式結合使用。
這里使用“代碼模式-FML語言(適用于維度建模領域的類SQL語言,代碼模式建模)”快速覆蓋導入(需先保存一次基本信息,再編輯代碼模式導入)
商品屬性維度表FML腳本:
-- 模型開始發布物理表(發布前審批、發布中、發布成功后)后,表名均無法進行修改。 CREATE DIM TABLE dim_ec_itm_attribute_df_test ALIAS '商品屬性維度表' ( id ALIAS 'id' STRING COMMENT 'id', gmt_create ALIAS '創建時間' TIMESTAMP COMMENT '創建時間', gmt_modfied ALIAS '修改時間' TIMESTAMP COMMENT '修改時間', name ALIAS '屬性名稱' STRING COMMENT '屬性名稱' ) COMMENT '零售&泛交易類業務商品屬性維度表。' PARTITIONED BY ( ds ALIAS '業務日期, yyyymmdd' STRING COMMENT '業務日期, yyyymmdd' ) WITH('life_cycle'='7');
構建明細表模型
明細表用于存儲大量能夠體現業務活動狀況的實際數據或詳細數值,是數據聚合后依據某個維度生成的結果表。
明細表是一張事實表,事實表作為數據倉庫維度建模的核心,緊緊圍繞著業務過程來設計,通過描述業務過程的度量來表達業務過程。事實表存儲事件的數值化度量,圍繞事實表的是多個維度表。
如下圖所示,我們可以通過“日期維度、訂單維度、商品維度、訂單類型維度、訂單狀態維度”來描述“訂單創建”業務過程的環境,并通過“商品件數”來度量“訂單創建”業務過程。
事實表的設計方法:
例如,我們需要設計一個訂單創建明細表事實表模型。
方法一(常用):
復制貼源層(ODS)的表結構。
通常已經涵蓋了維度和度量信息。
冗余維度屬性。
冗余常用的維度屬性字段,減少下游查詢關聯表的數量,降低數據獲取復雜性。
方法二(根據建模理論從0到1確定字段):
選擇業務過程。
屬于“交易域”中的“訂單創建”業務過程。
聲明粒度。
粒度意味著定義事實表中每一行所表示的業務含義,應該盡量選擇最細級別的原子粒度,以確保事實表的應用具有最大的靈活性。比如在電商訂單中有父子訂單的概念,即一個子訂單對應一種商品,這些子訂單一同結算就會生成一個父訂單,那么為了確保事實表應用靈活性,在這里我們選擇每行的粒度為子訂單級別。
確定維度。
相關維度有“商品、收貨地址、訂單、訂單類型”等。
確定事實。
事實可以通過回答“業務過程的度量是什么”來確定,基本上都是以數量值來表示。例如,在“訂單創建”業務過程中,“商品件數”具體的值就是事實。
冗余字段。
傳統維度建模星型模型中,維度存儲在維度表中,通過事實表的外鍵獲取維度,目的是為了減少存儲消耗。而在維度模型設計中,為了提高下游的查詢效率,降低數據獲取的復雜性,減少關聯表的數量,通常事實表中會冗余常用的維度。例如,“訂單創建明細表”冗余了“收貨地址維度表”中的“收貨地址”維度,包含“收貨人地址、收貨人手機號”等維度屬性。
事實表設計重要且復雜,當前案例沒有詳細展開,更多相關方法論可以參考《Star Schema完全參考手冊》[1]第4章、第11章,《數據倉庫工具箱(第3版)》[2]第2章第2節。
零售電子商務行業模型模板已經導入了各個數據域下的明細表模型,我們嘗試新建一個“訂單創建明細表_測試”模型。
基本信息:
基本信息
值
*數倉分層
公共層-明細數據層
業務分類
零售
*業務過程
交易域/訂單創建
存儲策略
每日增量(di)
表名規則
-
*表名
dwd_ec_trd_order_create_di_test
(推薦表名規范:dwd_{業務分類}_{數據域}_{業務過程}_{自定義內容}_{存儲策略})
*表中文名
訂單創建明細表_測試
生命周期
7天
字段和分區字段管理
這里使用“代碼模式-FML語言”快速覆蓋導入。
訂單創建明細表FML腳本:
-- 模型開始發布物理表(發布前審批、發布中、發布成功后)后,表名均無法進行修改。 CREATE FACT TABLE dwd_ec_trd_order_create_di_test ALIAS '訂單創建明細表' ( gmt_create ALIAS '訂單創建時間' DATETIME COMMENT '訂單創建時間', gmt_modified ALIAS '訂單修改時間' DATETIME COMMENT '訂單修改時間', gmt_pay ALIAS '訂單支付時間' STRING COMMENT '訂單支付時間', master_order_id ALIAS '父訂單號' STRING COMMENT '父訂單號', sub_order_id ALIAS '子訂單號' STRING COMMENT '子訂單號', item_id ALIAS '商品id' STRING COMMENT '商品id', item_name ALIAS '商品名稱' STRING COMMENT '商品名稱', num ALIAS '商品件數' STRING COMMENT '商品件數', order_type ALIAS '訂單類型' STRING COMMENT '訂單類型', status ALIAS '訂單狀態' STRING COMMENT '訂單狀態', adress ALIAS '收貨地址' STRING COMMENT '收貨地址', phone ALIAS '收貨人手機號' STRING COMMENT '收貨人手機號', name ALIAS '收貨人姓名' STRING COMMENT '收貨人姓名' ) COMMENT '訂單創建明細表' PARTITIONED BY ( ds ALIAS '業務日期, yyyymmdd' STRING COMMENT '業務日期, yyyymmdd' ) WITH('life_cycle'='7');
構建數據指標
指標是衡量業務特征的統計數值,用于體現企業某一業務活動的業務狀況。在指標體系建設中我們需要明確原子指標和派生指標。在構建匯總表模型時可以從指標導入作為字段。
通常情況下,我們會在需求分析階段,從分析師、運營同學的需求中了解到具體的業務指標,再對業務指標進行提取,確定派生指標,最后從派生指標中抽象出時間周期、修飾詞和原子指標。
例如, 分析師期望查看“昨天訂單創建的總額、上周訂單創建的總額、上一財年訂單創建的總額”(業務指標),模型設計師提取出派生指標“近1天_訂單創建_訂單總額、近7天_訂單創建_訂單總額、財年_訂單創建_訂單總額”,最后抽象出時間周期“近1天、近7天、財年”,修飾詞“訂單創建”,原子指標“訂單總額”。
指標示例:
數據域/業務過程 | 原子指標 | 派生指標 |
消費者域-注冊 | 會員數 | - |
交易域-訂單創建 | 訂單金額、訂單數、訂單客價 | 近1天_訂單創建&子_訂單金額、近3天_訂單創建&子_訂單金額等 |
商品域-商品入庫 | 商品數量 | - |
零售電子商務行業模型模板已經導入部分相關原子指標、修飾詞、時間周期(系統自帶)、派生指標。我們嘗試新建其中一個原子指標“訂單金額_測試”,歸屬于業務過程“交易域/訂單創建”,描述為“對訂單金額進行求和匯總”,計算函數為“累加(SUM)”,小數保留兩位,數據單位“元(人民幣)”。
查看其中一個修飾詞“訂單創建”,英文名稱“order_create”,業務口徑為“訂單創建”。歸屬于匯總數據層,零售業務分類,交易數據域。
查看系統自帶的時間周期,有天粒度的“近1天、近3天”等,有年粒度的“自然年、財年”等,以“自然年”為例,英文縮寫為“cy”。
批量創建4個派生指標:近1天_訂單支付_訂單金額、近7天_訂單支付_訂單金額、近1天_訂單創建_訂單金額、近7天_訂單創建_訂單金額
原子指標:訂單金額_測試
修飾詞:訂單支付、訂單創建(這里需一個一個勾選確認,如果一起勾選會拼接在一起,因為派生指標允許多個修飾詞)
時間周期:近1天、近7天
為了后續構建匯總表模型、應用表模型能夠關聯和引用指標,這里我們需要將公共層-交易域下的所有派生指標(共109個)在列表頁批量提交。
構建公共匯總模型
匯總表用于組織一個數據域下相同時間周期、相同維度的多個派生指標的統計數據,為后續的業務查詢,OLAP分析,數據分發等提供基礎。您可以使用匯總表呈現相同時間、相同維度下,多個派生指標所統計的業務情況。
零售電子商務行業模型模板已經導入了各個數據域下的匯總表模型,我們嘗試新建一個“訂單分析表_測試”模型,如下表所示,訂單分析匯總表呈現了在“1d(近1天)、3d(近3天)、1w(近7天)...”等時間周期,“訂單”維度下多個派生指標所統計的業務情況。
基本信息:
基本信息
值
*數倉分層
公共層-匯總數據層
業務分類
零售
*數據域
交易域
時間周期
1d(近1天)、3d(近3天)、1w(近7天)、2w(近14天)、1m(近30天)、cm(自然月)、cy(自然年)、std(歷史截止當日)
修飾詞
order_create(訂單創建)、order_pay(訂單支付)
表名規則
-
*表名
dws_ec_trd_order_nd_test
推薦表名規范:dws_{業務分類}_{數據域}_{自定義內容}_{時間周期}
*表中文名
訂單分析表_測試
生命周期
7天
字段和分區字段管理
這里使用快捷模式>從指標導入快速導入,按基本信息中的時間周期和修飾詞進行過濾后批量導入字段。
手動創建一個分區字段“ds”,類型為“字符串(STRING)”,描述“業務日期, yyyymmdd”。
附:訂單分析表FML腳本
-- 模型開始發布物理表(發布前審批、發布中、發布成功后)后,表名均無法進行修改。 CREATE DWS TABLE dws_ec_trd_order_nd_test ALIAS '訂單分析表' ( order_amt_std_order_create ALIAS '累計_訂單創建_訂單金額' DECIMAL COMMENT '累計_訂單創建_訂單金額' REFERENCES (order_amt_std_order_create), order_amt_fy_order_create ALIAS '財年_訂單創建_訂單金額' DECIMAL COMMENT '財年_訂單創建_訂單金額' REFERENCES (order_amt_fy_order_create), order_amt_cq_order_create ALIAS '自然季度_訂單創建_訂單金額' DECIMAL COMMENT '自然季度_訂單創建_訂單金額' REFERENCES (order_amt_cq_order_create), order_amt_cm_order_create ALIAS '自然月_訂單創建_訂單金額' DECIMAL COMMENT '自然月_訂單創建_訂單金額' REFERENCES (order_amt_cm_order_create), order_amt_3d_order_create ALIAS '近3天_訂單創建_訂單金額' DECIMAL COMMENT '近3天_訂單創建_訂單金額' REFERENCES (order_amt_3d_order_create), order_amt_1w_order_create ALIAS '近7天_訂單創建_訂單金額' DECIMAL COMMENT '近7天_訂單創建_訂單金額' REFERENCES (order_amt_1w_order_create), order_amt_1m_order_create ALIAS '近30天_訂單創建_訂單金額' DECIMAL COMMENT '近30天_訂單創建_訂單金額' REFERENCES (order_amt_1m_order_create), order_amt_1d_order_create ALIAS '近1天_訂單創建_訂單金額' DECIMAL COMMENT '近1天_訂單創建_訂單金額' REFERENCES (order_amt_1d_order_create), order_amt_std_order_create_master ALIAS '累計_訂單創建&父_訂單金額' DECIMAL COMMENT '累計_訂單創建&父_訂單金額' REFERENCES (order_amt_std_order_create_master), order_amt_1w_order_create_sub ALIAS '近7天_訂單創建&子_訂單金額' DECIMAL COMMENT '近7天_訂單創建&子_訂單金額' REFERENCES (order_amt_1w_order_create_sub), order_amt_3d_order_create_master ALIAS '近3天_訂單創建&父_訂單金額' DECIMAL COMMENT '近3天_訂單創建&父_訂單金額' REFERENCES (order_amt_3d_order_create_master), order_amt_1m_order_create_sub ALIAS '近30天_訂單創建&子_訂單金額' DECIMAL COMMENT '近30天_訂單創建&子_訂單金額' REFERENCES (order_amt_1m_order_create_sub), order_amt_cq_order_create_master ALIAS '自然季度_訂單創建&父_訂單金額' DECIMAL COMMENT '自然季度_訂單創建&父_訂單金額' REFERENCES (order_amt_cq_order_create_master), order_amt_cm_order_create_master ALIAS '自然月_訂單創建&父_訂單金額' DECIMAL COMMENT '自然月_訂單創建&父_訂單金額' REFERENCES (order_amt_cm_order_create_master), order_amt_2w_order_create_sub ALIAS '近14天_訂單創建&子_訂單金額' DECIMAL COMMENT '近14天_訂單創建&子_訂單金額' REFERENCES (order_amt_2w_order_create_sub), order_amt_1d_order_create_master ALIAS '近1天_訂單創建&父_訂單金額' DECIMAL COMMENT '近1天_訂單創建&父_訂單金額' REFERENCES (order_amt_1d_order_create_master), order_amt_cy_order_create_sub ALIAS '自然年_訂單創建&子_訂單金額' DECIMAL COMMENT '自然年_訂單創建&子_訂單金額' REFERENCES (order_amt_cy_order_create_sub), order_amt_1m_order_create_master ALIAS '近30天_訂單創建&父_訂單金額' DECIMAL COMMENT '近30天_訂單創建&父_訂單金額' REFERENCES (order_amt_1m_order_create_master), order_amt_cq_order_create_sub ALIAS '自然季度_訂單創建&子_訂單金額' DECIMAL COMMENT '自然季度_訂單創建&子_訂單金額' REFERENCES (order_amt_cq_order_create_sub), order_amt_3d_order_create_sub ALIAS '近3天_訂單創建&子_訂單金額' DECIMAL COMMENT '近3天_訂單創建&子_訂單金額' REFERENCES (order_amt_3d_order_create_sub), order_amt_2w_order_create_master ALIAS '近14天_訂單創建&父_訂單金額' DECIMAL COMMENT '近14天_訂單創建&父_訂單金額' REFERENCES (order_amt_2w_order_create_master), order_amt_cm_order_create_sub ALIAS '自然月_訂單創建&子_訂單金額' DECIMAL COMMENT '自然月_訂單創建&子_訂單金額' REFERENCES (order_amt_cm_order_create_sub), order_amt_1d_order_create_sub ALIAS '近1天_訂單創建&子_訂單金額' DECIMAL COMMENT '近1天_訂單創建&子_訂單金額' REFERENCES (order_amt_1d_order_create_sub), order_amt_1w_order_create_master ALIAS '近7天_訂單創建&父_訂單金額' DECIMAL COMMENT '近7天_訂單創建&父_訂單金額' REFERENCES (order_amt_1w_order_create_master), order_amt_cy_order_create_master ALIAS '自然年_訂單創建&父_訂單金額' DECIMAL COMMENT '自然年_訂單創建&父_訂單金額' REFERENCES (order_amt_cy_order_create_master), order_amt_std_order_create_sub ALIAS '累計_訂單創建&子_訂單金額' DECIMAL COMMENT '累計_訂單創建&子_訂單金額' REFERENCES (order_amt_std_order_create_sub), order_amt_std_order_pay_sub ALIAS '累計_訂單支付&子_訂單金額' DECIMAL COMMENT '累計_訂單支付&子_訂單金額' REFERENCES (order_amt_std_order_pay_sub), order_amt_std_order_pay_master ALIAS '累計_訂單支付&父_訂單金額' DECIMAL COMMENT '累計_訂單支付&父_訂單金額' REFERENCES (order_amt_std_order_pay_master), order_amt_cy_order_pay_sub ALIAS '自然年_訂單支付&子_訂單金額' DECIMAL COMMENT '自然年_訂單支付&子_訂單金額' REFERENCES (order_amt_cy_order_pay_sub), order_amt_cy_order_pay_master ALIAS '自然年_訂單支付&父_訂單金額' DECIMAL COMMENT '自然年_訂單支付&父_訂單金額' REFERENCES (order_amt_cy_order_pay_master), order_amt_cq_order_pay_sub ALIAS '自然季度_訂單支付&子_訂單金額' DECIMAL COMMENT '自然季度_訂單支付&子_訂單金額' REFERENCES (order_amt_cq_order_pay_sub), order_amt_cq_order_pay_master ALIAS '自然季度_訂單支付&父_訂單金額' DECIMAL COMMENT '自然季度_訂單支付&父_訂單金額' REFERENCES (order_amt_cq_order_pay_master), order_amt_cm_order_pay_sub ALIAS '自然月_訂單支付&子_訂單金額' DECIMAL COMMENT '自然月_訂單支付&子_訂單金額' REFERENCES (order_amt_cm_order_pay_sub), order_amt_cm_order_pay_master ALIAS '自然月_訂單支付&父_訂單金額' DECIMAL COMMENT '自然月_訂單支付&父_訂單金額' REFERENCES (order_amt_cm_order_pay_master), order_amt_3d_order_pay_sub ALIAS '近3天_訂單支付&子_訂單金額' DECIMAL COMMENT '近3天_訂單支付&子_訂單金額' REFERENCES (order_amt_3d_order_pay_sub), order_amt_3d_order_pay_master ALIAS '近3天_訂單支付&父_訂單金額' DECIMAL COMMENT '近3天_訂單支付&父_訂單金額' REFERENCES (order_amt_3d_order_pay_master), order_amt_2w_order_pay_sub ALIAS '近14天_訂單支付&子_訂單金額' DECIMAL COMMENT '近14天_訂單支付&子_訂單金額' REFERENCES (order_amt_2w_order_pay_sub), order_amt_2w_order_pay_master ALIAS '近14天_訂單支付&父_訂單金額' DECIMAL COMMENT '近14天_訂單支付&父_訂單金額' REFERENCES (order_amt_2w_order_pay_master), order_amt_1w_order_pay_sub ALIAS '近7天_訂單支付&子_訂單金額' DECIMAL COMMENT '近7天_訂單支付&子_訂單金額' REFERENCES (order_amt_1w_order_pay_sub), order_amt_1w_order_pay_master ALIAS '近7天_訂單支付&父_訂單金額' DECIMAL COMMENT '近7天_訂單支付&父_訂單金額' REFERENCES (order_amt_1w_order_pay_master), order_amt_1m_order_pay_sub ALIAS '近30天_訂單支付&子_訂單金額' DECIMAL COMMENT '近30天_訂單支付&子_訂單金額' REFERENCES (order_amt_1m_order_pay_sub), order_amt_1m_order_pay_master ALIAS '近30天_訂單支付&父_訂單金額' DECIMAL COMMENT '近30天_訂單支付&父_訂單金額' REFERENCES (order_amt_1m_order_pay_master), order_amt_1d_order_pay_sub ALIAS '近1天_訂單支付&子_訂單金額' DECIMAL COMMENT '近1天_訂單支付&子_訂單金額' REFERENCES (order_amt_1d_order_pay_sub), order_amt_1d_order_pay_master ALIAS '近1天_訂單支付&父_訂單金額' DECIMAL COMMENT '近1天_訂單支付&父_訂單金額' REFERENCES (order_amt_1d_order_pay_master), order_amt_3d_order_pay ALIAS '近3天_訂單支付_訂單金額' DECIMAL COMMENT '近3天_訂單支付_訂單金額' REFERENCES (order_amt_3d_order_pay), order_amt_1w_order_pay ALIAS '近7天_訂單支付_訂單金額' DECIMAL COMMENT '近7天_訂單支付_訂單金額' REFERENCES (order_amt_1w_order_pay), order_amt_1d_order_pay ALIAS '近1天_訂單支付_訂單金額' DECIMAL COMMENT '近1天_訂單支付_訂單金額' REFERENCES (order_amt_1d_order_pay), order_amt_fy_order_pay ALIAS '財年_訂單支付_訂單金額' DECIMAL COMMENT '財年_訂單支付_訂單金額' REFERENCES (order_amt_fy_order_pay), order_amt_cq_order_pay ALIAS '自然季度_訂單支付_訂單金額' DECIMAL COMMENT '自然季度_訂單支付_訂單金額' REFERENCES (order_amt_cq_order_pay), order_amt_cm_order_pay ALIAS '自然月_訂單支付_訂單金額' DECIMAL COMMENT '自然月_訂單支付_訂單金額' REFERENCES (order_amt_cm_order_pay), order_amt_std_order_pay ALIAS '累計_訂單支付_訂單金額' DECIMAL COMMENT '累計_訂單支付_訂單金額' REFERENCES (order_amt_std_order_pay), order_amt_1m_order_pay ALIAS '近30天_訂單支付_訂單金額' DECIMAL COMMENT '近30天_訂單支付_訂單金額' REFERENCES (order_amt_1m_order_pay), member_cnt_3d_order_create ALIAS '近3天_訂單創建_會員數' BIGINT COMMENT '近3天_訂單創建_會員數' REFERENCES (member_cnt_3d_order_create), member_cnt_1w_order_create ALIAS '近7天_訂單創建_會員數' BIGINT COMMENT '近7天_訂單創建_會員數' REFERENCES (member_cnt_1w_order_create), member_cnt_1m_order_create ALIAS '近30天_訂單創建_會員數' BIGINT COMMENT '近30天_訂單創建_會員數' REFERENCES (member_cnt_1m_order_create), member_cnt_1d_order_create ALIAS '近1天_訂單創建_會員數' BIGINT COMMENT '近1天_訂單創建_會員數' REFERENCES (member_cnt_1d_order_create), goods_cnt_std_order_create ALIAS '累計_訂單創建_商品數量' BIGINT COMMENT '累計_訂單創建_商品數量' REFERENCES (goods_cnt_std_order_create), goods_cnt_fy_order_create ALIAS '財年_訂單創建_商品數量' BIGINT COMMENT '財年_訂單創建_商品數量' REFERENCES (goods_cnt_fy_order_create), goods_cnt_cq_order_create ALIAS '自然季度_訂單創建_商品數量' BIGINT COMMENT '自然季度_訂單創建_商品數量' REFERENCES (goods_cnt_cq_order_create), goods_cnt_cm_order_create ALIAS '自然月_訂單創建_商品數量' BIGINT COMMENT '自然月_訂單創建_商品數量' REFERENCES (goods_cnt_cm_order_create), goods_cnt_3d_order_create ALIAS '近3天_訂單創建_商品數量' BIGINT COMMENT '近3天_訂單創建_商品數量' REFERENCES (goods_cnt_3d_order_create), goods_cnt_1w_order_create ALIAS '近7天_訂單創建_商品數量' BIGINT COMMENT '近7天_訂單創建_商品數量' REFERENCES (goods_cnt_1w_order_create), seller_cnt_1w_order_create ALIAS '近7天_訂單創建_賣家數' BIGINT COMMENT '近7天_訂單創建_賣家數' REFERENCES (seller_cnt_1w_order_create), seller_cnt_cq_order_create ALIAS '自然季度_訂單創建_賣家數' BIGINT COMMENT '自然季度_訂單創建_賣家數' REFERENCES (seller_cnt_cq_order_create), seller_cnt_1m_order_create ALIAS '近30天_訂單創建_賣家數' BIGINT COMMENT '近30天_訂單創建_賣家數' REFERENCES (seller_cnt_1m_order_create), seller_cnt_std_order_create ALIAS '累計_訂單創建_賣家數' BIGINT COMMENT '累計_訂單創建_賣家數' REFERENCES (seller_cnt_std_order_create), seller_cnt_3d_order_create ALIAS '近3天_訂單創建_賣家數' BIGINT COMMENT '近3天_訂單創建_賣家數' REFERENCES (seller_cnt_3d_order_create), seller_cnt_1d_order_create ALIAS '近1天_訂單創建_賣家數' BIGINT COMMENT '近1天_訂單創建_賣家數' REFERENCES (seller_cnt_1d_order_create), seller_cnt_fy_order_create ALIAS '財年_訂單創建_賣家數' BIGINT COMMENT '財年_訂單創建_賣家數' REFERENCES (seller_cnt_fy_order_create), seller_cnt_cm_order_create ALIAS '自然月_訂單創建_賣家數' BIGINT COMMENT '自然月_訂單創建_賣家數' REFERENCES (seller_cnt_cm_order_create), member_cnt_std_order_create ALIAS '累計_訂單創建_會員數' BIGINT COMMENT '累計_訂單創建_會員數' REFERENCES (member_cnt_std_order_create), member_cnt_fy_order_create ALIAS '財年_訂單創建_會員數' BIGINT COMMENT '財年_訂單創建_會員數' REFERENCES (member_cnt_fy_order_create), member_cnt_cq_order_create ALIAS '自然季度_訂單創建_會員數' BIGINT COMMENT '自然季度_訂單創建_會員數' REFERENCES (member_cnt_cq_order_create), member_cnt_cm_order_create ALIAS '自然月_訂單創建_會員數' BIGINT COMMENT '自然月_訂單創建_會員數' REFERENCES (member_cnt_cm_order_create), goods_cnt_1m_order_create ALIAS '近30天_訂單創建_商品數量' BIGINT COMMENT '近30天_訂單創建_商品數量' REFERENCES (goods_cnt_1m_order_create), goods_cnt_1d_order_create ALIAS '近1天_訂單創建_商品數量' BIGINT COMMENT '近1天_訂單創建_商品數量' REFERENCES (goods_cnt_1d_order_create), seller_cnt_std_order_pay ALIAS '累計_訂單支付_賣家數' BIGINT COMMENT '累計_訂單支付_賣家數' REFERENCES (seller_cnt_std_order_pay), seller_cnt_cq_order_pay ALIAS '自然季度_訂單支付_賣家數' BIGINT COMMENT '自然季度_訂單支付_賣家數' REFERENCES (seller_cnt_cq_order_pay), seller_cnt_cm_order_pay ALIAS '自然月_訂單支付_賣家數' BIGINT COMMENT '自然月_訂單支付_賣家數' REFERENCES (seller_cnt_cm_order_pay), goods_cnt_std_order_pay ALIAS '累計_訂單支付_商品數量' BIGINT COMMENT '累計_訂單支付_商品數量' REFERENCES (goods_cnt_std_order_pay), goods_cnt_1w_order_pay ALIAS '近7天_訂單支付_商品數量' BIGINT COMMENT '近7天_訂單支付_商品數量' REFERENCES (goods_cnt_1w_order_pay), goods_cnt_1m_order_pay ALIAS '近30天_訂單支付_商品數量' BIGINT COMMENT '近30天_訂單支付_商品數量' REFERENCES (goods_cnt_1m_order_pay), seller_cnt_1w_order_pay ALIAS '近7天_訂單支付_賣家數' BIGINT COMMENT '近7天_訂單支付_賣家數' REFERENCES (seller_cnt_1w_order_pay), seller_cnt_1m_order_pay ALIAS '近30天_訂單支付_賣家數' BIGINT COMMENT '近30天_訂單支付_賣家數' REFERENCES (seller_cnt_1m_order_pay), seller_cnt_3d_order_pay ALIAS '近3天_訂單支付_賣家數' BIGINT COMMENT '近3天_訂單支付_賣家數' REFERENCES (seller_cnt_3d_order_pay), member_cnt_std_order_pay ALIAS '累計_訂單支付_會員數' BIGINT COMMENT '累計_訂單支付_會員數' REFERENCES (member_cnt_std_order_pay), member_cnt_fy_order_pay ALIAS '財年_訂單支付_會員數' BIGINT COMMENT '財年_訂單支付_會員數' REFERENCES (member_cnt_fy_order_pay), member_cnt_cq_order_pay ALIAS '自然季度_訂單支付_會員數' BIGINT COMMENT '自然季度_訂單支付_會員數' REFERENCES (member_cnt_cq_order_pay), member_cnt_cm_order_pay ALIAS '自然月_訂單支付_會員數' BIGINT COMMENT '自然月_訂單支付_會員數' REFERENCES (member_cnt_cm_order_pay), member_cnt_1w_order_pay ALIAS '近7天_訂單支付_會員數' BIGINT COMMENT '近7天_訂單支付_會員數' REFERENCES (member_cnt_1w_order_pay), member_cnt_1m_order_pay ALIAS '近30天_訂單支付_會員數' BIGINT COMMENT '近30天_訂單支付_會員數' REFERENCES (member_cnt_1m_order_pay), goods_cnt_3d_order_pay ALIAS '近3天_訂單支付_商品數量' BIGINT COMMENT '近3天_訂單支付_商品數量' REFERENCES (goods_cnt_3d_order_pay), goods_cnt_1d_order_pay ALIAS '近1天_訂單支付_商品數量' BIGINT COMMENT '近1天_訂單支付_商品數量' REFERENCES (goods_cnt_1d_order_pay), seller_cnt_1d_order_pay ALIAS '近1天_訂單支付_賣家數' BIGINT COMMENT '近1天_訂單支付_賣家數' REFERENCES (seller_cnt_1d_order_pay), member_cnt_3d_order_pay ALIAS '近3天_訂單支付_會員數' BIGINT COMMENT '近3天_訂單支付_會員數' REFERENCES (member_cnt_3d_order_pay), goods_cnt_fy_order_pay ALIAS '財年_訂單支付_商品數量' BIGINT COMMENT '財年_訂單支付_商品數量' REFERENCES (goods_cnt_fy_order_pay), member_cnt_1d_order_pay ALIAS '近1天_訂單支付_會員數' BIGINT COMMENT '近1天_訂單支付_會員數' REFERENCES (member_cnt_1d_order_pay), goods_cnt_cq_order_pay ALIAS '自然季度_訂單支付_商品數量' BIGINT COMMENT '自然季度_訂單支付_商品數量' REFERENCES (goods_cnt_cq_order_pay), seller_cnt_fy_order_pay ALIAS '財年_訂單支付_賣家數' BIGINT COMMENT '財年_訂單支付_賣家數' REFERENCES (seller_cnt_fy_order_pay), goods_cnt_cm_order_pay ALIAS '自然月_訂單支付_商品數量' BIGINT COMMENT '自然月_訂單支付_商品數量' REFERENCES (goods_cnt_cm_order_pay), CONSTRAINT TP TIME_PERIOD KEY REFERENCES (1d,3d,1w,2w,1m,cm,cy,std) ) COMMENT '訂單分析表' PARTITIONED BY ( ds ALIAS '業務日期, yyyymmdd' STRING COMMENT '業務日期, yyyymmdd' ) WITH('life_cycle'='7');
構建應用匯總模型
應用表是面向具體業務場景時,用于組織相同時間周期、相同維度的多個原子指標、派生指標或統計粒度的統計數據,為后續的業務查詢,OLAP分析,數據分發等提供基礎。
應用表是將一個數據集市或主題域中的多個原子指標或派生指標,通過時間周期及關聯維度整合在一起,關聯的維度、時間周期、原子指標、派生指標,用于生成應用表中的統計字段,幫助您進行報表等分析展示。您可以使用應用表呈現相同時間、相同維度下,多個指標所統計的業務情況。
零售電子商務行業模型模板已經導入了各個主題域下的應用表模型,我們嘗試新建一個“消費者活躍程度分析表_測試”模型,如下表所示。
基本信息
基本信息
值
*數倉分層
應用層-應用數據層
*集市/主題
消費者
時間周期
1d(近1天)、3d(近3天)、1w(近7天)、2w(近14天)、1m(近30天)、cm(自然月)、cy(自然年)、std(歷史截止當日)
修飾詞
high_acticity(高活)、medium_activity(中活)、low_activity(低活)、lost(流失)
表名規則
-
*表名
ads_ec_industry_consumer_active_nd_test
推薦表名規范:ads_{業務分類}_{數據集市}_{主題域}_{自定義內容}_{時間周期}
*表中文名
消費者活躍程度分析表_測試
生命周期
30天
字段和分區字段管理
方式和上面構建匯總模型類似,這里使用“代碼模式-FML語言”快速覆蓋導入。
消費者活躍程度分析表FML腳本:
-- 模型開始發布物理表(發布前審批、發布中、發布成功后)后,表名均無法進行修改。 CREATE ADS TABLE ads_ec_industry_consumer_active_nd_test ALIAS '消費者活躍程度分析表' ( member_cnt_cy_high_activity ALIAS '自然年_高活_會員數' BIGINT COMMENT '自然年_高活_會員數' REFERENCES (member_cnt_cy_high_activity), member_cnt_cq_high_activity ALIAS '自然季度_高活_會員數' BIGINT COMMENT '自然季度_高活_會員數' REFERENCES (member_cnt_cq_high_activity), member_cnt_1m_high_activity ALIAS '近30天_高活_會員數' BIGINT COMMENT '近30天_高活_會員數' REFERENCES (member_cnt_1m_high_activity), member_cnt_2w_high_activity ALIAS '近14天_高活_會員數' BIGINT COMMENT '近14天_高活_會員數' REFERENCES (member_cnt_2w_high_activity), member_cnt_1w_high_activity ALIAS '近7天_高活_會員數' BIGINT COMMENT '近7天_高活_會員數' REFERENCES (member_cnt_1w_high_activity), member_cnt_1d_high_activity ALIAS '近1天_高活_會員數' BIGINT COMMENT '近1天_高活_會員數' REFERENCES (member_cnt_1d_high_activity), member_cnt_cy_medium_activity ALIAS '自然年_中活_會員數' BIGINT COMMENT '自然年_中活_會員數' REFERENCES (member_cnt_cy_medium_activity), member_cnt_cq_medium_activity ALIAS '自然季度_中活_會員數' BIGINT COMMENT '自然季度_中活_會員數' REFERENCES (member_cnt_cq_medium_activity), member_cnt_1m_medium_activity ALIAS '近30天_中活_會員數' BIGINT COMMENT '近30天_中活_會員數' REFERENCES (member_cnt_1m_medium_activity), member_cnt_2w_medium_activity ALIAS '近14天_中活_會員數' BIGINT COMMENT '近14天_中活_會員數' REFERENCES (member_cnt_2w_medium_activity), member_cnt_1w_medium_activity ALIAS '近7天_中活_會員數' BIGINT COMMENT '近7天_中活_會員數' REFERENCES (member_cnt_1w_medium_activity), member_cnt_1d_medium_activity ALIAS '近1天_中活_會員數' BIGINT COMMENT '近1天_中活_會員數' REFERENCES (member_cnt_1d_medium_activity), member_cnt_cy_low_activity ALIAS '自然年_低活_會員數' BIGINT COMMENT '自然年_低活_會員數' REFERENCES (member_cnt_cy_low_activity), member_cnt_cq_low_activity ALIAS '自然季度_低活_會員數' BIGINT COMMENT '自然季度_低活_會員數' REFERENCES (member_cnt_cq_low_activity), member_cnt_1m_low_activity ALIAS '近30天_低活_會員數' BIGINT COMMENT '近30天_低活_會員數' REFERENCES (member_cnt_1m_low_activity), member_cnt_2w_low_activity ALIAS '近14天_低活_會員數' BIGINT COMMENT '近14天_低活_會員數' REFERENCES (member_cnt_2w_low_activity), member_cnt_1w_low_activity ALIAS '近7天_低活_會員數' BIGINT COMMENT '近7天_低活_會員數' REFERENCES (member_cnt_1w_low_activity), member_cnt_1d_low_activity ALIAS '近1天_低活_會員數' BIGINT COMMENT '近1天_低活_會員數' REFERENCES (member_cnt_1d_low_activity), member_cnt_cy_lost ALIAS '自然年_流失_會員數' BIGINT COMMENT '自然年_流失_會員數' REFERENCES (member_cnt_cy_lost), member_cnt_cq_lost ALIAS '自然季度_流失_會員數' BIGINT COMMENT '自然季度_流失_會員數' REFERENCES (member_cnt_cq_lost), member_cnt_1m_lost ALIAS '近30天_流失_會員數' BIGINT COMMENT '近30天_流失_會員數' REFERENCES (member_cnt_1m_lost), member_cnt_2w_lost ALIAS '近14天_流失_會員數' BIGINT COMMENT '近14天_流失_會員數' REFERENCES (member_cnt_2w_lost), member_cnt_1w_lost ALIAS '近7天_流失_會員數' BIGINT COMMENT '近7天_流失_會員數' REFERENCES (member_cnt_1w_lost), member_cnt_1d_lost ALIAS '近1天_流失_會員數' BIGINT COMMENT '近1天_流失_會員數' REFERENCES (member_cnt_1d_lost), CONSTRAINT TP TIME_PERIOD KEY REFERENCES (1d,3d,1w,2w,1m,cm,cq,cy) ) COMMENT '消費者活躍程度分析表' PARTITIONED BY ( ds ALIAS '業務日期, yyyymmdd' STRING COMMENT '業務日期, yyyymmdd' ) WITH('life_cycle'='7');
逆向建模
以上公共層和應用層模型都是通過正向建模創建,在實際場景中一般物理引擎中已有大量物理表,如果希望通過DataWorks智能數據建模產品統一管理所有模型,就可以使用逆向建模:物理表反向建模將物理表反向建模至DataWorks的維度建模。
逆向建模流程
配置逆向建模策略。確定建模范圍、建模規則、建模執行方式等。
確認模型信息。
平臺根據逆向策略里的配置自動解析并匹配模型,您可以根據業務需求進行模型信息調整,例如更改表所在的數據域、業務過程等模型基礎信息。
單擊開始生成模型,生成最終模型。
完成后,您可以在維度建模>公共層-商品域-維度表下查看模型,并保存模型。
模型應用
數據模型搭建完成后,有多種場景可以消費應用,本文為您介紹物化模型和查看模型資產兩個場景。
物化模型
DataWorks智能建模提供了靈活的方式將模型生成物理表:
方式一:導出DDL語句,復制到對應引擎執行。
方式二:直接發布到DataWorks已創建的MaxCompute數據源。
例如,我們將其中一個明細匯總層表模型dws_ec_trd_order_nd(訂單分析表)發布至MaxCompute引擎開發和生產環境生成物理表,并查看物理表元數據信息。更多關于發布參數的說明已經支持物化的引擎列表可以參考發布模型至引擎官方文檔。
顯示發布成功后,我們可以前往手動刷新表元數據。
搜索目標表(dws_ec_trd_order_nd),查看retail_e_commerce_5.dws_ec_trd_order_nd的元數據信息,如下圖所示,除了基礎的元數據信息之外,還可以查看模型信息、字段關聯指標等信息。如果數據地圖搜索無返回,請先執行一下
查看模型資產
在搭建完模型并提交之后,我們可以在DataWorks數據資產模塊查看數據模型、數據指標資產的全景。
數據資產目前處于邀測階段,保有DataWorks標準版、專業版、企業版的用戶如需使用數據資產,可提交工單聯系技術支持人員開通白名單免費使用。邀測結束后,數據資產需單獨購買才可使用。升級或購買DataWorks相應版本,請參見DataWorks各版本詳解。
DataWorks智能數據建模開通后可以免費獲取零售模型模板,并按照文檔進行學習操作。您可以根據自身的業務場景,選擇合適的版本進行購買,詳情請參見:購買地址。