1996年, Inmon 在他的專著《Building the Data Warehouse》中, 對數(shù)據(jù)倉庫做了如下定義,即“面向主題的、完整的、非易失的、不同時間的、用于支持決策的數(shù)據(jù)集合”。這和傳統(tǒng)的OLTP系統(tǒng)有很大的區(qū)別,它屬在線分析(OLAP)系統(tǒng)的范疇。面向主題的,指的是它將依據(jù)一定的主題,比如經(jīng)銷商、產(chǎn)品、定單等匯總各個OLTP系統(tǒng)的數(shù)據(jù)。完整的, 指的是要求對各個系統(tǒng)數(shù)據(jù)表示進(jìn)行轉(zhuǎn)換,用統(tǒng)一編碼表示,比如,A系統(tǒng)用001表示退貨, 而B系統(tǒng)用999表示退貨,在數(shù)據(jù)倉庫中必須統(tǒng)一成一個編碼。 非易失的, 指的是系統(tǒng)用戶只讀數(shù)據(jù),不得修改數(shù)據(jù)。 數(shù)據(jù)倉庫完整地記錄了各個歷史時期的數(shù)據(jù),而OLTP系統(tǒng)不會保留全部的歷史記錄。OLTP系統(tǒng)也難以支持決策查詢,例如從幾千萬筆記錄中獲取不同區(qū)域的匯總報(bào)表。
完整的數(shù)據(jù)倉庫應(yīng)包括:
1.數(shù)據(jù)源-> 2.ETL -> 3.數(shù)據(jù)倉庫存儲 -> 4.OLAP -> 5.BI工具
現(xiàn)實(shí)中可以實(shí)現(xiàn)的方案有:
1.數(shù)據(jù)源-> BI工具
2.數(shù)據(jù)源-> OLAP -> BI工具
3.數(shù)據(jù)源-> 數(shù)據(jù)倉庫存儲 -> BI工具
4.數(shù)據(jù)源-> 數(shù)據(jù)倉庫存儲 -> OLAP -> BI工具
5.數(shù)據(jù)源-> ETL -> 數(shù)據(jù)倉庫存儲 -> OLAP -> BI工具
可見其中必需的是數(shù)據(jù)源和前端,其他的部分都可根據(jù)具體情況決定取舍。
建立數(shù)據(jù)倉庫的步驟:
1) 收集和分析業(yè)務(wù)需求
2) 建立數(shù)據(jù)模型和數(shù)據(jù)倉庫的物理設(shè)計(jì)
3) 定義數(shù)據(jù)源
4) 選擇數(shù)據(jù)倉庫技術(shù)和平臺
5) 從操作型數(shù)據(jù)庫中抽取、凈化、和轉(zhuǎn)換數(shù)據(jù)到數(shù)據(jù)倉庫
6) 選擇訪問和報(bào)表工具
7) 選擇數(shù)據(jù)庫連接軟件
8) 選擇數(shù)據(jù)分析和數(shù)據(jù)展示軟件
9) 更新數(shù)據(jù)倉庫
數(shù)據(jù)倉庫設(shè)計(jì)的主要步驟如下:
1. 系統(tǒng)主題的確定
這要求系統(tǒng)設(shè)計(jì)人員多與業(yè)務(wù)人員溝通, 詳細(xì)了解業(yè)務(wù)需求、報(bào)表需求,再歸納成數(shù)據(jù)倉庫的主題。 例如, 經(jīng)銷商主題,包含經(jīng)銷商各個歷史時期的級別、 銷售額、信貸、活動區(qū)域等。 產(chǎn)品主題,包含每個產(chǎn)品在各個歷史時期、各個區(qū)域的銷售額、促銷力度、銷售件數(shù)、產(chǎn)品類別等。
2. 數(shù)據(jù)庫的邏輯設(shè)計(jì)
在確定主題后, 需要對主題包含的信息進(jìn)行詳細(xì)定義,并對事實(shí)表和維表的關(guān)系詳細(xì)定義。比如, 經(jīng)銷商主題中的銷售額, 定義為幾個字段:NetSales (凈銷售額),表示扣除了一切優(yōu)惠折扣,數(shù)據(jù)類型為Number(12,3); CusSales, 表示產(chǎn)品目錄價的銷售額, 數(shù)據(jù)類型為 Number(12,3);
TitleCode, 表示級別, 如101表示全國一級代理, 202表示省二級代理,數(shù)據(jù)類型為 VarChar2(3)等。
3. 數(shù)據(jù)庫的物理設(shè)計(jì)
物理設(shè)計(jì)主要考慮數(shù)據(jù)的存儲方式, 使得系統(tǒng)有較好的性能。 對于記錄龐大的事實(shí)表, 可以考慮分區(qū)存放。而記錄很少的維表則可以集中存放于某一表空間, 甚至可以讓其數(shù)據(jù)在首次讀取時駐留在系統(tǒng)內(nèi)存中, 以加快數(shù)據(jù)存取速度。索引的建立也在物理設(shè)計(jì)中完成, 索引是一把雙刃劍,能提高讀取速度, 也會使數(shù)據(jù)更新速度降低, 并占用大量磁盤空間。后面的案例分析中將談到這點(diǎn)。獨(dú)立磁盤陣列(RAID)方案的設(shè)計(jì)與數(shù)據(jù)更新網(wǎng)絡(luò)的設(shè)計(jì)也需在此階段完成。合適的RAID方案對最終系統(tǒng)的性能有很大的影響。
4. 源數(shù)據(jù)獲取、清洗、整理及裝載設(shè)計(jì)
數(shù)據(jù)倉庫的數(shù)據(jù)總是來自前臺作業(yè)系統(tǒng)、業(yè)務(wù)部門的計(jì)劃數(shù)據(jù)、各類廣告促銷活動及其影響數(shù)據(jù),以及購買回來的商業(yè)數(shù)據(jù)庫。 這些數(shù)據(jù)并非照搬過來就行, 而是要按照前面提到的步驟, 以統(tǒng)一定義的格式從各個系統(tǒng)抽取出來, 經(jīng)過清洗,再經(jīng)過數(shù)據(jù)裝載和整理程序進(jìn)入數(shù)據(jù)倉庫。
5. 數(shù)據(jù)表達(dá)及訪問設(shè)計(jì)
數(shù)據(jù)按統(tǒng)一格式、不同的主題存放到數(shù)據(jù)倉庫后,下一步要著手?jǐn)?shù)據(jù)表達(dá)及訪問。這主要考慮用戶對信息的具體需求, 對應(yīng)采用不同的方式。 比如, 使用Oracle數(shù)據(jù)庫存放數(shù)據(jù), 可以用PL/SQL編制報(bào)表, 也可以用Developer2000或Visual Basic編制報(bào)表, 當(dāng)然也可以采用一些業(yè)界優(yōu)秀的OLAP產(chǎn)品,例如Cognos公司的Transformer、PowerPlay Enterprise、Oracle公司的Express等。
6. 不間斷的維護(hù)方案的設(shè)計(jì)
數(shù)據(jù)倉庫的運(yùn)作與傳統(tǒng)的作業(yè)系統(tǒng)有很大區(qū)別, 它需要不間斷地維護(hù),否則它的性能將越來越差。 例如, 數(shù)據(jù)訪問采用基于代價的優(yōu)化(CBO),
事實(shí)表記錄實(shí)施時有300萬筆記錄,一個月后記錄數(shù)為3000萬,當(dāng)時的CBO根本無法得到現(xiàn)在的最優(yōu)化存取路徑。必須設(shè)計(jì)一個不間斷的維護(hù)方案, 讓系統(tǒng)保持優(yōu)良的性能。
7. 編碼、測試及實(shí)施
下面的工作就是編碼、測試及實(shí)施了。最終的數(shù)據(jù)倉庫系統(tǒng)結(jié)構(gòu)大致如圖1所示,依據(jù)不同的情況, 系統(tǒng)結(jié)構(gòu)圖也會有些差別。
=======================商業(yè)智能的概念===========================
商業(yè)智能是什么?簡而言之,它是能夠幫助用戶對自身業(yè)務(wù)經(jīng)營做出正確明智決定的工具。一般現(xiàn)代化的業(yè)務(wù)操作,通常都會產(chǎn)生大量的數(shù)據(jù),如訂單、庫存、交易帳目、通話記錄、及客戶資料等。如何利用這些數(shù)據(jù)增進(jìn)對業(yè)務(wù)情況的了解,幫助我們在業(yè)務(wù)管理及發(fā)展上作出及時、正確的判斷,也就是說,怎樣從業(yè)務(wù)數(shù)據(jù)中提取有用的信息,然后根據(jù)這些信息來采用明智的行動--這就是商業(yè)智能的課題。
目前,商業(yè)智能產(chǎn)品及解決方案大致可分為數(shù)據(jù)倉庫產(chǎn)品、數(shù)據(jù)抽取產(chǎn)品、OLAP產(chǎn)品、展示產(chǎn)品、和集成以上幾種產(chǎn)品的針對某個應(yīng)用的整體解決方案等。
商業(yè)智能領(lǐng)域的技術(shù)應(yīng)用:
商業(yè)智能的技術(shù)體系主要有數(shù)據(jù)倉庫(DW)、在線分析處理(OLAP)以及數(shù)據(jù)挖掘(DM)三部分組成。
數(shù)據(jù)倉庫是商業(yè)智能的基礎(chǔ),許多基本報(bào)表可以由此生成,但它更大的用處是作為進(jìn)一步分析的數(shù)據(jù)源。所謂數(shù)據(jù)倉庫(DW)就是面向主題的、集成的、穩(wěn)定的、不同時間的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。多維分析和數(shù)據(jù)挖掘是最常聽到的例子,數(shù)據(jù)倉庫能供給它們所需要的、整齊一致的數(shù)據(jù)。
在線分析處理(OLAP)技術(shù)則幫助分析人員、管理人員從多種角度把從原始數(shù)據(jù)中轉(zhuǎn)化出來、能夠真正為用戶所理解的、并真實(shí)反映數(shù)據(jù)維特性的信息,進(jìn)行快速、一致、交互地訪問,從而獲得對數(shù)據(jù)的更深入了解的一類軟件技術(shù)。
數(shù)據(jù)挖掘(DM)是一種決策支持過程,它主要基于AI、機(jī)器學(xué)習(xí)、統(tǒng)計(jì)學(xué)等技術(shù),高度自動化地分析企業(yè)原有的數(shù)據(jù),做出歸納性的推理,從中挖掘出潛在的模式,預(yù)測客戶的行為,幫助企業(yè)的決策者調(diào)整市場策略,減少風(fēng)險,做出正確的決策。
===================數(shù)據(jù)倉庫常見名詞淺釋============================
Data Warehouse
本世紀(jì)80年代中期,"數(shù)據(jù)倉庫之父"William H.Inmon先生在其《建立數(shù)據(jù)倉庫》一書中定義了數(shù)據(jù)倉庫的概念,隨后又給出了更為精確的定義:數(shù)據(jù)倉庫是在企業(yè)管理和決策中面向主題的、集成的、與時間相關(guān)的、不可修改的數(shù)據(jù)集合。與其他數(shù)據(jù)庫應(yīng)用不同的是,數(shù)據(jù)倉庫更像一種過程,對分布在企業(yè)內(nèi)部各處的業(yè)務(wù)數(shù)據(jù)的整合、加工和分析的過程。而不是一種可以購買的產(chǎn)品。
Data mart
數(shù)據(jù)集市,或者叫做"小數(shù)據(jù)倉庫"。如果說數(shù)據(jù)倉庫是建立在企業(yè)級的數(shù)據(jù)模型之上的話。那么數(shù)據(jù)集市就是企業(yè)級數(shù)據(jù)倉庫的一個子集,他主要面向部門級業(yè)務(wù),并且只是面向某個特定的主題。數(shù)據(jù)集市可以在一定程度上緩解訪問數(shù)據(jù)倉庫的瓶頸。
OLAP
聯(lián)機(jī)分析處理(OLAP)的概念最早是由關(guān)系數(shù)據(jù)庫之父E.F.Codd于1993年提出的。當(dāng)時,Codd認(rèn)為聯(lián)機(jī)事務(wù)處理(OLTP)已不能滿足終端用戶對數(shù)據(jù)庫查詢分析的需要,SQL對大數(shù)據(jù)庫進(jìn)行的簡單查詢也不能滿足用戶分析的需求。用戶的決策分析需要對關(guān)系數(shù)據(jù)庫進(jìn)行大量計(jì)算才能得到結(jié)果,而查詢的結(jié)果并不能滿足決策者提出的需求。因此Codd提出了多維數(shù)據(jù)庫和多維分析的概念,即OLAP。Codd提出OLAP的12條準(zhǔn)則來描述OLAP系統(tǒng):
準(zhǔn)則1 OLAP模型必須提供多維概念視圖
準(zhǔn)則2 透明性準(zhǔn)則
準(zhǔn)則3 存取能力推測
準(zhǔn)則4 穩(wěn)定的報(bào)表能力
準(zhǔn)則5 客戶/服務(wù)器體系結(jié)構(gòu)
準(zhǔn)則6 維的等同性準(zhǔn)則
準(zhǔn)則7 動態(tài)的稀疏矩陣處理準(zhǔn)則
準(zhǔn)則8 多用戶支持能力準(zhǔn)則
準(zhǔn)則9 非受限的跨維操作
準(zhǔn)則10 直觀的數(shù)據(jù)操縱
準(zhǔn)則11 靈活的報(bào)表生成
準(zhǔn)則12 不受限的維與聚集層次
ROLAP
基于Codd的12條準(zhǔn)則,各個軟件開發(fā)廠家見仁見智,其中一個流派,認(rèn)為可以沿用關(guān)系型數(shù)據(jù)庫來存儲多維數(shù)據(jù),于是,基于稀疏矩陣表示方法的星型結(jié)構(gòu)(star schema)就出現(xiàn)了。后來又演化出雪花結(jié)構(gòu)。為了與多維數(shù)據(jù)庫相區(qū)別,則把基于關(guān)系型數(shù)據(jù)庫的OLAP稱為Relational OLAP,簡稱ROLAP。代表產(chǎn)品有Informix Metacube、Microsoft SQL Server OLAP Services。
MOLAP
Arbor Software嚴(yán)格遵照Codd的定義,自行建立了多維數(shù)據(jù)庫,來存放聯(lián)機(jī)分析系統(tǒng)數(shù)據(jù),開創(chuàng)了多維數(shù)據(jù)存儲的先河,后來的很多家公司紛紛采用多維數(shù)據(jù)存儲。被人們稱為Muiltdimension OLAP,簡稱MOLAP,代表產(chǎn)品有Hyperion(原Arbor Software) Essbase、Showcase Strategy等。
Client OLAP
相對于Server OLAP而言。部分分析工具廠家建議把部分?jǐn)?shù)據(jù)下載到本地,為用戶提供本地的多維分析。代表產(chǎn)品有Brio Designer,Business Object。
DSS
決策支持系統(tǒng)(Decision Support System),相當(dāng)于基于數(shù)據(jù)倉庫的應(yīng)用。決策支持就是在收集所有有關(guān)數(shù)據(jù)和信息,經(jīng)過加工整理,來為企業(yè)決策管理層提供信息,為決策者的決策提供依據(jù)。
ETL
數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換(Transform)、清洗(Cleansing)、裝載(Load)的過程。構(gòu)建數(shù)據(jù)倉庫的重要一環(huán),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗,最終按照預(yù)先定義好的數(shù)據(jù)倉庫模型,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中去。
Ad hoc query
即席查詢,數(shù)據(jù)庫應(yīng)用最普遍的一種查詢,利用數(shù)據(jù)倉庫技術(shù),可以讓用戶隨時可以面對數(shù)據(jù)庫,獲取所希望的數(shù)據(jù)。
EIS
領(lǐng)導(dǎo)信息系統(tǒng)(Executive Information System),指為了滿足無法專注于計(jì)算機(jī)技術(shù)的領(lǐng)導(dǎo)人員的信息查詢需求,而特意制定的以簡單的圖形界面訪問數(shù)據(jù)倉庫的一種應(yīng)用。
BPR
業(yè)務(wù)流程重整(Business Process Reengineering),指利用數(shù)據(jù)倉庫技術(shù),發(fā)現(xiàn)并糾正企業(yè)業(yè)務(wù)流程中的弊端的一項(xiàng)工作,數(shù)據(jù)倉庫的重要作用之一。
BI
商業(yè)智能(Business Intelligence),指數(shù)據(jù)倉庫相關(guān)技術(shù)與應(yīng)用的通稱。指利用各種智能技術(shù),來提升企業(yè)的商業(yè)競爭力。
Data Mining
數(shù)據(jù)挖掘,Data Mining是一種決策支持過程,它主要基于AI、機(jī)器學(xué)習(xí)、統(tǒng)計(jì)學(xué)等技術(shù),高度自動化地分析企業(yè)原有的數(shù)據(jù),做出歸納性的推理,從中挖掘出潛在的模式,預(yù)測客戶的行為,幫助企業(yè)的決策者調(diào)整市場策略,減少風(fēng)險,做出正確的決策
CRM
客戶關(guān)系管理(Customer Relationship Management),數(shù)據(jù)倉庫是以數(shù)據(jù)庫技術(shù)為基礎(chǔ)但又與傳統(tǒng)的數(shù)據(jù)庫應(yīng)用有著本質(zhì)區(qū)別的新技術(shù),CRM就是基于數(shù)據(jù)倉庫技術(shù)的一種新應(yīng)用。但是,從商業(yè)運(yùn)作的角度來講,CRM其實(shí)應(yīng)該算是一個古老的"應(yīng)用"了。比如,酒店對客人信息的管理,如果某個客人是某酒店的老主顧,那么該酒店很自然地會知道這位客人的某些習(xí)慣和喜好,如是否喜歡靠路邊,是否吸煙,是否喜歡大床,喜歡什么樣的早餐,等等。當(dāng)客人再次光臨時,不用客人自己提出來,酒店就會提供客人所喜歡的房間和服務(wù)。這就是一種CRM。
Meta Data
元數(shù)據(jù),關(guān)于數(shù)據(jù)倉庫的數(shù)據(jù),指在數(shù)據(jù)倉庫建設(shè)過程中所產(chǎn)生的有關(guān)數(shù)據(jù)源定義,目標(biāo)定義,轉(zhuǎn)換規(guī)則等相關(guān)的關(guān)鍵數(shù)據(jù)。同時元數(shù)據(jù)還包含關(guān)于數(shù)據(jù)含義的商業(yè)信息,所有這些信息都應(yīng)當(dāng)妥善保存,并很好地管理。為數(shù)據(jù)倉庫的發(fā)展和使用提供方便。
=========================基本術(shù)語============================
維度是與業(yè)務(wù)相關(guān)的觀察角度。粒度是指數(shù)據(jù)倉庫的數(shù)據(jù)單位中保存數(shù)據(jù)的細(xì)化或綜合程度的級別。對于產(chǎn)品維度來說,粒度就是1,就是產(chǎn)品類型本身。
粒度是用來描述維度的,比如,一個時間維的最細(xì)粒度是月,就說明這個時間的最低級的level是月,可能是年-季度-月,或者年-月等。
什么是粒度,顧名思義,就是取不同大小的對象。也就是說,將原來“粗粒度”的大對象分割為若干“細(xì)粒度”的小對象,或者把若干小對象合并成一個大的粗粒度對象,進(jìn)行研究。粒度(granulation)
粒度是數(shù)據(jù)倉庫的重要概念。粒度可以分為兩種形式,第一種粒度是對數(shù)據(jù)倉庫中的數(shù)據(jù)的綜合程度高低的一個度量,它既影響數(shù)據(jù)倉庫中的數(shù)據(jù)量的多少,也影響數(shù)據(jù)倉庫所能回答詢問的種類。在數(shù)據(jù)倉庫中,多維粒度是必不可少的。由于數(shù)據(jù)倉庫的主要作用是DSS分析,因而絕大多數(shù)查詢都基于一定程度的綜合數(shù)據(jù)之上的,只有極少數(shù)查詢涉及到細(xì)節(jié)。所以應(yīng)該將大粒度數(shù)據(jù)存儲于快速設(shè)備如磁盤上,小粒度數(shù)據(jù)存于低速設(shè)備如磁帶上。
什么是主題呢?首先,主題是一個抽象的概念,是較高層次上企業(yè)信息系統(tǒng)中的數(shù)據(jù)綜合、歸類并進(jìn)行分析利用的抽象。在邏輯意義上,它是對應(yīng)企業(yè)中某一宏觀分析領(lǐng)域所涉及的分析對象。面向主題的數(shù)據(jù)組織方式,就是在較高層次上對分析對象的數(shù)據(jù)的一個完整、一致的描述,能完整、統(tǒng)一地刻劃各個分析對象所涉及的企業(yè)的各項(xiàng)數(shù)據(jù),以及數(shù)據(jù)之間的聯(lián)系。所謂較高層次是相對面向應(yīng)用的數(shù)據(jù)組織方式而言的,是指按照主題進(jìn)行數(shù)據(jù)組織的方式具有
更高的數(shù)據(jù)抽象級別。
OLAP的基本多維分析操作有鉆?。╮oll up和drill down)、切片(slice)和切塊(dice)、以及旋轉(zhuǎn)(pivot)等。
鉆取是改變維的層次,變換分析的粒度。它包括向上鉆取和向下鉆取。
roll up是在某一維上將低層次的細(xì)節(jié)數(shù)據(jù)概括到高層次的匯總數(shù)據(jù);
而drill down則相反,它從匯總數(shù)據(jù)深入到細(xì)節(jié)數(shù)據(jù)進(jìn)行觀察.
切片和切塊是在一部分維上選定值后,關(guān)心度量數(shù)據(jù)在剩余維上的分布。如果剩余的維只有兩個,則是切片,否則是切塊.
旋轉(zhuǎn)是變換維的方向,即在表格中重新安排維的放置(例如行列互換).
=======================常見的OLAP操作===========================
1)上卷
又稱上鉆,通過一個維從低層次向較高的層次攀升,從而得到數(shù)據(jù)立方體的聚合數(shù)據(jù)。
如:在產(chǎn)品維度上,由產(chǎn)品向小類上卷,可得到小類的聚合數(shù)據(jù);再由小類向大類上卷,可得到大類層次的聚合數(shù)據(jù)。
2)下鉆
下鉆是上卷的逆操作,它是由不太詳細(xì)的數(shù)據(jù)到更詳細(xì)的數(shù)據(jù)。如:沿著時間維度,從年到季度,再到月下鉆,可以得到更加詳細(xì)的數(shù)據(jù)。
3)切片和切塊
切片操作在給定的數(shù)據(jù)多維模型的一個維度上進(jìn)行選擇,導(dǎo)致一個子方。比如:可以對時間維度按"時間=2002年1月"進(jìn)行切片,得到一個含產(chǎn)品和門店兩個緯度的片狀圖。
切塊操作通過對兩個維度或多個維度進(jìn)行選擇,定義子方。如:可按"時間=2002年1月"AND"城市=上海"進(jìn)行切塊。
4)旋轉(zhuǎn)
旋轉(zhuǎn)是一種目視操作,它轉(zhuǎn)動數(shù)據(jù)的視角,提供數(shù)據(jù)的替代表示。