數(shù)據(jù)模型架構規(guī)范
本文為您介紹數(shù)據(jù)模型架構規(guī)范。
數(shù)據(jù)層次的劃分
ODS:
Operational Data Store,操作數(shù)據(jù)層,在結構上其與源系統(tǒng)的增量或者全量數(shù)據(jù)基本保持一致。
它相當于一個數(shù)據(jù)準備區(qū),同時又承擔著基礎數(shù)據(jù)的記錄以及歷史變化。
其主要作用是把基礎數(shù)據(jù)引入到MaxCompute。
CDM:
Common Data Model,公共維度模型層,又細分為DWD和DWS。
它的主要作用是完成數(shù)據(jù)加工與整合、建立一致性的維度、構建可復用的面向分析和統(tǒng)計的明細事實表以及匯總公共粒度的指標。
DWD:
Data Warehouse Detail,明細數(shù)據(jù)層。
DWS:
Data Warehouse Summary,匯總數(shù)據(jù)層。
ADS:
Application Data Service,應用數(shù)據(jù)層。
具體倉庫的分層情況需要結合業(yè)務場景、數(shù)據(jù)場景、系統(tǒng)場景進行綜合考慮。 數(shù)據(jù)分類架構

該數(shù)據(jù)分類架構在ODS層分為三部分:數(shù)據(jù)準備區(qū)、離線數(shù)據(jù)和準實時數(shù)據(jù)區(qū)。在進入到CDM層后,由以下幾部分組成:
公共維度層:
基于維度建模理念思想,建立整個企業(yè)的一致性維度。
明細粒度事實層:
以業(yè)務過程為建模驅動,基于每個具體業(yè)務過程的特點,構建最細粒度的明細層事實表。
您可以結合企業(yè)的數(shù)據(jù)使用特點,將明細事實表的某些重要維度屬性字段做適當?shù)娜哂?,即寬表化處理?/p>
公共匯總粒度事實層:
以分析的主題對象為建模驅動,基于上層的應用和產品的指標需求,構建公共粒度的匯總指標事實表,以寬表化手段來物理化模型。
數(shù)據(jù)處理流程架構

數(shù)據(jù)劃分及命名空間約定
請根據(jù)業(yè)務劃分數(shù)據(jù)并約定命名,建議針對業(yè)務名稱結合數(shù)據(jù)層次約定相關命名的英文縮寫,這樣可以給后續(xù)數(shù)據(jù)開發(fā)過程中,對項目空間、表、字段等命名做為重要參照。
按業(yè)務劃分:
命名時按主要的業(yè)務劃分,以指導物理模型的劃分原則、命名原則及使用的ODS project。
例如,按業(yè)務定義英文縮寫,阿里的“淘寶”英文縮寫可以定義為“tb”。
按數(shù)據(jù)域劃分:
命名時按照CDM層的數(shù)據(jù)進行數(shù)據(jù)域劃分,以便有效地對數(shù)據(jù)進行管理,以及指導數(shù)據(jù)表的命名。
例如,“交易”數(shù)據(jù)的英文縮寫可定義為“trd”。
按業(yè)務過程劃分:
當一個數(shù)據(jù)域由多個業(yè)務過程組成時,命名時可以按業(yè)務流程劃分。
業(yè)務過程是從數(shù)據(jù)分析角度看客觀存在的或者抽象的業(yè)務行為動作。
例如,交易數(shù)據(jù)域中的“退款”這個業(yè)務過程的英文縮寫可約定命名為“rfd_ent”。
數(shù)據(jù)模型
模型是對現(xiàn)實事物的反映和抽象,能幫助我們更好地了解客觀世界。數(shù)據(jù)模型定義了數(shù)據(jù)之間關系和結構,使得我們可以有規(guī)律地獲取想要的數(shù)據(jù)。例如,在一個超市里,商品的布局都有特定的規(guī)范,商品擺放的位置是按照消費者的購買習慣以及人流走向進行擺放的。
數(shù)據(jù)模型的作用
數(shù)據(jù)模型是在業(yè)務需求分析之后,數(shù)據(jù)倉庫工作開始時的第一步。良好的數(shù)據(jù)模型可以幫助我們更好地存儲數(shù)據(jù),更有效率地獲取數(shù)據(jù),保證數(shù)據(jù)間的一致性。
模型設計的基本原則
高內聚和低耦合
一個邏輯和物理模型由哪些記錄和字段組成,應該遵循最基本的軟件設計方法論中的高內聚和低耦合原則。主要從數(shù)據(jù)業(yè)務特性和訪問特性兩個角度來考慮:將業(yè)務相近或者相關的數(shù)據(jù)、粒度相同數(shù)據(jù)設計為一個邏輯或者物理模型;將高概率同時訪問的數(shù)據(jù)放一起,將低概率同時訪問的數(shù)據(jù)分開存儲。
核心模型與擴展模型分離
建立核心模型與擴展模型體系,核心模型包括的字段支持常用核心的業(yè)務,擴展模型包括的字段支持個性化或是少量應用的需要。在必須讓核心模型與擴展模型做關聯(lián)時,不能讓擴展字段過度侵入核心模型,以免破壞了核心模型的架構簡潔性與可維護性。
公共處理邏輯下沉及單一
底層公用的處理邏輯應該在數(shù)據(jù)調度依賴的底層進行封裝與實現(xiàn),不要讓公用的處理邏輯暴露給應用層實現(xiàn),不要讓公共邏輯在多處同時存在。
成本與性能平衡
適當?shù)臄?shù)據(jù)冗余可換取查詢和刷新性能,不宜過度冗余與數(shù)據(jù)復制。
數(shù)據(jù)可回滾
處理邏輯不變,在不同時間多次運行數(shù)據(jù)的結果需確定不變。
一致性
相同的字段在不同表中的字段名必須相同。
命名清晰可理解
表命名規(guī)范需清晰、一致,表命名需易于下游的理解和使用。
說明
一個模型無法滿足所有的需求。
需合理選擇數(shù)據(jù)模型的建模方式。
通常,設計順序依次為:
概念模型->邏輯模型->物理模型。
轉自 :https://help.aliyun.com/document_detail/117432.html
