? 這篇文章有些內(nèi)容是概念上的厘清讥巡,有些是實踐中獲得的知識肖爵。相信看完這篇文章,你會對大數(shù)據(jù)領(lǐng)域常說的“模型”有了一定的體感
? 先說大數(shù)據(jù)中模型的概念悄泥,所謂模型虏冻,應(yīng)該是現(xiàn)實事件的映射方式。但這么說又太過籠統(tǒng)弹囚,在數(shù)倉建設(shè)過程中厨相,事實表與維度表之間的關(guān)系就是一種模型。說到這里鸥鹉,你可能開始困惑蛮穿,什么是事實表和維度表呢?所以先介紹第一部分毁渗。
?? 事實表和維度表
直接上例子践磅。以汽車行業(yè)數(shù)據(jù)庫表為例,大家可能認為下面是一張記錄客戶購買了什么車的統(tǒng)計表灸异。但事實上府适,大的車企每天都有幾千個訂單,每年百萬級別的訂單(事實上如果只使用一張表肺樟,字段會更長)檐春,如果所有訂單信息以下面在這種狀態(tài)存儲,在進行分析及修改等操作時效率會比較低么伯。另外各個系統(tǒng)中如果不去進行維度的統(tǒng)一疟暖,最后會導(dǎo)致數(shù)據(jù)越來越難進行清洗分析,各個系統(tǒng)之間將會有很深的壁壘....
所以我們有必要將上面表格進行拆解。經(jīng)過分析俐巴,可以看到此表至少可由四部分組成:明細表朋贬、經(jīng)銷商維度表、地區(qū)維度表窜骄、車型維度表锦募、客戶維度表
具體拆解如下:將上面一張表拆分出了一張明細表和四種維度。明細表對比上面的表格邻遏,把大量漢字替換成了數(shù)字/編碼糠亩,這將對表格大小有大量的縮減。
當(dāng)其中維度信息有修改時准验,比如修改了經(jīng)銷商名稱赎线,也只需要變更經(jīng)銷商維度表中一條記錄即可,而明細表不用進行修改糊饱。
? ?通過以上例子垂寥,我們對維度表就有了一些體感。因此另锋,對維度表和事實表的定義如下:
? ? 事實表:表格中存儲了能體現(xiàn)實際數(shù)據(jù)或事實滞项,一般會由維度編碼和事實數(shù)據(jù)組成。上圖中明細表就是一張事實表夭坪∥呐校可能會有些人問,我在上面事實表中沒看到數(shù)據(jù)呀室梅?其實這樣的明細表一條數(shù)就代表了一個訂單戏仓,數(shù)量就是1,后續(xù)用來統(tǒng)計每日訂單亡鼠,只要進行sum操作就可以獲得訂單數(shù)了
? ? 維度表:表格中存放的有獨立的層次和屬性的數(shù)據(jù)赏殃。一般由維度編碼和對應(yīng)的維度名稱組成
? ?數(shù)據(jù)模型
了解了事實表和維度表后,終于可以介紹數(shù)據(jù)模型了间涵。常見的數(shù)據(jù)模型有3種:星形仁热、雪花形和星系形。這個很多文章中都有介紹浑厚,這里只簡單總結(jié)下股耽。
星形:類似下圖,事實表和維度表通過主鍵外鍵關(guān)聯(lián)钳幅,是最簡單的模型
雪花形:類似下圖,維度表不直接連接在事實表上炎滞,而是通過其他維度表進行來連接敢艰。這是星形的擴展,每個維度表又可以當(dāng)成小的事實表册赛。
星系模型:簡單的說就是各種事實表之間共享維度钠导。
至此震嫉,我們應(yīng)該弄明白了事實表和維度表的概念。但其中出現(xiàn)的幾個名詞又讓人心生困惑牡属,“屬性”是什么意思票堵?下一篇將說明這個。
大家有什么問題歡迎留言一起討論