論道數據倉庫維度建模和關系建模

個人認為建模在中臺中起到至關重要的作用瀑罗,是做好架構的基礎胸嘴,是在做好磨刀的事,是為后續(xù)治理環(huán)節(jié)奠基斩祭。

為什么要數據倉庫建模呢劣像?

如果把數據看作圖書館里的書,我們希望看到它們在書架上分門別類地放置摧玫;如果把數據看作城市的建筑耳奕,我們希望城市規(guī)劃布局合理;如果把數據看作電腦文件和文件夾诬像,我們希望按照自己的習慣有很好的文件夾組織方式屋群,而不是糟糕混亂的桌面,經常為找一個文件而不知所措坏挠。

數據模型就是數據組織和存儲方法芍躏,它強調從業(yè)務、數據存取和使用角度合理存儲數據降狠。Linux的創(chuàng)始人Torvalds有一段關于“什么才是優(yōu)秀程序員”的話:“爛程序員關心的是代碼对竣,好程序員關心的是數據結構和它們之間的關系”,最能夠說明數據模型的重要性榜配。只有數據模型將數據有序的組織和存儲起來之后否纬,大數據才能得到高性能、低成本芥牌、高效率烦味、高質量的使用,一般可以從四個方面概括數據倉庫模型的價值:

性能:良好的數據模型能幫助我們快速查詢所需要的數據壁拉,減少數據的I/O吞吐,提高使用數據的效柏靶。

成本:良好的數據模型能極大地減少不必要的數據冗余弃理,也能實現計算結果復用,極大地降低存儲和計算成本屎蜓。

效率:良好的數據模型在業(yè)務或系統發(fā)生變化時痘昌,可以保持穩(wěn)定或很容易地實現擴展,提高數據穩(wěn)定性和連續(xù)性

質量:良好的數據模型能改善數據統計口徑的不一致性,減少數據計算錯誤的可能性辆苔。

那么算灸,數據倉庫一般為什么要分層設計呢?

以下是一個示例:

分層設計的好處大致可以概括如下:

清晰數據結構:每一個數據分層都有它的作用域驻啤,這樣我們在使用表的時候能更方便地定位和理解菲驴。

數據血緣追蹤:能夠快速準確地定位到問題,并清楚它的危害范圍骑冗。

減少重復開發(fā):規(guī)范數據分層赊瞬,開發(fā)一些通用的中間層數據,能夠減少極大的重復計算贼涩。

把復雜問題簡單化:將復雜的任務分解成多個步驟來完成巧涧,每一層只處理單一的步驟,比較簡單和容易理解遥倦。當數據出現問題之后谤绳,不用修復所有的數據,只需要從有問題的步驟開始修復

屏蔽原始數據的異常:不必改一次業(yè)務就需要重新接入數據袒哥。

知道了數據倉庫的好處闷供,很多行業(yè)和企業(yè)也都經歷了數據倉庫建模,但如果問哪家數據模型建得好统诺,各行業(yè)各企業(yè)就很難分出個高下了歪脏。

但這個問題又很重要,因為有標桿認識到差距才能進步粮呢,有伙伴邀筆者去講講數據建模婿失,說實話,筆者也不知道怎么講啄寡,因為這個跟企業(yè)自己的業(yè)務和數據太相關了豪硅,所謂的業(yè)界的標準建模理論和方法也變得無足輕重。

大神Inmon的《數據倉庫》和kimball《數據倉庫工具箱》算是兩個經典吧挺物,最近出了本很厚的《數據倉庫與商業(yè)智能寶典》懒浮,但也是人家kimball以前經典文章的合集。

關系建模又叫ER建模识藤,是數據倉庫之父Inmon推崇的砚著,其從全企業(yè)的高度設計一個3NF模型的方法,用實體加關系描述的數據模型描述企業(yè)業(yè)務架構痴昧,在范式理論上符合3NF稽穆,其是站在企業(yè)角度進行面向主題的抽象,而不是針對某個具體業(yè)務流程的赶撰,它更多是面向數據的整合和一致性治理舌镶,正如Inmon所希望達到的“single version of the truth”柱彻。

