一個BI系統為了滿足企業管理者的要求,從浩如煙海的資料中找出其關心的數據,必須要做到以下幾步:
1)為了整合各種格式的數據,清除原有數據中的錯誤記錄——數據預處理的要求。
2)對預處理過數據,應該統一集中起來——元數據(Meta Data)、數據倉庫(Data Warehouse)的要求;
3)最后,對于集中起來的龐大的數據集,還應進行相應的專業統計,從中發掘出對企業決策有價值的新的機會——OLAP(聯機事務分析)和數據挖掘(Data Mining)的要求。
所以,一個典型的BI體系架構應該包含這3步所涉及的相關要求。
圖1 BI的體系架構
整個體系架構中包括:終端用戶查詢和報告工具、OLAP工具、數據挖掘(Data Mining)軟件、數據倉庫(Data Warehouse)和數據集市(Data Mart)產品、聯機分析處理(OLAP)等工具。
1)終端用戶查詢和報告工具。
專門用來支持初級用戶的原始數據訪問,不包括適應于專業人士的成品報告生成工具。
2)數據預處理(STL-數據抽取、轉換、裝載)
從許多來自不同的企業運作系統的數據中提取出有用的數據并進行清理,以保證數據的正確性,然后經過抽取(Extraction)、轉換(Transformation)和裝載(Load),即ETL過程,合并到一個企業級的數據倉庫里,從而得到企業數據的一個全局視圖。
3)OLAP工具。
提供多維數據管理環境,其典型的應用是對商業問題的建模與商業數據分析。OLAP也被稱為多維分析。
4)數據挖掘(Data Mining)軟件。
使用諸如神經網絡、規則歸納等技術,用來發現數據之間的關系,做出基于數據的推斷。
5)數據倉庫(Data Warehouse)和數據集市(Data Mart)產品。
包括數據轉換、管理和存取等方面的預配置軟件,通常還包括一些業務模型,如財務分析模型。
6)聯機分析處理(OLAP)。
OLAP是使分析人員、管理人員或執行人員能夠從多角度對信息進行快速、一致、交互地存取,從而獲得對數據的更深入了解的一類軟件技術。
其中核心技術在于數據預處理、數據倉庫的建立(DW)、數據挖掘(DM)和聯機分析處理(OLAP)三個部分。接下來,我們對這幾個核心部分進行詳細說明:
當早期大型的在線事務處理系統(OLTP)問世后不久,就出現了一種用于“抽取”處理的簡單程序,其作用是搜索整個文件和數據庫,使用某些標準選擇合乎要求的數據,將其復制拷貝出來,用于總體分析。因為這樣做不會影響正在使用的在線事務處理系統,降低其性能,同時,用戶可以自行控制抽取出來的數據。但是,現在情況發生了巨大的變化,企業同時采用了多個在線事務處理系統,而這些系統之間的數據定義格式不盡相同,即使采用同一軟件廠商提供的不同軟件產品,或者僅僅是產品版本不同,之間的數據定義格式也有少許差距。由此,我們必須先定義一個統一的數據格式,然后把各個來源的數據按新的統一的格式進行轉換,然后集中裝載入數據倉庫中。
其中,尤其要注意的一點時,并不是各個來源的不同格式的所有數據都能被新的統一格式包容,我們也不應強求非要把所有數據源的數據全部集中起來。Why?原因很多。有可能原來錄入的數據中,少量的記錄使用了錯誤的數據,這類數據如果無法校正,應該被舍去。某些數據記錄是非結構化的,很難將其轉化成新定義的統一格式,而且從中抽取信息必須讀取整個文件,效率極低,如大容量的二進制數據文件,多媒體文件等,這類數據如果對企業決策不大,可以舍去。
目前已有一部分軟件廠商開發出專門的ETL工具,其中包括:
Ardent DataStage
Evolutionary Technologies,Inc.(ETI)Extract
Information Powermart
Sagent Solution
SAS Institute
Oracle Warehouse Builder
MSSQL Server2000 DTS
數據倉庫
數據倉庫概念是由號稱“數據倉庫之父”William H.Inmon在上世紀80年代中期撰寫的《建立數據倉庫》一書中首次提出,“數據倉庫是一個面向主題的、集成的、非易失性的,隨時間變化的用來支持管理人員決策的數據集合”。
面向主題是數據倉庫第一個顯著特點,就是指在數據倉庫中,數據按照不同的主題進行組織,每一個主題中的數據都是從各操作數據庫中抽取出來匯集而成,這些與該主題相關的所有歷史數據就形成了相應的主題域。
數據倉庫的第二個顯著特點是集成。數據來源于不同的數據源,通過相應的規則進行一致性轉換,最終集成為一體。
數據倉庫的第三個特點是非易失性。一旦數據被加載到數據倉庫中,數據的值不會再發生變化,盡管運行系統中對數據進行增、刪、改等操作,但對這些數據的操作將會作為新的快照記錄到數據倉庫中,從而不會影響到已經進入到數據倉庫的數據。
數據倉庫最后一個特點是它隨時間變化。數據倉庫中每一個數據都是在特定時間的記錄,每個記錄都有著相應的時間戳。
圖2 數據倉庫體系架構
數據倉庫對外部數據源和操作型數據源的元數據,按照數據倉庫模式設計要求進行歸類,并建成元數據庫,相對應的數據經過ETL后加載到數據倉庫中;當信息客戶需要查詢數據時先通過信息展現系統了解元數據或者直接瀏覽元數據庫,再發起數據查詢請求得到所需數據。
一個典型的企業數據倉庫系統,通常包含數據源、數據存儲與管理、數據的訪問三個部分。
圖3 數據倉庫系統
數據源:是指企業操作型數據庫中的各種生產運營數據、辦公管理數據等內部數據和一些調查數據、市場信息等來自外環境的數據總稱。這些數據是構建數據倉庫系統的基礎是整個系統的數據源泉。
數據的存儲與管理:數據倉庫的存儲主要由元數據的存儲及數據的存儲兩部分組成。元數據是關于數據的數據,其內容主要包括數據倉庫的數據字典、數據的定義、數據的抽取規則、數據的轉換規則、數據加載頻率等信息。各操作數據庫中的數據按照元數據庫中定義的規則,經過抽取、清理、轉換、集成,按照主題重新組織,依照相應的存儲結構進行存儲。也可以面向應用建立一些數據集市,數據集市可以看作是數據倉庫的一個子集,它含有較少的主題域且歷史時間更短數據量更少,一般只能為某個局部范圍內的管理人員服務,因此也稱之為部門級數據倉庫。
數據的訪問:由OLAP(聯機分析處理)、數據挖掘、統計報表、即席查詢等幾部分組成。例如OLAP:針對特定的分析主題,設計多種可能的觀察形式,設計相應的分析主題結構(即進行事實表和維表的設計),使管理決策人員在多維數據模型的基礎上進行快速、穩定和交互性的訪問,并進行各種復雜的分析和預測工作。按照存儲方式來分,OLAP可以分成MOLAP以及ROLAP等方式,MOLAP(Multi-Dimension OLAP)將OLAP分析所需的數據存放在多維數據庫中。分析主題的數據可以形成一個或多個多維立方體。ROLAP(Relational OLAP)將OLAP分析所需的數據存放在關系型數據庫中。分析主題的數據以“事實表-維表”的星型模式組織。
數據挖掘的定義非常模糊,對它的定義取決于定義者的觀點和背景。如下是一些DM文獻中的定義:
數據挖掘是一個確定數據中有效的,新的,可能有用的并且最終能被理解的模式的重要過程。
數據挖掘是一個從大型數據庫中提取以前未知的,可理解的,可執行的信息并用它來進行關鍵的商業決策的過程。
數據挖掘是用在知識發現過程,來辯識存在于數據中的未知關系和模式的一些方法。數據挖掘是發現數據中有益模式的過程。
數據挖掘是我們為那些未知的信息模式而研究大型數據集的一個決策支持過程。
雖然數據挖掘的這些定義有點不可觸摸,但在目前它已經成為一種商業事業。如同在過去的歷次淘金熱中一樣,目標是`開發礦工`。利潤最大的是賣工具給礦工,而不是干實際的開發。
目前業內已有很多成熟的數據挖掘方法論,為實際應用提供了理想的指導模型。其中,標準化的主要有三個:CRISP-DM;PMML;OLE DB for DM。
CRISP-DM(Cross-Industry Standard Process for Data Mining)是目前公認的、較有影響的方法論之一。CRISP-DM強調,DM不單是數據的組織或者呈現,也不僅是數據分析和統計建模,而是一個從理解業務需求、尋求解決方案到接受實踐檢驗的完整過程。CRISP-DM將整個挖掘過程分為以下六個階段:商業理解(Business Understanding),數據理解(Data Understanding),數據準備(Data Preparation),建模(Modeling),評估(Evaluation)和發布(Deployment)。其框架圖如下:
圖4 CRISP-DM模型框架圖
從技術層來看,數據挖掘技術可分為描述型數據挖掘和預測型數據挖掘兩種。描述型數據挖掘包括數據總結、聚類及關聯分析等。預測型數據挖掘包括分類、回歸及時間序列分析等。
1.數據總結:繼承于數據分析中的統計分析。數據總結目的是對數據進行濃縮,給出它的緊湊描述。傳統統計方法如求和值、平均值、方差值等都是有效方法。另外還可以用直方圖、餅狀圖等圖形方式表示這些值。廣義上講,多維分析也可以歸入這一類。
2.聚類:是把整個數據庫分成不同的群組。它的目的是使群與群之間差別很明顯,而同一個群之間的數據盡量相似。這種方法通常用于客戶細分。在開始細分之前不知道要把用戶分成幾類,因此通過聚類分析可以找出客戶特性相似的群體,如客戶消費特性相似或年齡特性相似等。在此基礎上可以制定一些針對不同客戶群體的營銷方案。
3.關聯分析:是尋找數據庫中值的相關性。兩種常用的技術是關聯規則和序列模式。關聯規則是尋找在同一個事件中出現的不同項的相關性;序列模式與此類似,尋找的是事件之間時間上的相關性,如對股票漲跌的分析等。
4.分類:目的是構造一個分類函數或分類模型(也常常稱作分類器),該模型能把數據庫中的數據項映射到給定類別中的某一個。要構造分類器,需要有一個訓練樣本數據集作為輸入。訓練集由一組數據庫記錄或元組構成,每個元組是一個由有關字段(又稱屬性或特征)值組成的特征向量,此外,訓練樣本還有一個類別標記。一個具體樣本的形式可表示為:(v1,v2,...,vn;c),其中vi表示字段值,c表示類別。
5.回歸:是通過具有已知值的變量來預測其它變量的值。一般情況下,回歸采用的是線性回歸、非線性回歸這樣的標準統計技術。一般同一個模型既可用于回歸也可用于分類。常見的算法有邏輯回歸、決策樹、神經網絡等。
6.時間序列:時間序列是用變量過去的值來預測未來的值。
數據挖掘(Data Mining)軟件。使用諸如神經網絡、規則歸納等技術,用來發現數據之間的關系,做出基于數據的推斷。
圖5 數據挖掘系統
以下是一些當前的數據挖掘產品:
IBM: Intelligent Miner 智能礦工
Tandem: Relational Data Miner 關系數據礦工
AngossSoftware: KnowledgeSEEDER 知識搜索者
Thinking Machines Corporation: DarwinTM
NeoVista Software: ASIC
ISL Decision Systems,Inc.: Clementine
DataMind Corporation: DataMind Data Cruncher
Silicon Graphics: MineSet
California Scientific Software: BrainMaker
WizSoft Corporation: WizWhy
Lockheed Corporation: Recon
SAS Corporation: SAS Enterprise Miner
OLAP的概念最早是由關系數據庫之父E.F.Codd于1993年提出的,他同時提出了關于OLAP的12條準則。OLAP的提出引起了很大的反響,OLAP作為一類產品同聯機事務處理(OLTP)明顯區分開來。
當今的數據處理大致可以分成兩大類:聯機事務處理OLTP(On-Line Transaction Processing)、聯機分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關系型數據庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。OLAP是數據倉庫系統的主要應用,支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。
OLAP是使分析人員、管理人員或執行人員能夠從多角度對信息進行快速、一致、交互地存取,從而獲得對數據的更深入了解的一類軟件技術。OLAP的目標是滿足決策支持或者滿足在多維環境下特定的查詢和報表需求,它的技術核心是"維"這個概念。
“維”是人們觀察客觀世界的角度,是一種高層次的類型劃分。“維”一般包含著層次關系,這種層次關系有時會相當復雜。通過把一個實體的多項重要的屬性定義為多個維(DImension),使用戶能對不同維上的數據進行比較。因此OLAP也可以說是多維數據分析工具的集合。
OLAP的基本多維分析操作有鉆取(Roll Up和Drill Down)、切片(Slice)和切塊(Dice)、以及旋轉(Pivot)、Drill Across、Drill Through等。
鉆取是改變維的層次,變換分析的粒度。它包括向上鉆取(Roll Up)和向下鉆?。―rill Down)。Roll Up是在某一維上將低層次的細節數據概括到高層次的匯總數據,或者減少維數;而Drill Down則相反,它從匯總數據深入到細節數據進行觀察或增加新維。
切片和切塊是在一部分維上選定值后,關心度量數據在剩余維上的分布。如果剩余的維只有兩個,則是切片;如果有三個,則是切塊。
旋轉是變換維的方向,即在表格中重新安排維的放置(例如行列互換)。
OLAP有多種實現方法,根據存儲數據的方式不同可以分為ROLAP、MOLAP、HOLAP。
ROLAP表示基于關系數據庫的OLAP實現(Relational OLAP)。以關系數據庫為核心,以關系型結構進行多維數據的表示和存儲。ROLAP將多維數據庫的多維結構劃分為兩類表:一類是事實表,用來存儲數據和維關鍵字;另一類是維表,即對每個維至少使用一個表來存放維的層次、成員類別等維的描述信息。維表和事實表通過主關鍵字和外關鍵字聯系在一起,形成了“星型模式”。對于層次復雜的維,為避免冗余數據占用過大的存儲空間,可以使用多個表來描述,這種星型模式的擴展稱為“雪花模式”。
MOLAP表示基于多維數據組織的OLAP實現(Multidimensional OLAP)。以多維數據組織方式為核心,也就是說,MOLAP使用多維數組存儲數據。多維數據在存儲中將形成“立方塊(Cube)”的結構,在MOLAP中對“立方塊”的“旋轉”、“切塊”、“切片”是產生多維數據報表的主要技術。
HOLAP表示基于混合數據組織的OLAP實現(Hybrid OLAP)。如低層是關系型的,高層是多維矩陣型的。這種方式具有更好的靈活性。
還有其他的一些實現OLAP的方法,如提供一個專用的SQL Server,對某些存儲模式(如星型、雪片型)提供對SQL查詢的特殊支持。
OLAP工具是針對特定問題的聯機數據訪問與分析。它通過多維的方式對數據進行分析、查詢和報表。維是人們觀察數據的特定角度。例如,一個企業在考慮產品的銷售情況時,通常從時間、地區和產品的不同角度來深入觀察產品的銷售情況。這里的時間、地區和產品就是維。而這些維的不同組合和所考察的度量指標構成的多維數組則是OLAP分析的基礎,可形式化表示為(維1,維2,……,維n,度量指標),如(地區、時間、產品、銷售額)。多維分析是指對以多維形式組織起來的數據采取切片(Slice)、切塊(Dice)、鉆?。―rill Down和Roll Up)、旋轉(Pivot)等各種分析動作,以求剖析數據,使用戶能從多個角度、多側面地觀察數據庫中的數據,從而深入理解包含在數據中的信息。
根據綜合性數據的組織方式的不同,目前常見的OLAP主要有基于多維數據庫的MOLAP及基于關系數據庫的ROLAP兩種。MOLAP是以多維的方式組織和存儲數據,ROLAP則利用現有的關系數據庫技術來模擬多維數據。在數據倉庫應用中,OLAP應用一般是數據倉庫應用的前端工具,同時OLAP工具還可以同數據挖掘工具、統計分析工具配合使用,增強決策分析功能。