數(shù)據(jù)倉庫建模——維度建模

數(shù)據(jù)倉庫的建模方法有很多種,常見的有維度建模法、范式建模法、實體建模法等,下面主要介紹一下維度建模法。

維度建模的基本概念

維度建模(dimensional modeling)是專門用于分析型數(shù)據(jù)庫、數(shù)據(jù)倉庫、數(shù)據(jù)集市建模的方法。它本身屬于一種關(guān)系建模方法,但和關(guān)系建模方法相比增加了兩個概念:

維度表(dimension)

表示對分析主題所屬類型的描述。比如"昨天下午鄭州外國語學(xué)校8年級3班王小明同學(xué)花費了99元購買了一套課程"。那么我們以購買為主題進行分析,可從這段信息中提取三個維度:時間維度(昨天下午),地點維度(鄭州外國語學(xué)校), 商品維度(課程)。通常來說維度表信息比較固定,且數(shù)據(jù)量小。

  • 維度表類型
    • 日期維
      • 數(shù)據(jù)倉庫必須有的維度,包含日期,日期所屬的周,月,季度,年等信息。
    • 角色維
      • 相同的維度表在維度模型中扮演不中的邏輯角色,一般通過創(chuàng)建視圖來表示。
    • 支架維
      • 如果維度之間是一對多的關(guān)系或區(qū)別于原維度的多個描述性維度屬性,可以建雪花型支架維度。
    • 多值維度橋接維
      • 如果二個維度表是多對多的關(guān)系,可以使用多值維度設(shè)計。
    • 微型維
      • 一個大型維有些屬性變化比較頻繁,把這些屬性單獨生成一個微型維度表。
    • 縮小維
      • 維度表的一個子集或部分屬性。
    • 層次維
      • 有些維度表是有層次結(jié)構(gòu)的,可以通過視圖生成樹形結(jié)構(gòu)的維度表。
    • ...

事實表(fact table)

表示對分析主題的度量。比如上面那個例子中,99元就是事實信息。事實表包含了與各維度表相關(guān)聯(lián)的外碼,并通過 JOIN 方式與維度表關(guān)聯(lián)。事實表的度量通常是數(shù)值類型,且記錄數(shù)會不斷增加,表規(guī)模迅速增長。

  • 事實表類型

    • 事務(wù)事實表
      • 它是面向事務(wù)的,其粒度是每一行對應(yīng)一個事務(wù),它是最細粒度的事實表。
    • 周期快照事實表
      • 它是按照良好的時間周期間隔(每天,每月)來捕捉業(yè)務(wù)活動的執(zhí)行情況,一旦裝入事實表就不會再去更新,它是事務(wù)事實表的補充,而非替代品。
    • 累積快照事實表
      • 它用于描述業(yè)務(wù)過程中某個不確定時間跨度里的活動,它隨著業(yè)務(wù)活動的發(fā)生會不斷的更新。
  • 三種事實表類型之間的區(qū)別:

事務(wù)事實表 周期快照事實表 累積快照事實表
代表的時間段 時間點 規(guī)律可預(yù)見間隔 不確定時間跨度,一般是短期
粒度 每個事件事務(wù)一行 每段時間一行 每個生命周期一行
事實表加載 插入 插入 插入與更新
事實表更新 不重新加載 不重新加載 重新加載
日期維度 事務(wù)日期 時間段終止日期 標準關(guān)鍵環(huán)節(jié)的多個日期
事實 事務(wù)活動 預(yù)定時間間隔的性能 給定生命周期的性能

維度建模優(yōu)點

  • 便于理解
  • 提高查詢性能
  • 對稱性
  • 可擴展性

維度建模的三種模式

1.星形模式

星形模式(Star Schema)是最常用的維度建模方式,下圖展示了使用星形模式進行維度建模的關(guān)系結(jié)構(gòu):

可以看出,星形模式的維度建模由一個事實表和一組維表成,且具有以下特點:

  • 維表只和事實表關(guān)聯(lián),維表之間沒有關(guān)聯(lián);
  • 每個維表的主碼為單列,且該主碼放置在事實表中,作為兩邊連接的外碼;
  • 以事實表為核心,維表圍繞核心呈星形分布;

2.雪花模式

雪花模式(Snowflake Schema)是對星形模式的擴展,每個維表可繼續(xù)向外連接多個子維表。下圖為使用雪花模式進行維度建模的關(guān)系結(jié)構(gòu):

星形模式中的維表相對雪花模式來說要大,而且不滿足規(guī)范化設(shè)計。雪花模型相當(dāng)于將星形模式的大維表拆分成小維表,滿足了規(guī)范化設(shè)計。然而這種模式在實際應(yīng)用中很少見,因為這樣做會導(dǎo)致開發(fā)難度增大,而數(shù)據(jù)冗余問題在數(shù)據(jù)倉庫里并不嚴重。

3.星座模式

星座模式(Fact Constellations Schema)也是星型模式的擴展。基于這種思想就有了星座模式:

前面介紹的兩種維度建模方法都是多維表對應(yīng)單事實表,但在很多時候維度空間內(nèi)的事實表不止一個,而一個維表也可能被多個事實表用到。在業(yè)務(wù)發(fā)展后期,絕大部分維度建模都采用的是星座模式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,690評論 2 370