數據倉庫學習筆記

1996年, Inmon 在他的專著《Building the Data Warehouse》中, 對數據倉庫做了如下定義,即“面向主題的、完整的、非易失的、不同時間的、用於支持決策的數據集合”。這和傳統的OLTP系統有很大的區別,它屬在線分析 (OLAP)系統的範疇。面向主題的,指的是它將依據一定的主題,比如經銷商、產品、定單等彙總各個OLTP系統的數據。完整的, 指的是要求對各個系統數據表示進行轉換,用統一編碼表示,比如,A系統用001表示退貨, 而B系統用999表示退貨,在數據倉庫中必須統一成一個編碼。 非易失的, 指的是系統用戶只讀數據,不得修改數據。 數據倉庫完整地記錄了各個歷史時期的數據,而OLTP系統不會保留全部的歷史記錄。OLTP系統也難以支持決策查詢,例如從幾千萬筆記錄中獲取不同區域的 彙總報表。

完整的數據倉庫應包括:
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)旋轉
旋轉是一種目視操作,它轉動數據的視角,提供數據的替代表示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章