Ⅰ 數據倉庫的含義,數據倉庫和資料庫的區別.
什麼是數據倉庫
目前,數據倉庫一詞尚沒有一個統一的定義,著名的數據倉庫專家 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 不會用你提示了吧!
Ⅱ 數據倉庫中,數據是多維度的立體結構,數據來源於單個業務資料庫對么
數據倉庫中數據的來源是多源的,但最大中沒量的、最基本的就賣慎納是業務資料庫,例如:生產過程的實績、質量管理中的數據;當然還有一些是其它的,例如:人力資源、成本、采購等。
但關鍵的是需要將不同的業務數據,根孝茄據一定的鍵字、規則進行重構,而這個重構是根據企業對於這些數據的理解進行的。
Ⅲ 數據挖掘是從「資料庫」還是「數據倉庫」抽取數據
從數據倉庫。數據倉庫是資料庫的一種表現形式,但是與傳統資料庫概念相比有著更龐大的數據量,更多的數據主題與數據維度,同時物理涉設計也偏向於海量數據並行處理,與事物處理型資料庫差異很大。數據挖掘無論是所需要的基礎數據還是處理性能,都只有數據倉庫這種價格,才能夠滿足,或者說傳統概念的資料庫,不具備,也沒有必要使用數據挖掘。
Ⅳ 資料庫和數據倉庫的區別與聯系
資料庫是數據根據需求設計的數據表的集合,而數據倉庫只是儲存數據的平台。數據倉庫可以看成一個儲存數據的倉庫;而資料庫是一個圖書館,儲存的書是各種數據表。
Ⅳ 資料庫根數據倉庫有什麼區別,如何區分
簡而言之,資料庫是面向事務的設計,數據倉庫是面向主題設計的。
資料庫一般存儲在線交易數據悶孝,數據倉庫存儲的一般是歷史數據。
資料庫設計是盡量避免冗餘,一般採用符合範式的規則來設計,數據倉庫在設計是有意引入冗餘,採用反範式的方式來設計。
資料庫是為捕獲數據而設計,數據倉庫是為分析數據而設計,它的兩個基本的元素是維表和事實表。維是看問題的角度,比如時間,部門,維表放的就是這些東西的定義,事實表裡放著要查詢的數據,同時有維的ID。
單從概念上講,有些晦澀。任何技術都是為應用服務的,結合應用可以很容易地理解。以銀行業務為例。資料庫是事務系統的數據平台,客戶在銀行做的每筆交易都會寫入資料庫,被記錄下來,這里,可以簡單地理解為用資料庫記帳。數據倉庫是分析系統的數據平台,它從事務系統獲取數據,並做匯總、加工,為決策者提供決策的依據。比如,某銀行某分行一個月擾孫發生多少交易,該分行當前存款余額是多少。如果存款又多,螞李稿消費交易又多,那麼該地區就有必要設立ATM了。
顯然,銀行的交易量是巨大的,通常以百萬甚至千萬次來計算。事務系統是實時的,這就要求時效性,客戶存一筆錢需要幾十秒是無法忍受的,這就要求資料庫只能存儲很短一段時間的數據。而分析系統是事後的,它要提供關注時間段內所有的有效數據。這些數據是海量的,匯總計算起來也要慢一些,但是,只要能夠提供有效的分析數據就達到目的了。
數據倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它決不是所謂的「大型資料庫」。那麼,數據倉庫與傳統資料庫比較,有哪些不同呢?讓我們先看看W.H.Inmon關於數據倉庫的定義:面向主題的、集成的、與時間相關且不可修改的數據集合。
「面向主題的」:傳統資料庫主要是為應用程序進行數據處理,未必按照同一主題存儲數據;數據倉庫側重於數據分析工作,是按照主題存儲的。這一點,類似於傳統農貿市場與超市的區別—市場裡面,白菜、蘿卜、香菜會在一個攤位上,如果它們是一個小販賣的;而超市裡,白菜、蘿卜、香菜則各自一塊。也就是說,市場里的菜(數據)是按照小販(應用程序)歸堆(存儲)的,超市裡面則是按照菜的類型(同主題)歸堆的。
「與時間相關」:資料庫保存信息的時候,並不強調一定有時間信息。數據倉庫則不同,出於決策的需要,數據倉庫中的數據都要標明時間屬性。決策中,時間屬性很重要。同樣都是累計購買過九車產品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對於決策者意義是不同的。
「不可修改」:數據倉庫中的數據並不是最新的,而是來源於其它數據源。數據倉庫反映的是歷史信息,並不是很多資料庫處理的那種日常事務數據(有的資料庫例如電信計費資料庫甚至處理實時信息)。因此,數據倉庫中的數據是極少或根本不修改的;當然,向數據倉庫添加數據是允許的。
數據倉庫的出現,並不是要取代資料庫。目前,大部分數據倉庫還是用關系資料庫管理系統來管理的。可以說,資料庫、數據倉庫相輔相成、各有千秋。
補充一下,數據倉庫的方案建設的目的,是為前端查詢和分析作為基礎,由於有較大的冗餘,所以需要的存儲也較大。為了更好地為前端應用服務,數據倉庫必須有如下幾點優點,否則是失敗的數據倉庫方案。
1.效率足夠高。客戶要求的分析數據一般分為日、周、月、季、年等,可以看出,日為周期的數據要求的效率最高,要求24小時甚至12小時內,客戶能看到昨天的數據分析。由於有的企業每日的數據量很大,設計不好的數據倉庫經常會出問題,延遲1-3日才能給出數據,顯然不行的。
2.數據質量。客戶要看各種信息,肯定要准確的數據,但由於數據倉庫流程至少分為3步,2次ETL,復雜的架構會更多層次,那麼由於數據源有臟數據或者代碼不嚴謹,都可以導致數據失真,客戶看到錯誤的信息就可能導致分析出錯誤的決策,造成損失,而不是效益。
3.擴展性。之所以有的大型數據倉庫系統架構設計復雜,是因為考慮到了未來3-5年的擴展性,這樣的話,客戶不用太快花錢去重建數據倉庫系統,就能很穩定運行。主要體現在數據建模的合理性,數據倉庫方案中多出一些中間層,使海量數據流有足夠的緩沖,不至於數據量大很多,就運行不起來了。
Ⅵ 資料庫與數據倉庫的區別
資料庫是面向事務的設計,數據倉庫是面向主題設計的。資料庫一般存儲在回線交易數據,數據倉庫存儲的一答般是歷史數據。
「與時間相關」:資料庫保存信息的時候,並不強調一定有時間信息。數據倉庫則不同,出於決策的需要,數據倉庫中的數據都要標明時間屬性。決策中,時間屬性很重要。同樣都是累計購買過九車產品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對於決策者意義是不同的。
「不可修改」:數據倉庫中的數據並不是最新的,而是來源於其它數據源。數據倉庫反映的是歷史信息,並不是很多資料庫處理的那種日常事務數據(有的資料庫例如電信計費資料庫甚至處理實時信息)。因此,數據倉庫中的數據是極少或根本不修改的;當然,向數據倉庫添加數據是允許的。
數據倉庫的出現,並不是要取代資料庫。數據倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的,它決不是所謂的「大型資料庫」。
目前,大部分數據倉庫還是用關系資料庫管理系統來管理的。可以說,資料庫、數據倉庫相輔相成、各有千秋。