李小強(qiáng) 何珊 何金明
摘 要: 數(shù)據(jù)倉庫的產(chǎn)生是信息技術(shù)發(fā)展的必然結(jié)果。它是在數(shù)據(jù)庫的基礎(chǔ)上發(fā)展起來的,又不同于數(shù)據(jù)庫。數(shù)據(jù)庫是作為數(shù)據(jù)管理的手段,主要用于事務(wù)處理,而數(shù)據(jù)倉庫則對聯(lián)機(jī)分析的能力提出更高的要求。本文通過對數(shù)據(jù)庫和數(shù)據(jù)倉庫的概念及應(yīng)用進(jìn)行較全面的對比分析,對數(shù)據(jù)倉庫有更深刻的理解。
關(guān)鍵詞: 數(shù)據(jù)庫 數(shù)據(jù)倉庫 區(qū)別
很多BI論壇上在探討數(shù)據(jù)倉庫的概念與理解:為什么要建立數(shù)據(jù)倉庫,數(shù)據(jù)倉庫和數(shù)據(jù)庫有什么區(qū)別?理論上的說法很多,但要真正很好地理解,能簡潔地向客戶闡述明白,讓客戶覺得建立數(shù)據(jù)倉庫是一件值得做的事情,就有必要回答這個(gè)問題。
一、數(shù)據(jù)庫與數(shù)據(jù)倉庫的概念區(qū)別
嚴(yán)格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。在經(jīng)濟(jì)管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)這樣的“倉庫”,并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個(gè)數(shù)據(jù)庫。有了這個(gè)“數(shù)據(jù)庫”就可以根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù),等等。這些工作如果都在計(jì)算機(jī)上自動進(jìn)行,那人事管理就可以達(dá)到極高的水平。此外,在財(cái)務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種“數(shù)據(jù)庫”,使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉庫、生產(chǎn)的自動化管理。J.Martin給數(shù)據(jù)庫下了一個(gè)比較完整的定義:數(shù)據(jù)庫是存儲在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無有害的或不必要的冗余,并為多種應(yīng)用服務(wù);數(shù)據(jù)的存儲獨(dú)立于使用它的程序;對數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進(jìn)行。當(dāng)某個(gè)系統(tǒng)中存在結(jié)構(gòu)上完全分開的若干個(gè)數(shù)據(jù)庫時(shí),則該系統(tǒng)包含一個(gè)“數(shù)據(jù)庫集合”。
數(shù)據(jù)倉庫是一種系統(tǒng),這種系統(tǒng)是用數(shù)據(jù)庫裝東西;關(guān)鍵是裝的什么樣的數(shù)據(jù),數(shù)據(jù)庫裝的原始數(shù)據(jù),沒經(jīng)過任何加工;而數(shù)據(jù)倉庫是為了滿足分析需要,對源數(shù)據(jù)進(jìn)行了Transform過程,具體是怎樣一個(gè)處理過程,可以從BillInmon的倉庫定義四個(gè)特性進(jìn)行理解。數(shù)據(jù)倉庫系統(tǒng)與其他基礎(chǔ)業(yè)務(wù)系統(tǒng)(例如財(cái)務(wù)系統(tǒng)、銷售系統(tǒng)、人力資源系統(tǒng)等)的區(qū)別是:
基礎(chǔ)業(yè)務(wù)系統(tǒng)的特點(diǎn)是各管各的,例如農(nóng)場系統(tǒng)生產(chǎn)了白菜,那么用一個(gè)數(shù)據(jù)庫來裝,人力資源系統(tǒng)生產(chǎn)了豬肉,再用一個(gè)數(shù)據(jù)庫來裝。我要做一道菜,取菜的方式為如下兩種。一是分別到各個(gè)數(shù)據(jù)庫去取,比較麻煩,同時(shí)各個(gè)數(shù)據(jù)庫中放的是一些比較原始的東西,我要拿過來做菜,從生菜到下鍋還需要經(jīng)過很多道工序。二是讓種菜的菜農(nóng)送過來,但送過來的東西不一定是我想要的,而且不同的時(shí)候我想要不同的東西,這樣對買賣雙方造成很多麻煩。為了減少這些困擾,就需要改進(jìn)從菜農(nóng)供菜到炒菜的流程,超市就應(yīng)運(yùn)而生了。數(shù)據(jù)倉庫系統(tǒng)就是建立一個(gè)大的超市,將各地菜農(nóng)出產(chǎn)的東西收集過來,清洗干凈,分門別類地放好。這樣,你要哪種菜的時(shí)候,直接從超市里面拿就可以了。
二、數(shù)據(jù)庫與數(shù)據(jù)倉庫應(yīng)用于不同的方向
從應(yīng)用上來講,數(shù)據(jù)庫是面向事務(wù)的設(shè)計(jì),數(shù)據(jù)倉庫是面向主題設(shè)計(jì)的。數(shù)據(jù)庫一般存儲在線交易數(shù)據(jù),數(shù)據(jù)倉庫存儲的一般是歷史數(shù)據(jù)。
因此設(shè)計(jì)上,數(shù)據(jù)庫設(shè)計(jì)是盡量避免冗余,一般采用符合范式的規(guī)則來設(shè)計(jì),數(shù)據(jù)倉庫在設(shè)計(jì)是有意引入冗余,采用反范式的方式來設(shè)計(jì)。數(shù)據(jù)庫是為捕獲數(shù)據(jù)而設(shè)計(jì),數(shù)據(jù)倉庫是為分析數(shù)據(jù)而設(shè)計(jì),它的兩個(gè)基本的元素是維表和事實(shí)表。維是看問題的角度,比如時(shí)間,部門,維表放的就是這些東西的定義,事實(shí)表里放著要查詢的數(shù)據(jù),同時(shí)有維的ID。
任何技術(shù)都是為應(yīng)用服務(wù)的,結(jié)合應(yīng)用可以很容易地理解。以銀行業(yè)務(wù)為例。數(shù)據(jù)庫是事務(wù)系統(tǒng)的數(shù)據(jù)平臺,客戶在銀行做的每筆交易都會寫入數(shù)據(jù)庫,被記錄下來,這里,可以簡單地理解為用數(shù)據(jù)庫記賬。數(shù)據(jù)倉庫是分析系統(tǒng)的數(shù)據(jù)平臺,它從事務(wù)系統(tǒng)獲取數(shù)據(jù),并進(jìn)行匯總、加工,為決策者提供決策的依據(jù)。比如,某銀行某分行一個(gè)月發(fā)生多少交易,該分行當(dāng)前存款余額是多少。比如,某品牌汽車在某地一個(gè)月銷售多少臺汽車,有多少臺是屬于高檔的。如果銷售量又多,咨詢的人數(shù)又在上漲,那么就要考慮在這個(gè)地區(qū)設(shè)高檔4S店。
顯然,有些事實(shí)數(shù)據(jù)的交易量是巨大的,通常以百萬甚至千萬次計(jì)算。事務(wù)系統(tǒng)是實(shí)時(shí)的,這就要求時(shí)效性,比如在銀行,客戶存一筆錢需要幾十秒是無法忍受的,這就要求數(shù)據(jù)庫只能存儲很短一段時(shí)間的數(shù)據(jù)。而分析系統(tǒng)是事后的,它要提供關(guān)注時(shí)間段內(nèi)所有的有效數(shù)據(jù)。這些數(shù)據(jù)是海量的,匯總計(jì)算起來也要慢一些,但是,只要提供有效的分析數(shù)據(jù)就達(dá)到目的了。
數(shù)據(jù)倉庫,是在數(shù)據(jù)庫已經(jīng)大量存在的情況下,為了進(jìn)一步挖掘數(shù)據(jù)資源、為了決策需要而產(chǎn)生的,它絕不是所謂的“大型數(shù)據(jù)庫”。那么,數(shù)據(jù)倉庫與傳統(tǒng)數(shù)據(jù)庫比較,有哪些不同呢?讓我們先看看W.H.Inmon關(guān)于數(shù)據(jù)倉庫的定義:面向主題的、集成的、與時(shí)間相關(guān)且不可修改的數(shù)據(jù)集合。
1.“面向主題的”:傳統(tǒng)數(shù)據(jù)庫主要是為應(yīng)用程序進(jìn)行數(shù)據(jù)處理,未必按照同一主題存儲數(shù)據(jù);數(shù)據(jù)倉庫側(cè)重于數(shù)據(jù)分析工作,是按照主題存儲的。這一點(diǎn),類似于傳統(tǒng)農(nóng)貿(mào)市場與超市的區(qū)別——市場里面,白菜、蘿卜、香菜會在一個(gè)攤位上,如果它們是一個(gè)小販賣的;而超市里,白菜、蘿卜、香菜則各自一塊。也就是說,市場里的菜(數(shù)據(jù))是按照小販(應(yīng)用程序)歸堆(存儲)的,超市里面則是按照菜的類型(同主題)歸堆的。
2.“與時(shí)間相關(guān)”:數(shù)據(jù)庫保存信息的時(shí)候,并不強(qiáng)調(diào)一定有時(shí)間信息。數(shù)據(jù)倉庫則不同,出于決策的需要,數(shù)據(jù)倉庫中的數(shù)據(jù)都要標(biāo)明時(shí)間屬性。決策中,時(shí)間屬性很重要。同樣都是累計(jì)購買過九車產(chǎn)品的顧客,一位是最近三個(gè)月購買九車,一位是最近一年從未買過,這對于決策者意義是不同的。
3、“不可修改”:數(shù)據(jù)倉庫中的數(shù)據(jù)并不是最新的,而是來源于其他數(shù)據(jù)源。數(shù)據(jù)倉庫反映的是歷史信息,并不是很多數(shù)據(jù)庫處理的那種日常事務(wù)數(shù)據(jù)(有的數(shù)據(jù)庫例如電信計(jì)費(fèi)數(shù)據(jù)庫甚至處理實(shí)時(shí)信息)。因此,數(shù)據(jù)倉庫中的數(shù)據(jù)是極少或根本不修改的;當(dāng)然,向數(shù)據(jù)倉庫添加數(shù)據(jù)是允許的。
三、不要把數(shù)據(jù)倉庫理解為數(shù)據(jù)倉庫產(chǎn)生的過程
早期一直不理解數(shù)據(jù)倉庫是什么困惑得很。宏觀一點(diǎn)講,數(shù)據(jù)倉庫就是堆放公司所有數(shù)據(jù)的地方,之所以把數(shù)據(jù)都堆在一起,是為了從中找到有價(jià)值的東西。
數(shù)據(jù)倉庫更多的是一個(gè)概念,不要把數(shù)據(jù)倉庫想成那些號稱是數(shù)據(jù)倉庫的軟件產(chǎn)品們。(數(shù)據(jù)倉庫的建立和數(shù)據(jù)挖掘都是一個(gè)過程,可以從數(shù)據(jù)倉庫生命周期和OLTP系統(tǒng)生命周期的區(qū)別進(jìn)行理解)。
數(shù)據(jù)倉庫的物理上就是數(shù)據(jù)庫,相對業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫叫OLTP數(shù)據(jù)庫(用于業(yè)務(wù)處理),這種數(shù)據(jù)庫叫OLAP數(shù)據(jù)庫,OLAP是針對特定問題的聯(lián)機(jī)數(shù)據(jù)訪問和數(shù)據(jù)分析而產(chǎn)生的一種技術(shù),它滿足DDS從多種角度對數(shù)據(jù)進(jìn)行快速、一致、交互地分析,克服傳統(tǒng)DDS交互能力差的弊病,使決策者能夠?qū)?shù)據(jù)進(jìn)行深入觀察。OLAP服務(wù)器使用為用戶預(yù)定義的多維數(shù)據(jù)視圖對數(shù)據(jù)倉庫的信息進(jìn)行統(tǒng)計(jì)分析處理,為具有明確分析范圍和分析要求的用戶提供高性能的決策支持在線分析處理,是基于DW上的一種多維分析方式。
數(shù)據(jù)倉庫的概念是針對以下基本需求產(chǎn)生的:公司的業(yè)務(wù)系統(tǒng)很多,業(yè)務(wù)系統(tǒng)的歷史數(shù)據(jù)不方便查詢。不同的業(yè)務(wù)系統(tǒng)往往管理部門不同,地域不同。能不能將所有這些數(shù)據(jù)集中起來,再淘淘有沒有有意義的業(yè)務(wù)規(guī)律。數(shù)據(jù)倉庫數(shù)據(jù)庫往往很大,因?yàn)楣舅械臄?shù)據(jù)集中得越多,越能淘到有價(jià)值的發(fā)現(xiàn),例如隨便就100G以上。
數(shù)據(jù)倉庫的組成十分繁雜,既有業(yè)務(wù)系統(tǒng)的歷史數(shù)據(jù),又有人事、財(cái)務(wù)數(shù)據(jù),還要自己建一些基礎(chǔ)性的數(shù)據(jù),例如,公共假期數(shù)據(jù)、地理信息、國家信息等。
數(shù)據(jù)倉庫概念包含從業(yè)務(wù)生產(chǎn)系統(tǒng)采集數(shù)據(jù)的程序,這個(gè)程序還不能影響業(yè)務(wù)系統(tǒng)的運(yùn)行,即所謂“ETL”過程。數(shù)據(jù)倉庫包括業(yè)務(wù)系統(tǒng)長期的歷史數(shù)據(jù),例如5年,用來分析,即所謂“ODS”數(shù)據(jù)。數(shù)據(jù)倉庫包括針對某項(xiàng)業(yè)務(wù)值(例如銷售量)重新打上標(biāo)簽的業(yè)務(wù)流水?dāng)?shù)據(jù),即所謂“事實(shí)表”、“維度表”。數(shù)據(jù)倉庫概念興許還包含報(bào)表生成工具,即所謂“BI”工具。這些工具能夠達(dá)到幾年前所謂DSS(決策分析)的效果。數(shù)據(jù)倉庫的客戶歷史資料的分析,也許又與CRM系統(tǒng)沾點(diǎn)邊。總之,一個(gè)公司要針對已有的歷史業(yè)務(wù)數(shù)據(jù),充分利用它們,那么就應(yīng)上數(shù)據(jù)倉庫項(xiàng)目。至于那些嚇唬人的大寫字母的組合,只是為達(dá)到這個(gè)目的的科學(xué)技術(shù)罷了。必須牢記住數(shù)據(jù)倉庫的基本需求,不要被供應(yīng)商嚇著。
四、數(shù)據(jù)倉庫是數(shù)據(jù)提煉的結(jié)果
數(shù)據(jù)倉庫可以說是決策支持系統(tǒng),能幫助老板了解企業(yè)的整體全貌,看到數(shù)據(jù)倉庫提供的經(jīng)過整理統(tǒng)計(jì)歸納的數(shù)據(jù)后老板憑自己的管理經(jīng)驗(yàn)可以發(fā)現(xiàn)企業(yè)的問題或困難或成功因素在哪一方面,然后不斷地追溯數(shù)據(jù),直到確定到最具體的細(xì)節(jié)上,這樣能夠不斷提升老板或管理層的管理水平,不斷改善企業(yè)的管理情況。最好的一個(gè)例子就是某大型公司炸薯片的故事:
某大型食品公司的一位生成經(jīng)理曾發(fā)現(xiàn),每天晚上炸薯片用的油量比白天增加很多,薯片質(zhì)量也下降很多,一時(shí)卻搞不清是什么原因。后來,公司運(yùn)用商業(yè)智能(BusinessIntelligence,簡稱BI)技術(shù)發(fā)現(xiàn),因?yàn)樵谙奶焯鞖庋谉?,人容易犯困,在凌?點(diǎn)到5點(diǎn)工人的工作效率不高。公司在對相關(guān)數(shù)據(jù)分析后得知,工人在3點(diǎn)到5點(diǎn)增加一頓夜宵,工人的工作效率明顯提高。得到這個(gè)結(jié)果后,公司決定在晚上定時(shí)增加一頓夜宵,并把工作時(shí)間縮短1個(gè)小時(shí),結(jié)果是薯片的產(chǎn)量和質(zhì)量都提高了很多。
五、數(shù)據(jù)倉庫的幾個(gè)特點(diǎn)
數(shù)據(jù)倉庫的方案建設(shè)的目的,是為前端查詢和分析作為基礎(chǔ),因?yàn)橛休^大的冗余,所以需要的存儲空間較大。為了更好地為前端應(yīng)用服務(wù),數(shù)據(jù)倉庫必須有如下幾點(diǎn)優(yōu)點(diǎn),否則就是失敗的數(shù)據(jù)倉庫方案。
1.效率足夠高??蛻粢蟮姆治鰯?shù)據(jù)一般分為日、周、月、季、年等,可以看出,日為周期的數(shù)據(jù)要求的效率最高,要求24小時(shí)甚至12小時(shí)內(nèi),客戶能看到昨天的數(shù)據(jù)分析。由于有的企業(yè)每日的數(shù)據(jù)量很大,設(shè)計(jì)不好的數(shù)據(jù)倉庫經(jīng)常會出問題,延遲1—3日才能給出數(shù)據(jù),顯然不行。
2.數(shù)據(jù)質(zhì)量??蛻粢锤鞣N信息,肯定要準(zhǔn)確的數(shù)據(jù),但由于數(shù)據(jù)倉庫流程至少分為3步,2次ETL,復(fù)雜的架構(gòu)會更多層次,那么由于數(shù)據(jù)源有臟數(shù)據(jù)或者代碼不嚴(yán)謹(jǐn),都可以導(dǎo)致數(shù)據(jù)失真,客戶看到錯(cuò)誤的信息就可能導(dǎo)致分析出錯(cuò)誤的決策,造成損失,而不是效益。
3.擴(kuò)展性。之所以有的大型數(shù)據(jù)倉庫系統(tǒng)架構(gòu)設(shè)計(jì)復(fù)雜,是因?yàn)榭紤]到了未來3—5年的擴(kuò)展性,這樣的話,客戶不用太快花錢重建數(shù)據(jù)倉庫系統(tǒng),就能很穩(wěn)定運(yùn)行。主要體現(xiàn)在數(shù)據(jù)建模的合理性,數(shù)據(jù)倉庫方案中多出一些中間層,使海量數(shù)據(jù)流有足夠的緩沖,不至于數(shù)據(jù)量大時(shí)就運(yùn)行不起來。
參考文獻(xiàn):
[1]周寧,吳佳鑫.信息資源數(shù)據(jù)庫[M].武漢大學(xué)出版社,2010.9,第三版.
[2]陸劍峰,張浩.數(shù)據(jù)倉庫數(shù)據(jù)更新的研究及基于Oracle數(shù)據(jù)庫的開發(fā)與應(yīng)用[J].《計(jì)算機(jī)工程與應(yīng)用》,2004(26).
[3]蔡菁,吳東崢.試析數(shù)據(jù)倉庫技術(shù)與數(shù)據(jù)庫技術(shù)[J].《計(jì)算機(jī)時(shí)代》,2002(8).
[4]王瑞梅.管理信息系統(tǒng)中的數(shù)據(jù)庫與數(shù)據(jù)倉庫[J],《價(jià)值工程》.2005(七).
[5]趙俏.數(shù)據(jù)庫與數(shù)據(jù)倉庫的比較[J].《遼寧師專學(xué)報(bào)。自然科學(xué)版》,2007(四).