OLAP分析

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16723161/viewspace-1013319/,如需轉載,請註明出處,否則將追究法律責任。

相關文章