
網(wǎng)站數(shù)據(jù)分析:數(shù)據(jù)倉庫相關的問題(3)
之前的文章——網(wǎng)站數(shù)據(jù)分析的一些問題2中主要整理了BI相關的問題,這篇文章主要想整理一些數(shù)據(jù)倉庫相關的問題。因為最近重新在看一些數(shù)據(jù)倉庫的資料和書籍,想把之前以及當前遇到的主要問題提出來(博客中有關數(shù)據(jù)倉庫的相關內(nèi)容請參閱網(wǎng)站數(shù)據(jù)倉庫這個目錄),同時自己也對數(shù)據(jù)倉庫方面的知識進行下重新的整理和認識,而且很久沒有在博客發(fā)新的文章了,不能讓自己過于懶散了。
之前看過Inmon的《構建數(shù)據(jù)倉庫》和《DW 2.0》,而另外一位數(shù)據(jù)倉庫大師Kimball的《數(shù)據(jù)倉庫生命周期工具箱》一直沒有時間閱讀,最近才有時間看完了大部分,就迫不及待想寫點東西了。其實數(shù)據(jù)倉庫領域普遍認為Inmon和Kimball的理論是對立的,兩者在構建數(shù)據(jù)倉庫上方向性的差異一直爭論不休,誰也無法說服誰到底哪種方法更好。我的Evernote的筆記里面不知什么時候從哪里摘錄過來了對兩者觀點的概括性描述,非常簡潔明了而一針見血:
Inmon vs Kimball
Kimball – Let everybody build what they want when they want it, we’ll integrate it all when and if we need to. (BOTTOM-UP APPROACH)
Pros: fast to build, quick ROI, nimble
Cons: harder to maintain as an enterprise resource, often redundant, often difficult to integrate data marts
Inmon – Don’t do anything until you’ve designed everything. (TOP-DOWN APPROACH)
Pros: easy to maitain, tightly integrated
Cons: takes way too long to deliver first projects, rigid
其實看了《數(shù)據(jù)倉庫生命周期工具箱》之后,發(fā)現(xiàn)兩者的觀點沒有那么大的本質性差異,可能隨著數(shù)據(jù)倉庫的不斷發(fā)展,兩者在整體的架構上慢慢趨同?;旧希瑯嫿ńy(tǒng)一的企業(yè)級數(shù)據(jù)倉庫的方向是一致的,而Inmon偏向于從底層的數(shù)據(jù)集成出發(fā),而Kimball則趨向于從上層的需求角度出發(fā),這可能跟兩者從事的項目和所處的位置有關。
有了上面這段高質量的概括,第一個問題——你更偏向于以何種方式搭建數(shù)據(jù)倉庫(BOTTOM-UP or TOP-DOWN),分別有什么優(yōu)劣勢?——其實就不用問了,所以下面主要提幾個在實際中可能經(jīng)常遇到或者需要想清楚的問題:
Q1、數(shù)據(jù)倉庫的技術解決方案有哪些,這些解決方案的優(yōu)勢在哪,瓶頸在哪?
隨著數(shù)據(jù)倉庫的不斷發(fā)展和成熟,“大數(shù)據(jù)”概念的風靡,有越來越多的相關產(chǎn)品出來,最常見的技術解決方案包括hadoop和hive,oracle,mysql的infobright,greenplum及nosql,或者多個結合使用。
其實歸納起來就兩類:一是用傳統(tǒng)RDBMS為主導的數(shù)據(jù)庫管理數(shù)據(jù),oracle、mysql等都是基于傳統(tǒng)的關系型數(shù)據(jù)庫,優(yōu)勢就是有更嚴謹?shù)臄?shù)據(jù)結構,關系型數(shù)據(jù)庫對數(shù)據(jù)的管理更加規(guī)范,數(shù)據(jù)處理過程中可能出現(xiàn)的非人為誤差極小,而且標準的SQL接口使數(shù)據(jù)獲取的成本較低,數(shù)據(jù)的查詢和獲取更加靈活和高效;但劣勢也很明顯,對海量數(shù)據(jù)的處理和存儲的能力不足,當數(shù)據(jù)量達到一定程度的時候就會出現(xiàn)明顯的瓶頸。而是基于文本的分布式處理引擎,hadoop、greenplum和nosql都是基于文本數(shù)據(jù)的處理和存儲,優(yōu)勢是強大的數(shù)據(jù)處理能力,分布式的架構支持并行計算,并且具備超強的擴展延伸能力;劣勢就是上層接口不方便,因此Hadoop上層的hive和greenplum上層的postgreSQL都是為了解決數(shù)據(jù)接口的問題,并且數(shù)據(jù)的查詢和獲取很難做到實時響應,靈活性不足。
Q2、數(shù)據(jù)倉庫是否就應該保存聚合數(shù)據(jù),細節(jié)數(shù)據(jù)不應該放入數(shù)據(jù)倉庫?
其實這個問題基本已經(jīng)達成共識,如果是構建企業(yè)級的數(shù)據(jù)倉庫,那么對細節(jié)數(shù)據(jù)的集成和存儲是必不可少的,但現(xiàn)實中還是存在很多直接從外部數(shù)據(jù)源計算聚合之后導入數(shù)據(jù)倉庫的實例。如果對數(shù)據(jù)倉庫只是輕量級的應用,僅存放聚合數(shù)據(jù)也無可厚非,畢竟沒人規(guī)定數(shù)據(jù)倉庫一定要是怎么樣的,最終的目的無非就是滿足對數(shù)據(jù)的支持和需求。
但對于企業(yè)的長期發(fā)展來看,數(shù)據(jù)倉庫中存放細節(jié)數(shù)據(jù)有兩方面的好處:一方面從技術層面,數(shù)據(jù)倉庫存儲細節(jié)數(shù)據(jù)可以釋放前臺數(shù)據(jù)庫的查詢壓力,同時對于文本類數(shù)據(jù)和外部文檔類數(shù)據(jù)入庫之后管理更加規(guī)范,數(shù)據(jù)倉庫保留歷史和不可變更的特性可以讓信息不被丟失;另一方面就是從數(shù)據(jù)的使用上,數(shù)據(jù)倉庫讓數(shù)據(jù)的獲取和使用更加簡便,集成細節(jié)數(shù)據(jù)讓大量的文本型數(shù)據(jù)可查詢,可關聯(lián),而面向主題的設計讓數(shù)據(jù)的展現(xiàn)和分析更有方向性和目的性,而且細節(jié)數(shù)據(jù)是支持數(shù)據(jù)分析和數(shù)據(jù)挖掘應用所必不可少的。所以,如果數(shù)據(jù)倉庫要不斷地催生出更大的價值,細節(jié)數(shù)據(jù)的存儲是必不可少的。
Q3、你會把數(shù)據(jù)倉庫分為幾層,每層的數(shù)據(jù)作用是什么?
沒有標準答案,根據(jù)數(shù)據(jù)倉庫中數(shù)據(jù)的復雜性和對數(shù)據(jù)使用的需求程度,數(shù)據(jù)倉庫可以有不用的層級劃分。
我一般會把數(shù)據(jù)倉庫劃成三層:最底層的細節(jié)數(shù)據(jù),管理策略是優(yōu)化存儲,一般存儲導入的原始數(shù)據(jù),便于進行向上的統(tǒng)計匯總,因為數(shù)據(jù)量較大所以需要優(yōu)化存儲;中間層是多維模型,管理策略是優(yōu)化結構和查詢,面向主題的多維模型的設計,需要滿足OLAP和數(shù)據(jù)查詢的多樣需求,同時保證查詢的便捷性,關鍵在與維表的設計和維度的選擇及組合,事實表需要關注存儲和索引的優(yōu)化;最上層是展現(xiàn)數(shù)據(jù),管理策略是優(yōu)化效率,一般會存放每天需要展現(xiàn)的匯總報表,或者根據(jù)多維模型拼裝的視圖,展現(xiàn)層的數(shù)據(jù)需要以最快的速度展現(xiàn)出來,一般用于BI平臺的Dashboard和報表。
Q4、數(shù)據(jù)倉庫搭建中最繁雜的事情是什么,最容易缺失的是哪一塊?
一直覺得數(shù)據(jù)倉庫的核心不在于數(shù)據(jù)集成,當然數(shù)據(jù)集成是數(shù)據(jù)倉庫實現(xiàn)價值的前提,數(shù)據(jù)倉庫真正的價值體現(xiàn)在數(shù)據(jù)的有效應用,數(shù)據(jù)源于業(yè)務反作用于業(yè)務。而搭建數(shù)據(jù)倉庫的核心在于數(shù)據(jù)倉庫的架構和數(shù)據(jù)模型的設計,怎么權衡數(shù)據(jù)的存儲和數(shù)據(jù)獲取效率之間的矛盾是數(shù)據(jù)倉庫管理上的難點,這個難點任何數(shù)據(jù)倉庫都會存在,而大數(shù)據(jù)增大了這種權衡中的難度。而數(shù)據(jù)的集成和數(shù)據(jù)質量控制是數(shù)據(jù)倉庫搭建中最繁雜的事情,尤其是數(shù)據(jù)清洗的過程,我之前也寫過幾篇數(shù)據(jù)質量控制的文章,但現(xiàn)實中這個過程還要復雜得多,而且為了上層數(shù)據(jù)產(chǎn)出的準確性和有效性,這項工作又不得不做,而且要做得盡量細致。
搭建數(shù)據(jù)倉庫中最容易缺失的就是對元數(shù)據(jù)的管理,很少有數(shù)據(jù)倉庫團隊具備完整的元數(shù)據(jù),當然搭建數(shù)據(jù)倉庫的工程師本身就是活的元數(shù)據(jù),但無論是為了用數(shù)據(jù)的人還是數(shù)據(jù)倉庫自身的團隊著想,元數(shù)據(jù)都不可或缺。一方面元數(shù)據(jù)為數(shù)據(jù)需求方提供了完整的數(shù)據(jù)倉庫使用文檔,幫助他們能自主地快速獲取數(shù)據(jù),另一方面數(shù)據(jù)倉庫團隊成員可以從日常的數(shù)據(jù)解釋中解脫出來,無論是對后期的不斷迭代更新和維護還是培訓新的員工,都非常有好處,元數(shù)據(jù)可以讓數(shù)據(jù)倉庫的應用和維護更加高效。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉換:從基礎用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結構數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結構數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內(nèi)涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結構數(shù)據(jù)特征價值的專業(yè)核心 表結構數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結構化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結構數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結構數(shù)據(jù)(以 “行 - 列” 存儲的結構化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結構數(shù)據(jù)價值的核心操盤手 表格結構數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10