第八章 維度設(shè)計之特殊維度


遞歸層次

1)維度的遞歸層級即在維度分層的一種表現(xiàn)形式,如下:

① 類目維度,細分為葉子類目、三級類目、二級類目、一級類目

② 地址類目,細分為區(qū)縣、城市、省份、國家

2)對遞歸層次的探查過程分為上鉆和下鉆。假設(shè)一個場景,統(tǒng)計類目id為001的所有商品最近一天的銷售額,步驟如下:

① 獲取父類目為001的所有類目,得到一個類目集合

② 便利集合每一個元素,如果類目為葉子類目則終止;如果非葉子類目則此id作為父類目重復(fù)第一步,知道找出所有的葉子類目

③ 將所有葉子類目與事實表關(guān)聯(lián)統(tǒng)計

以上場景是一個下鉆的過程,鉆取過程常常伴隨遞歸sql。

3)為了降低遞歸sql的使用成本,對遞歸層次進行相應(yīng)處理:

① 層次扁平化:

當按照三級類目進行統(tǒng)計時,由于001,002的三級類目為null,所以會遺漏這部分數(shù)據(jù),我們使用的方法時回填,將上級類目向下虛擬

扁平化的使用前提是鉆取前知道類目級別類目遞歸級別是固定

② 層次橋接表:不需要預(yù)先知道類目級別、不去要數(shù)據(jù)回填、不需要固定類目遞歸級別,但是使用復(fù)雜,成本高,實踐中并不推薦

對類目003上鉆場景:

+ 類目表限制003

+ 通過類目id與橋接表的子類目id關(guān)聯(lián)

+ 事實表中類目id與橋接表父類目id關(guān)聯(lián)

對類目001下鉆場景:

+ 類目標限制001

+ 通過類目id與橋接表的父類目id關(guān)聯(lián)

+ 事實表中類目id與橋接表子類目id關(guān)聯(lián)


多值維度

? ? ? ? 事實表一條記錄根據(jù)業(yè)務(wù)場景有時會關(guān)聯(lián)多條維度表數(shù)據(jù),如一個訂單包含多個子訂單,會關(guān)聯(lián)到多個商品信息;購房信息中的夫妻聯(lián)合買入,會關(guān)聯(lián)到多個買房人。常用處理辦法如下:

1)降低事實表的粒度:如訂單粒度降到子訂單,就能實現(xiàn)一條事實表數(shù)據(jù)對應(yīng)一個商品維表數(shù)據(jù),但有時粒度并不能降低

2)采用多字段:對于關(guān)聯(lián)維度數(shù)據(jù)不多的情況可以采用多個字段的方式,考慮到擴展性可以采用預(yù)留字段的方式

3)采用橋接表:表現(xiàn)靈活但是邏輯復(fù)雜,加工成本高


雜項維度

在事實表中可能存在多個類似的字段,如交易訂單事實表的交易類型、交易狀態(tài)、物流狀態(tài)、交易流言等字段。保存在事實表中會造成事實表占用空間過大,保存在單獨維表中會造成維度過多,所以建立一個雜項維度,統(tǒng)一存放這些字段

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容