維度模型則是數據倉庫領域另一位大師Ralph Kimball 所倡導的。維度建模以分析決策的需求為出發(fā)點構建模型餐胀,一般有較好的大規(guī)模復雜查詢的響應性能哟楷,更直接面向業(yè)務,典型的代表是我們比較熟知的星形模型否灾,以及在一些特殊場景下適用的雪花模型卖擅。

Inmon的ER建模優(yōu)點體現在規(guī)范性較好,冗余小坟冲,數據集成和數據一致性方面得到重視磨镶,適用于較為大型的企業(yè)級、戰(zhàn)略級的規(guī)劃健提,但缺點是需要全面了解企業(yè)業(yè)務琳猫、數據和關系,對于建模人員要求很高私痹,實施周期非常長脐嫂,成本昂貴,筆者剛進公司的時候就經歷了中國移動的的ER數據倉庫項目紊遵,的確不是一個新人能短時消化的账千。

Kimball的維度建模相對能快速上手,快速交付暗膜,但缺點是冗余會較多匀奏,靈活性比較差,但其實現在看來也沒什么学搜,淘寶在大數據之路書中也提到“淘寶數據平臺變遷的過程正好解釋了二者的不同娃善,最初,淘寶業(yè)務單一瑞佩、系統簡單聚磺,主要是簡單的報表系統;后期數據量越來越大炬丸,系統越來越多瘫寝,嘗試用ER建模的數據倉庫,但是在實踐中發(fā)現快速變化的業(yè)務之下稠炬,構建ER模型的風險和難度都很高焕阿,現在則主要采用基于維度建模的模型方法了∷岣伲”

但Inmon和kimball關于關系建模和維度建模的爭論其實也沒什么值得探討的捣鲸,沒有誰更好,在企業(yè)內闽坡,這兩種建模方式往往同時存在栽惶,底層用關系建模合適一點,技術的優(yōu)雅換來了數據的精簡疾嗅,往上維度建模更合適一些外厂,靠數據的冗余帶來了可用性,優(yōu)勢互補代承,都說關系建模不易汁蝶,概念模型是個坎,其實維度建模也不易论悴,維度的梳理和運營是艱巨的掖棉,否則就是爛攤子的活。

在數據建模上膀估,很多人糾結于如何建模幔亥,用關系建模、維度建模亦或其它察纯?回過頭來也是浮云帕棉,其實剛起步的時候沒有那么多的循規(guī)蹈矩,滿足報表和取數的需求即可饼记,盡量做到“高內聚香伴,松耦合”,這是服務的原則具则,放到數據建模照樣適用即纲。

很多企業(yè)花了巨大的代價建設了一套數據模型,周期長達1-2年博肋,幾年后卻推倒重來低斋,問題的根子不在于當初的項目完成的情況如何,包括建模方式是否合理束昵,而在于項目完成了成鳥獸散拔稳,缺乏持續(xù)的運營。

想想企業(yè)的數據倉庫模型锹雏,有多大的比例在日常的運營中進行了改進呢巴比,有10%嗎?阿里在建設數據中臺礁遵,很大的挑戰(zhàn)在于日常運營中對于中臺業(yè)務的把控能力和持續(xù)改進的勇氣轻绞,數據模型要成為使能者,不是簡單的滿足需求佣耐,也不是為了博得業(yè)務人員一時的滿意政勃,而是要立足于長遠,始終主動兼砖、自發(fā)和持續(xù)的自我進化奸远。

前段時間團隊成員說為了滿足數據挖掘需求要做一張超級寬表既棺,很能說明問題,任何一個企業(yè)的數據模型都會碰到類似的挑戰(zhàn)懒叛,但這也是混亂的開始丸冕,以下是經典的對話:

A:“現在數據挖掘變量準備太慢了,要搞一張大寬表薛窥,我們已經梳理了胖烛,需要從幾十張表中取出字段,這個是這些表的清單诅迷?”

