OLAP之全過程介紹(ETL過程)

經過多年來企業信息化建設,大部分都擁有了自己的財務,OA,CRM 等軟件。這些系統都有自己的獨立數據庫,記錄着企業運行情況某個方面的數據。但是單獨看這些系統的報表,並不一定能對企業運行情況有全面客觀的瞭解。就像只憑身高不能判斷一個人是否健康,所以體檢的時候我們需要化驗許多指標,做各種檢測,就是爲了對身體情況有更全面的瞭解,作出更準確的判斷。

    同樣對一個企業,不能僅根據出勤率就判斷一個人的績效高低,因爲你不知道他的工作成果情況。僅根據財務報表輸入支出也體現不了各部門的收益情況,這個部門有多少工作人員,完成了哪些任務你也不知道。正式由於這種需求,產生了OLAP(Online analytical processing )應用,在建立了彙集各系統數據的數據倉庫後,OLAP應用可以快速解析多維的查詢分析,針對查詢出的數據,用戶也可以方便的進行鑽取,如查詢出了年度數據,可以很方便的查看月度數據;查詢好地區的數據,可以再看相應城市的數據,還可以顯示相應的趨勢圖,柱狀圖,餅圖等,從而給決策者的判斷提供有效的數據支持。

    數據抽取:我們做飯之前,先要從菜場各個攤位去買我們需要的原材料,如青菜,番茄,雞蛋,和魚,然後把菜上的老葉子去掉,魚鱗和內臟去掉,洗乾淨。建立OLAP應用之前,我們要想辦法把各個獨立系統的數據抽取出來,經過一定的轉換和過濾,存放到一個集中的地方,成爲數據倉庫。這個抽取,轉換,加載的過程叫ETL(Extract, Transform,Load).相應的開發工具Oracle有DataStage,微軟SQL Server Integration Services,Pentaho有Kettle。這些ETL工具一般都支持圖形化流程建模,文本文件映射導入,XML,XSLT,可執行SQL,java script等。
數據建模:材料準備好後,我們要規劃他們可以做出什麼樣的菜。首先我們選擇主要材料:如魚,同樣是魚,可以有多種燒法,紅燒,清蒸,油炸,水煮。不同的燒法還要搭配相應的輔助材料,如紅燒一定要醬油和蔥姜。想好了菜單,實際上就已經把這些原材料按不同的組合建立了一定的關係。對於OLAP應用,也要根據客戶需求,我們對數據倉庫中這些物理存在的表要進行邏輯建模,以某些重要的事實數據(如銷售數據)爲核心,建立與其他物理表(維度表)之間的業務關係。如銷售數據跟部門表,客戶表之間的關係。事實和維度之間的組合,就建立了將來做多維查詢的基礎。建模過程形成的結果在各中平臺上的叫法不一樣,如BO的叫Universe,Oracle中叫Cube,SqlServer2005的叫統一維度模型UDM,開源Pentaho中也叫Cube。相應的開發工具BO有Business Objects Crystal Decisions,Oracle有 Analytic Workspace Manager ,SqlServer2005有Business Intelligence Development Studio,Pentaho有Schema Workbench。相對其他商業產品,Schema Workbench比較簡單,也沒有和軟件開發平臺如Eclipse集成在一起。

    多維查詢:準備好了原材料和相應的菜單,接下來就是根據要求燒菜了。這當中需要有一種表達需求的語言,例如同樣是這個紅燒魚,有的人希望甜一些,有些人不喜歡放蔥。如果有一個標準的語言描述這種執行要求,就能保證燒的菜符合你的口味了。同樣,有了表達邏輯關係的模型Cube,數據倉庫中也導入了業務數據,我們還要告訴執行引擎如何取得我們真正所要的數據。這個查詢語言就是MDX(Multidimensional Expression),它是微軟在1997年首次提出,併爲多家廠商採用。如果要學習它的相關語法,微軟MSDN上有詳細的文檔:http://technet.microsoft.com/zh-cn/library/bb500184.aspx

    數據展現:燒好了菜,還要決定如何上菜,是用碗,用盤子還是砂鍋,這些都要根據所做的菜式和客戶要求。MDX查詢返回的是多維數據,普通的二維表很難表現超過2個維度的數據,如果要進行數據的鑽取等操作更是難上加難。各廠家的技術平臺都有想應的實現技術。比較底層的界面表現技術Oracle 有Business Intelligence Beans,開源的有JPivot,這些需要開發相應的展示頁面和維護界面,但可以和已有的系統緊密結合。另外爲了方便用戶使用和維護,也有做成可運行程序的系統平臺。如Oracle有Oracle Business Intelligence Foundation,開源的有SpagoBI,Pentaho BI Platform等。這些系統都有完整的DashBoard,多維查詢,報表等功能,使用維護都比較方便,缺點就是比較龐大笨重。
以上是建立OLAP應用的幾個重要環節和相關技術,最後總結一下:用戶需求——數據建模——數據倉庫

    用戶需求決定了如何設計模型和數據倉庫,數據模型又是描述數據倉庫的邏輯關係,而數據模型和數據倉庫的某些技術限制也可能影響用戶需求的實現。這三者之間是相互依存和影響着的。而MDX查詢,又是這三者之間的粘合劑,它表達了用戶的需求,經過OLAP引擎的解析,根據數據模型的描述,從數據倉庫找到所需要的數據。

發佈了25 篇原創文章 · 獲贊 17 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章