資料倉庫的直白概述
本文來自網易雲社群
作者:王攀
我們知道,大部分公司都擁有了自己的財務,OA,CRM 等系統。這些系統都有自己的獨立資料庫,記錄著企業執行情況某個方面的資料。但是單獨看這些系統的報表,並不一定能對企業執行情況有全面客觀的瞭解。就像只憑身高不能判斷一個人是否健康,所以體檢的時候我們需要化驗許多指標,做各種檢測,就是為了對身體情況有更全面的瞭解,作出更準確的判斷。
同樣對一個企業,不能僅根據出勤率就判斷一個人的績效高低,因為你不知道他的工作成果情況。僅根據財務報表輸入支出也體現不了各部門的收益情況,這個部門有多少工作人員,完成了哪些任務你也不知道。正式由於這種需求,產生了OLAP(Online analytical processing )應用,在建立了彙集各系統資料的資料倉庫後,OLAP應用可以快速解析多維的查詢分析,針對查詢出的資料,使用者也可以方便的進行鑽取,如查詢出了年度資料,可以很方便的檢視月度資料;查詢好地區的資料,可以再看相應城市的資料,還可以顯示相應的趨勢圖,柱狀圖,餅圖等,從而給決策者的判斷提供有效的資料支援。
一、資料抽取(底層)
我們做飯之前,先要從菜場各個攤位去買我們需要的原材料,如青菜,番茄,雞蛋,和魚,然後把菜上的老葉子去掉,魚鱗和內臟去掉,洗乾淨。建立OLAP應用之前,我們要想辦法把各個獨立系統的資料抽取出來,經過一定的轉換和過濾,存放到一個集中的地方,成為資料倉庫。這個抽取,轉換,載入的過程叫ETL(Extract, Transform,Load).相應的開發工具Oracle有DataStage,微軟有SQL Server Integration Services,Pentaho有Kettle。這些ETL工具一般都支援圖形化流程建模,文字檔案對映匯入,XML,XSLT,可執行SQL,javascript等。
二、資料建模(中間層)
材料準備好後,我們要規劃他們可以做出什麼樣的菜。首先我們選擇主要材料:如魚,同樣是魚,可以有多種燒法,紅燒,清蒸,油炸,水煮。不同的燒法還要搭配相應的輔助材料,如紅燒一定要醬油和蔥姜。想好了選單,實際上就已經把這些原材料按不同的組合建立了一定的關係。對於OLAP應用,也要根據客戶需求,我們對資料倉庫中這些物理存在的表要進行邏輯建模,以某些重要的事實資料(如銷售資料)為核心,建立與其他物理表(維度表)之間的業務關係。如銷售資料跟部門表,客戶表之間的關係。事實和維度之間的組合,就建立了將來做多維查詢的基礎。建模過程形成的結果在各中平臺上的叫法不一樣,如BO的叫Universe,Oracle中叫Cube,SqlServer2005的叫統一維度模型UDM,開源Pentaho中也叫Cube。相應的開發工具BO有Business Objects Crystal Decisions,Oracle有 Analytic WorkspaceManager ,SqlServer2005有BusinessIntelligence Development Studio,Pentaho有Schema Workbench。相對其他商業產品,Schema Workbench比較簡單,也沒有和軟體開發平臺如Eclipse整合在一起。
三、多維查詢(服務層和應用層)
準備好了原材料和相應的選單,接下來就是根據要求燒菜了。這當中需要有一種表達需求的語言,例如同樣是這個紅燒魚,有的人希望甜一些,有些人不喜歡放蔥。如果有一個標準的語言描述這種執行要求,就能保證燒的菜符合你的口味了。同樣,有了表達邏輯關係的模型Cube,資料倉庫中也匯入了業務資料,我們還要告訴執行引擎如何取得我們真正所要的資料。這個查詢語言就是MDX(Multidimensional Expression),它是微軟在1997年首次提出,併為多家廠商採用。
四、應用分析(應用層)
燒好了菜,還要決定如何上菜,是用碗,用盤子還是砂鍋,這些都要根據所做的菜式和客戶要求。MDX查詢返回的是多維資料,普通的二維表很難表現超過2個維度的資料,如果要進行資料的鑽取等操作更是難上加難。各廠家的技術平臺都有想應的實現技術。比較底層的介面表現技術Oracle 有Business Intelligence Beans,開源的有JPivot,這些需要開發相應的展示頁面和維護介面,但可以和已有的系統緊密結合。另外為了方便使用者使用和維護,也有做成可執行程式的系統平臺。如Oracle有Oracle Business IntelligenceFoundation,開源的有SpagoBI,Pentaho BI Platform等。這些系統都有完整的DashBoard,多維查詢,報表等功能,使用維護都比較方便,缺點就是比較龐大笨重。
使用者需求決定了如何設計模型和資料倉庫,資料模型又是描述資料倉庫的邏輯關係,而資料模型和資料倉庫的某些技術限制也可能影響使用者需求的實現。這三者之間是相互依存和影響著的。而MDX查詢,又是這三者之間的粘合劑,它表達了使用者的需求,經過OLAP引擎的解析,根據資料模型的描述,從資料倉庫找到所需要的資料。
網易雲免費體驗館,0成本體驗20+款雲產品!
更多網易研發、產品、運營經驗分享請訪問網易雲社群。
相關文章:
【推薦】 windows系統下npm升級的正確姿勢以及原理
【推薦】 一次活動引發的血案