B:“跨度這么大佩番,這么多字段,從DWD到DWI罢杉,再到DWA趟畏,有想過更好的辦法嗎?”

A:“這個屑那?我們看了拱镐,融合模型缺這缺那的,還是再做一張吧持际,只是為這類數據做的沃琅!”

B:“你這張寬表下次會碰到融合模型同樣的問題,融合模型是當前平衡做的相對好的蜘欲,能否去增強融合模型益眉,按字段歸屬到各融合模型,而不要另起條線姥份,資源也有限的郭脂,讓這些表的融合模型負責人過來討論下?”

數據倉庫模型的持續(xù)提升始終來自于日常樸實無華的需求驅動澈歉,數據中臺蘊含著企業(yè)數據文化的再造展鸡,涉及到一系列機制流程的完善,認識到這點很重要埃难。

作者:傅一平

鏈接:http://www.reibang.com/p/4674aad41988

來源:簡書

著作權歸作者所有莹弊。商業(yè)轉載請聯系作者獲得授權,非商業(yè)轉載請注明出處涡尘。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末忍弛,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子考抄,更是在濱河造成了極大的恐慌细疚,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件川梅,死亡現場離奇詭異疯兼,居然都是意外死亡然遏,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門镇防,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啦鸣,“玉大人潮饱,你說我怎么就攤上這事来氧。” “怎么了香拉?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵啦扬,是天一觀的道長。 經常有香客問我凫碌,道長扑毡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任盛险,我火速辦了婚禮瞄摊,結果婚禮上,老公的妹妹穿的比我還像新娘苦掘。我一直安慰自己换帜,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布鹤啡。 她就那樣靜靜地躺著惯驼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪递瑰。 梳的紋絲不亂的頭發(fā)上祟牲,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音抖部,去河邊找鬼说贝。 笑死,一個胖子當著我的面吹牛慎颗,可吹牛的內容都是我干的乡恕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哗总,長吁一口氣:“原來是場噩夢啊……” “哼几颜!你這毒婦竟也來了?” 一聲冷哼從身側響起讯屈,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蛋哭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涮母,有當地人在樹林里發(fā)現了一具尸體谆趾,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡躁愿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了沪蓬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤钟。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跷叉,靈堂內的尸體忽然破棺而出逸雹,到底是詐尸還是另有隱情,我是刑警寧澤云挟,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布梆砸,位于F島的核電站,受9級特大地震影響园欣,放射性物質發(fā)生泄漏帖世。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一沸枯、第九天 我趴在偏房一處隱蔽的房頂上張望日矫。 院中可真熱鬧,春花似錦绑榴、人聲如沸哪轿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缔逛。三九已至,卻和暖如春姓惑,著一層夾襖步出監(jiān)牢的瞬間褐奴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工于毙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敦冬,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓唯沮,卻偏偏與公主長得像脖旱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子介蛉,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容

  • 為什么要數據倉庫建模呢萌庆? 如果把數據看作圖書館里的書,我們希望看到它們在書架上分門別類地放置币旧;如果把數據看作城市的...
    傅一平閱讀 7,490評論 1 14
  • 數據倉庫建模 1践险、什么是數據模型 數據模型是抽象描述現實世界的一種工具和方法,是通過抽象的實體及實體之間聯系的形式...
    nightwish夜愿閱讀 1,527評論 0 21
  • 昨天艷陽高照,挺熱的巍虫。 今天氣溫又降到20°左右彭则,找了件毛衣出來穿。 不由感嘆:這天氣變化太無常了占遥!也伸手抱了抱自...
    Tracy_小西閱讀 233評論 0 0
  • 1.喜歡就是看到所有美好的東西瓦胎,都想跟你分享芬萍。后來走廊被黃昏染色,冬天被大雪喚醒凛捏,思念被歌曲收藏担忧,卻找不到分享的人...
    福爾馬林Cancer閱讀 3,664評論 0 4
  • 人的命運主要取決于兩因素:一環(huán)境的因素,人出生的時間和地點在很大程度上決定了他們的命運坯癣;二就是一個人看問題...
    沅汾閱讀 231評論 0 1