文章轉自:http://chinabi.net/blog/user1/105/390.html
這是IT pub上一篇帖子引發出的問題,以前還真沒去仔細思考這個問題:為什么要建立數據倉庫,數據倉庫和數據庫的區別?因為理論上的優點說法都很多,但要真正很好地理解,能簡潔地向客戶闡述明白,讓客戶覺得建立數據倉庫是一件值得做的事情,還是值得討論一下這個問題。有如下一些朋友們說法(自己在批注處談點個人的意見):
A
數據庫是一個裝數據(信息的原材料)的地方。
數據倉庫是一種系統,這種系統也是用數據庫裝東西。(這有點沒說清楚:個人理解數據庫和數據倉庫當然都是裝數據的地方,關鍵的區別是裝的什么樣的數據,數據庫裝的原始數據,沒經過任何加工;而數據倉庫是為了滿足分析需要,對源數據進行了Transform過程,具體是怎樣一個處理過程,可以從Bill Inmon的倉庫定義四個特性進行理解。)
數據倉庫系統(用數據庫裝東西)與其他基礎業務系統(例如財務系統、銷售系統、人力資源系統等,也是用數據庫裝東西)的區別是:
基礎業務系統的特點是各管各的,例如財務系統生產了白菜,那么用一個數據庫來裝,人力資源系統生產了豬肉,再用一個數據庫來裝。我要做一道菜,需要分別到各個數據庫去取,比較麻煩(現實的情況是大部分時候讓種菜的農民伯伯送過來,但送過來的東西不一定是我想要的,而且不同的時候我想要不同的東西,經常會被農民伯伯罵,弄得雙方都不開心)。另外一方面,各個數據庫中放的是一些比較原始的東西,我要拿過來做菜,還需要經過很麻煩的清洗過程,一不小心里面可能就藏着一條大青蟲。
那么,數據倉庫系統就是建立一個大的超市,將各地農民伯伯出產的東西收集過來,清洗干凈,分門別類地放好。這樣,你要哪種菜的時候,直接從超市里面拿就可以了。
B
早期一直不理解數據倉庫是什么困惑得很。
宏觀一點講,數據倉庫就是堆放公司所有數據的地方,之所以把數據都堆在一起,是為了從中間找到有價值的東西。
數據倉庫更多的是一個概念,不要把數據倉庫想成那些號稱是數據倉庫的軟件產品們。(數據倉庫的建立和數據挖掘都是一個過程,可以從數據倉庫生命周期和OLTP系統生命周期的區別進行理解,數據挖掘過程CRISP-DM)
數據倉庫的物理上就是數據庫。相對業務系統數據庫叫OLTP數據庫(用於業務處理),這種數據庫叫OLAP數據庫(用於業務分析,不知道有沒有這種說法,個人覺得OLAP和數據庫還是不能簡單地稱為OLAP數據庫的;OLAP是針對特定問題的聯機數據訪問和數據分析而產生的一種技術,它滿足DDS從多種角度對數據進行快速、一致、交互地分析,克服傳統DDS交互能力差的弊病,使決策者能夠對數據進行深入觀察。OLAP服務器使用為用戶預定義的多維數據視圖對數據倉庫的信息進行統計分析處理,為具有明確分析范圍和分析要求的用戶提供高性能的決策支持在線分析處理,只是基於DW上的一種多維分析方式,當然我也可以不用OLAP,直接做基於DW的DM)。
數據倉庫的概念是針對以下基本需求產生的:
公司的業務系統很多,業務系統的歷史數據不方便查詢。不同的業務系統往往管理部門不同,地域不同。能不能將所有這些數據集中起來,再淘淘有沒有有意義的業務規律。
數據倉庫數據庫往往很大,因為公司所有的數據集中得越多,越能淘到有價值的發現。例如隨便就100G以上。
數據倉庫的組成十分繁雜,既有業務系統的歷史數據,又有人事、財務數據,還要自己建一些基礎性的數據,例如,公共假期數據、地理信息、國家信息等等。
數據倉庫概念包含從業務生產系統采集數據的程序,這個程序還不能影響業務系統的運行。(屬於所謂“ETL”過程)
數據倉庫包括業務系統長期的歷史數據,例如5年,用來分析。(所謂“ODS”數據)
數據倉庫包括針對某相業務值(例如銷售量)重新打上標簽的業務流水數據。(所謂“事實表”、“維度表”)。
數據倉庫概念興許還包含報表生成工具(所謂“BI”工具)。這些工具能夠達到幾年前所謂DSS(決策分析)的效果。
數據倉庫的客戶歷史資量的分析,也許又與CRM系統粘點邊。
總之,一點,一個公司想針對已有的歷史業務數據,充分的利用它們,那么就上數據倉庫項目。至於哪些嚇唬人的大寫字母的組合,只是達到這個目標的科學技術罷了。
牢記住數據倉庫的基本需求,不要被供應商嚇着。
C
數據倉庫可以說是決策支持系統(個人不同意這個觀點,決策支持系統(DDS)是在管理信息系統的基礎上發展起來的,在數據倉庫、OLAP技術和數據挖掘工具出現以前,就已經有DSS了,但其在實際應用開發過程中暴露出許多問題,DW為克服傳統DDS存在的問題提供了技術上的支持,基於DW上的DSS效果自然有很大提升),能幫助老板了解企業的整體全貌,看到數據倉庫提供的經過整理統計歸納的數據后老板憑自己的管理經驗可以發現企業的問題或困難或成功因素在哪一方面,然后可以不斷的追溯數據,直到確定到最具體的細節上,這樣能夠不斷提升老板或管理層的管理水平,不斷改善企業的管理。我們知道的最好的一個例子就是美國某大型超市啤酒和尿布的故事。
沃爾瑪公司在美國的一位店面經理曾發現,每周,啤酒和尿布的銷量都會有一次同比攀升,一時卻搞不清是什么原因。后來,沃爾瑪運用商業智能(Business Intelligence,簡稱BI)技術發現,購買這兩種產品的顧客幾乎都是25歲到35歲、家中有嬰兒的男性,每次購買的時間均在周末。沃爾瑪在對相關數據分析后得知,這些人習慣晚上邊看球賽、邊喝啤酒,邊照顧孩子,為了圖省事而使用一次性的尿布。得到這個結果后,沃爾瑪決定把這兩種商品擺放在一起,結果,這兩種商品的銷量都有了顯著增加。
數據庫是數據倉庫的基礎。數據倉庫實際上也是由數據庫的很多表組成的(這句話明顯不成立,數據倉庫里表分為事實表和維表,這和數據庫里的表還是有本質區別的,組織方式完全不一樣,一個是面向主題,一個是面向業務的)。需要把存放大量操作性業務數據的數據庫經過篩選、抽取、歸納、統計、轉換到一個新的數據庫中。然后再進行數據展現。老板關注的是數據展現的結果。