1. 詳解數據倉庫和資料庫的區別
數據倉庫:為企業所有級別的決策制定過程,提供所有類型數據支持的戰略(數據)集合。
大數據:所涉及的資料量規模巨大到無法透過主流軟體工具,在合理時間內達到擷取、管理、處理、並整理成為幫助企業經營決策更積極目的的資訊。
傳統資料庫:一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。
其實從三個定義,我們好像區別不大。
資料庫指的是數據的集合,數據倉庫也是一個數據集合,大數據也是一個處理和存儲數據的地方。
但是不同的是,在於應用場景,和構建的技術原理不一樣。
傳統資料庫是存儲根據範式建模的關系型數據,主要用於OLTP(on-line transaction processing)翻譯為聯機事務處理的軟體。大數據是根據map rerce範式構建的出局處理,存儲的軟體,主要用於OLAP是做分析處理。大數據和傳統資料庫,還有一個更大的區別在於,處理的數據量以及計算量的大小,當傳統資料庫,無法在人可以接受的短時間內計算出結果,那這個數據就叫大數據,需要使用到大數據技術處理。而數據倉庫本質上是一種數據的處理方式,而不是一種基礎軟體,它可以依賴於傳統資料庫,也可以依賴大數據技術去構建。
可以參考這篇文章:數據倉庫(2)數據倉庫、大數據與傳統資料庫的區別 - 知乎 (hu.com)
2. 數據倉庫的含義,數據倉庫和資料庫的區別.
什麼是數據倉庫
目前,數據倉庫一詞尚沒有一個統一的定義,著名的數據倉庫專家 W.H.Inmon 在其著作《 Building the Data Warehouse 》一書中給予如下描述:數據倉庫( Data Warehouse )是一個面向主題的( Subject Oriented )、集成的( Integrate )、相對穩定的( Non-Volatile )、反映歷史變化( Time Variant )的數據集合,用於支持管理決策。 對於數據倉庫的概念我們可以從兩個層次予以理解,首先,數據倉庫用於支持決策,面向分析型數據處理,它不同於企業現有的操作型資料庫;其次,數據倉庫是對多個異構的數據源有效集成,集成後按照主題進行了重組,並包含歷史數據,而且存放在數據倉庫中的數據一般不再修改。
資料庫是一個裝數據(信息的原材料)的地方。
數據倉庫是一種系統,這種系統也是用資料庫裝東西。
數據倉庫系統(用資料庫裝東西)與其他基礎業務系統(例如財務系統、銷售系統、人力資源系統等,也是用資料庫裝東西)的區別是:
基礎業務系統的特點是各管各的,例如財務系統生產了白菜,那麼用一個資料庫來裝,人力資源系統生產了豬肉,再用一個資料庫來裝。我要做一道菜,需要分別到各個資料庫去取,比較麻煩(現實的情況是大部分時候讓種菜的農民伯伯送過來,但送過來的東西不一定是我想要的,而且不同的時候我想要不同的東西,經常會被農民伯伯罵,弄得雙方都不開心)。另外一方面,各個資料庫中放的是一些比較原始的東西,我要拿過來做菜,還需要經過很麻煩的清洗過程,一不小心裏面可能就藏著一條大青蟲。
那麼,數據倉庫系統就是建立一個大的超市,將各地農民伯伯出產的東西收集過來,清洗干凈,分門別類地放好。這樣,你要哪種菜的時候,直接從超市裡面拿就可以了。
早期一直不理解數據倉庫是什麼困惑得很。
宏觀一點講,數據倉庫就是堆放公司所有數據的地方,之所以把數據都堆在一起,是為了從中間找到有價值的東西。
數據倉庫更多的是一個概念,不要把數據倉庫想成那些號稱是數據倉庫的軟體產品們。
數據倉庫的物理上就是資料庫。相對業務系統資料庫叫 OLTP 資料庫(用於業務處理),這種資料庫叫 OLAP 資料庫(用於業務分析)。
數據倉庫的概念是針對以下基本需求產生的:
公司的業務系統很多,業務系統的歷史數據不方便查詢。不同的業務系統往往管理部門不同,地域不同。能不能將所有這些數據集中起來,再淘淘有沒有有意義的業務規律。
數據倉庫資料庫往往很大,因為公司所有的數據集中得越多,越能淘到有價值的發現。例如隨便就 100G 以上。
數據倉庫的組成十分繁雜,既有業務系統的歷史數據,又有人事、財務數據,還要自己建一些基礎性的數據,例如,公共假期數據、地理信息、國家信息等等。
數據倉庫概念包含從業務生產系統採集數據的程序,這個程序還不能影響業務系統的運行。(屬於所謂 「ETL」 過程)
數據倉庫包括業務系統長期的歷史數據,例如 5 年,用來分析。(所謂 「ODS」 數據)
數據倉庫包括針對某相業務值(例如銷售量)重新打上標簽的業務流水數據。(所謂 「 事實表 」 、 「 維度表 」 )。
數據倉庫概念興許還包含報表生成工具(所謂 「BI」 工具)。這些工具能夠達到幾年前所謂 DSS (決策分析)的效果。
數據倉庫的客戶歷史資量的分析,也許又與 CRM 系統粘點邊。
總之,一點,一個公司想針對已有的歷史業務數據,充分的利用它們,那麼就上數據倉庫項目。至於哪些嚇唬人的大寫字母的組合,只是達到這個目標的科學技術罷了。
牢記住數據倉庫的基本需求,不要被供應商嚇著。
數據倉庫可以說是決策支持系統,能幫助老闆了解企業的整體全貌,看到數據倉庫提供的經過整理統計歸納的數據後老闆憑自己的管理經驗可以發現企業的問題或困難或成功因素在哪一方面,然後可以不斷的追溯數據,直到確定到最具體的細節上,這樣能夠不斷提升老闆或管理層的管理水平,不斷改善企業的管理。我們知道的最好的一個例子就是美國某大型超市啤酒和尿布的故事。
沃爾瑪公司在美國的一位店面經理曾發現,每周,啤酒和尿布的銷量都會有一次同比攀升,一時卻搞不清是什麼原因。後來,沃爾瑪運用商業智能( Business Intelligence ,簡稱BI)技術發現,購買這兩種產品的顧客幾乎都是 25 歲到 35 歲、家中有嬰兒的男性,每次購買的時間均在周末。沃爾瑪在對相關數據分析後得知,這些人習慣晚上邊看球賽、邊喝啤酒,邊照顧孩子,為了圖省事而使用一次性的尿布。得到這個結果後,沃爾瑪決定把這兩種商品擺放在一起,結果,這兩種商品的銷量都有了顯著增加。
資料庫是數據倉庫的基礎。數據倉庫實際上也是由資料庫的很多表組成的。需要把存放大量操作性業務數據的資料庫經過篩選、抽取、歸納、統計、轉換到一個新的資料庫中。然後再進行數據展現。老闆關注的是數據展現的結果。
數據倉庫 (DATA WAREHOUSE/DATA MART) 的另一重要概念是數據從不同的資料庫 (DATABASES) 里調出經過 ETL 工具 ( 如 POWERCENTRE , DECISIONSTREAM, SQL SERVER 2000 DTS, SQL SERVER 2005 SSIS) 過程進行清理,確證,整合並設計成多維 (dimensional framework) 。 以保證數據的正確、准確、完整 , 這是非常重要的一點。
我們現在的項目穩定運行了 6 年多,一直自己開發,最近慢慢開始使用 datastage 。很多大型項目之所以用工具,是因為工具的本身的特點是開發快,效率相對還可以,讓你更好地有精力用在業務、資料庫的優化以及數據測試上,和數據質量本身並沒有關系。
而數據質量關系最密切的還是從設計(架構、模型等)、業務關系的理解、項目管理(含和客戶的交流,以及遵從開發流程和測試流程)等一系列項目工程的過程。這也是為什麼很多項目使用了 ETL 工具,但是數據質量還是提高不大的主要原因。
數據倉庫的作用重在數據的集中管理。集中管理的最終目的是為了分析,預測。
所謂的 ETL 。不過是數據倉庫的構建的一個必須過程。數據的抽取轉換與裝載,都是為了集中管理所做的基礎工作,這些數據與動作的描述,都會有有響應的元數據進行描述。
在數據倉庫建模的過程,我們一般都是採用多維模型,如星形,雪花型等等,這樣做最大的特點就是效率高,數據的冗餘度低。所以,把 OLAP 與數據倉庫混為一談我認為是片面的解釋。
我們也可以選擇業務邏輯模型建立數據倉庫,這是很早以前的做法了,特點就是效率不高,數據的冗餘度高,但他能實現非常難以表達的業務邏輯設計。
基於數據倉庫最重要的是分析與預測,我認為,歷史現在將來是數據倉庫的精華。。
基於數據倉庫的 DM , OLAP 都是為了分析與預測。為了讓使用企業單位更好的把握現在,預測將來,因此他最實效的說法我認為是給決策者與管理者進行決策管理提供分析與預測的依據。
另外,數據倉庫還會起到歷史數據分類歸檔的目的(就像圖書館一樣),屆時可以通過檢索條件方便的查詢歷史信息;而同類信息在 OLTP 中早已被更新了。
至於它的分析功能,就象氣象考古研究工作,在不同深度的冰川中保存著當時的氣象信息,否則拿什麼預測氣候變化趨勢呢!
不過,要有相當的管理及技術儲備以及管理層的強力支持才可以。先有需求,並具備了必要條件才可上馬,否則您的數據倉庫將不是超市而是個垃圾堆, 「garbage in , then garbage out」 !
所以,我認為是企業信息化建設及科學管理水平的提高催生了數據倉庫的必然產生,不要趕時髦,炒概念,關鍵還是冷靜分析自己企業的現實狀況是否到了必須部署數據倉庫的階段了!
至於如何說服管理者,則需要您的努力了,不要站在您技術人員的立場闡述問題, CEO 對技術問題不感興趣,站在他們的角度考慮問題,回答諸如 「 我們投入如此大的資金、人力,同時面對升級系統的巨大風險,目的何在? 」 記住, CEO 和 CFO (甚至包括 CIO )是更希望用數字說話的,您分析一下公司的管理決策流程,就可以向他們提出很有價值的決策支持報表,而部門經理(或類似人員)每季度也不必頭大的製作相關分析報表了,節省的精力可以做更多有價值的事情,這就是企業人力資源利用率的巨大提升,可以節省多少銀子,恐怕 CEO 不會用你提示了吧!
3. 數據倉庫的定義及特點
數據倉庫的定義及特點
一數據倉庫定義
數據倉庫之父Bill Inmon在1991年出版的「Building the Data Warehouse」一書中所提出的定義被廣泛接受:數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策(Decision Making Support)。
對於數據倉庫的概念我們可以從兩個層次予以理解,首先,數據倉庫用於支持決策,面向分析型數據處理,它不同於企業現有的操作型資料庫;其次,數據倉庫是對多個異構的數據源有效集成,集成後按照主題進行了重組,並包含歷史數據,而且存放在數據倉庫中的數據一般不再修改。
二數據倉庫特點
1、面向主題。操作型資料庫的數據組織面向事務處理任務,各個業務系統之間各自分離,而數據倉庫中的數據是按照一定的主題域進行組織。主題是一個抽象的概念,是指用戶使用數據倉庫進行決策時所關心的重點方面,一個主題通常與多個操作型信息系統相關。
2、集成的。面向事務處理的操作型資料庫通常與某些特定的應用相關,資料庫之間相互獨立,並且往往是異構的。而數據倉庫中的數據是在對原有分散的資料庫數據抽取、清理的基礎上經過系統加工、匯總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關於整個企業的一致的全局信息。
3、相對穩定的。操作型資料庫中的數據通常實時更新,數據根據需要及時發生變化。數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以後,一般情況下將被長期保留,也就是數據倉庫中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期的載入、刷新。
4、反映歷史變化。操作型資料庫主要關心當前某一個時間段內的數據,而數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到目前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。
企業數據倉庫的建設,是以現有企業業務系統和大量業務數據的積累為基礎。數據倉庫不是靜態的概念,只有把信息及時交給需要這些信息的使用者,供他們做出改善其業務經營的決策,信息才能發揮作用,信息才有意義。而把信息加以整理歸納和重組,並及時提供給相應的管理決策人員,是數據倉庫的根本任務。因此,從產業界的角度看,數據倉庫建設是一個工程,也是一個過程。