本文為您介紹CDM公共維度層設計規范。
設計準則
一致性維度規范
公共層的維度表中相同維度屬性在不同物理表中的字段名稱、數據類型、數據內容必須保持一致。除了以下情況:
在不同的實際物理表中,如果由于維度角色的差異,需要使用其他的名稱,其他名稱也必須是規范的維度屬性的別名。例如,定義一個標準的會員ID時,如果在一個表中,分別要表示買家ID和賣家ID,那么設計規范階段就預先對會員ID分別定義買家ID和賣家ID。
如果由于歷史原因,在暫時不一致的情況下,必須在規范的維度定義一個標準維度屬性,不同的物理名也必須是來自標準維度屬性的別名。
維度的組合與拆分
組合原則
將維度所描述業務相關性強的字段在一個物理維表實現。相關性強是指經常需要一起查詢或進行報表展現、兩個維度屬性間是否存在天然的關系等。例如,商品基本屬性和所屬品牌。
無相關性的維度可以適當考慮雜項維度(例如交易),可以構建一個交易雜項維度收集交易的特殊標記屬性、業務分類等信息。也可以將雜項維度退化在事實表中處理,不過容易造成事實表相對龐大,加工處理較為復雜。
所謂的行為維度是經過匯總計算的指標,在下游的應用使用時將其當維度處理。如果有需要,度量指標可以作為行為維度冗余到維度表中。
拆分與冗余
對于維度屬性過多,涉及源較多的維度表(例如會員表),可以做適當拆分:
拆分為核心表和擴展表。核心表相對字段較少,刷新產出時間較早,優先使用。擴展表字段較多,且可以冗余核心表部分字段,刷新產出時間較晚,適合數據分析人員使用。
根據維度屬性的業務不相關性,將相關度不大的維度屬性拆分為多個物理表存儲。
數據記錄數較大的維度表(例如商品表),可以適當冗余一些子集合,以減少下游掃描數據量:
可以根據當天是否有行為,產出一個有活躍行為的相關維表,以減少應用的數據掃描量。
可根據所屬業務掃描數據范圍大小的不同,進行適當子集合冗余。
表命名規范
命名規則:{project_name}.dim{業務/pub}{維度定義}[_{自定義命名標簽}],其中的pub與具體業務無關,各個業務部都可以共用,例如時間維度。
數據存儲及生命周期管理規范
CDM公共維度層的表的類型為維度表,存儲方式為按天分區。
模型設計者根據自身業務需求設置表的生命周期管理。您可依據3個月內的最大需要訪問的跨度設置保留策略,具體計算方式如下:
當3個月內的最大訪問跨度小于或等于4天時,建議將保留天數設為7天。
當3個月內的最大訪問跨度小于或等于12天時,建議將保留天數設為15天。
當3個月內的最大訪問跨度小于或等于30天時, 建議將保留天數設為33天。
當3個月內的最大訪問跨度小于或等于90天時,建議將保留天數設為93天。
當3個月內的最大訪問跨度小于或等于180天時, 建議將保留天數設為183天。
當3個月內的最大訪問跨度小于或等于365天時,建議將保留天數設為368天。