資料倉儲

itpremier發表於2010-10-13

在資料倉儲的開發過程中,需要熟悉大量的概念以及相關工具的使用,還需要了解巨集觀上的各種開發流程,串聯起來完成最終的資料倉儲專案的開發,本篇介紹一些準備工作,包括涉及到的工具介紹,以及開發過程的描述,記錄學習研究的印記,並和大家討論研究存在的相關問題。

資料倉儲的開發,是完全獨立於OLTP系統的,也就是獨立於當前各種應用的業務系統而作的分析專案,因此要包含從資料的遷移(提取)、變換、清洗、載入等ETL操作,其中可以分為這麼幾個資料層。

源資料層
客戶的各種業務系統中的資料,如包括企業、車輛和司機資訊系統、企業錄入資料和及營運等資料,裡面存放了大量的事務資料。

ODS資料層
資料庫使用者ODS資料層主要管理把業務資料層的資料儲存到ODS資料層,它的資料表主要就是來源於業務資料表,通過一些儲存過程把業務資料表結構改變成基層的資料倉儲的表結構。

DW資料層
資料庫使用者DW主要管理把ODS資料層的資料儲存到DW資料層,它的資料表主要就是來源於ODS資料表,通過一些儲存過程把ODS資料表結構改變成專案主題資料倉儲的表結構。
DW資料層還管理一些對儲存過程的記錄表,方便資料倉儲的維護和管理。

 

ODS是一個面向主題的、整合的、可變的、當前的細節資料集合,用於支援企業對於即時性的、操作性的、整合的全體資訊的需求。常常被作為資料倉儲的過渡,也是資料倉儲專案的可選項之一。

因此運算元據儲存(ODS) 是用於支援企業日常的全域性應用的資料集合,ODS的資料具有面向主題、整合的、可變的和資料是當前的或是接近當前的4個基本特徵。同樣也可以看出ODS是介於DB和DW 之間的一種資料儲存技術,和原來面向應用的分散的DB相比,ODS中的資料組織方式和資料倉儲(DW)一樣也是面向主題的和整合的,所以對進入ODS的數 據也象進入資料倉儲的資料一樣進行整合處理。另外ODS只是存放當前或接近當前的資料,如果需要的話還可以對ODS中的資料進行增、刪和更新等操 作,雖然DW中的資料也是面向主題和整合的,但這些資料一般不進行修改,所以ODS和DW的區別主要體現資料的可變性、當前性、穩定性、彙總度上。

為什麼需要有一個ODS系統呢?一般在帶有ODS的系統體系結構中,ODS都具備如下幾個作用:

1) 在業務系統和資料倉儲之間形成一個隔離層。

2) 轉移一部分業務系統細節查詢的功能。

3) 完成資料倉儲中不能完成的一些功能。 

 

這裡我們就需要用到了IBM的DataStage工具。 DataStage 是一套專門對多種運算元據源的資料抽取、轉換和維護過程進行簡化和自動化,並將其輸入資料集市或資料倉儲目標資料庫的整合工具。
DataStage可以從多個不同的業務系統中,從多個平臺的資料來源中抽取資料,完成轉換和清洗,裝載到各種系統裡面。其中每步都可以在圖形化工具裡完成,同樣可以靈活地被外部系統排程,提供專門的設計工具來設計轉換規則和清洗規則等,實現了增量抽取、任務排程等多種複雜而實用的功能。其中簡單的資料轉換可以通過在介面上拖拉操作和呼叫一些DataStage預定義轉換函式來實現,複雜轉換可以通過編寫指令碼或結合其他語言的擴充套件來實現,並且DataStage提供除錯環境,可以極大提高開發和除錯抽取、轉換程式的效率。
DataStage是基於客戶機/伺服器的資料整合架構,優化資料收集,轉換和鞏固的過程。它提供了一套圖形化的客戶工具:
  包括:Designer(設計者):建立執行資料整合任務Job的同時,對資料流和轉換過程建立一個視覺化的演示。
  Manager(管理者):對每個工程的各個單元,包括:庫表定義,集中的資料轉換,後設資料連線等物件進行分類和組織。
  Director(指揮者):為啟動,停止,監視作業提供互動式控制。
  Administrator(管理者):在伺服器端管理DataStage的專案和使用者許可權的分配 

Datastage1.png

 

啟動Designer,我們可以在其中建立各種資料複製的Job,然後通過串聯起來,完成整個業務資料的定時提取工作,所有工作可以在視覺化介面上進行操作,還是比較方便的。

Datastage2.png

 

下圖是對於不同資料來源之間的資料複製過程,中間有一個Transformer的變換物件來處理資料列之間的對映關係的。

Datastage3.png

 

下圖是串聯各種Job物件,組裝成一個完成的資料複製流程。

Datastage4.png

 

完成上面的業務資料整合複製後,就需要通過編寫大量的儲存過程,完成從ODS資料層到DW資料倉儲層的資料清洗載入操作了,一般我們可以在Pl/Sql Developer中完成相關儲存過程的編寫,如下圖所示:

ETLPackage.png

 

通過儲存過程完成資料從ODS層到DW資料倉儲層的轉移後,下一步就是要圍繞資料倉儲的模型做各種應用的分析工作了,這時候就需要用到非常強大的BI工具Business Objects了。

在眾多的管理資訊系統中一般都應用資料倉儲技術,進行資料的統計和分析,而資料倉儲的建立、使用、管理及維護等方面都需要工具的支援。有些管理資訊系統的業務處理資料庫同資料倉儲系統一起推廣使用,因此大大減少了從業務資料庫到資料倉儲的資料抽取、整合和轉換的複雜程度,但無論資料倉儲中資料的來源和抽取方式是什麼,對資料倉儲的維護、管理、分析、統計都需要用客戶端報表/分析工具來完成。在眾多的聯機分析處理產品中,BO公司的Business Object不失為一個好工具。


Business Object具有以下幾個特點:前端分析手段靈活,表現方式多樣,語義層構建工具應用面廣,應用簡單,具有文件管理的資料重新整理功能,可以利用資料庫對不同使用者的操作許可權進行管理。
Business Object是一個由多個產品組成的產品族,主要包括Business Object,Designer,Document Agent,Supervisor,Business Miner五個產品。這幾個產品功能如下:

(1)Bupervisor:Supervisor是BO自身的安全管理工具。在Spervisor中可以建立和維護資料庫,在資料庫中可以建立BO的使用者和使用者組,通過對不同使用者賦予不同的操作許可權,來實現對Business Object的使用使用者、定製查詢(universe)以及查詢報告的安全管理。實際上多個使用者定製查詢及查詢結果的共享時通過資料庫實現的。

(2)Designer:Designer是一個多編模型構建工具,它可以將關係庫中的表通過類、物件及物件明細等工具對映到多維模型的維、維元素及度量指標上,使使用者在符合業務邏輯的多維模型上構建查詢。

(3)Business Object:Business Object是一個查詢定製和統計報表(圖形)生成工具。它利用Designer建立多維模型定製各類查詢,查詢方式包括Business Object定製查詢語義層(universe)、手寫SQL語句、儲存過程及個人資料檔案等,在Business Object 4 1版中還將支援OLAP Pannel,從而使其可以利用其他廠商的OLAP伺服器的功能。Business Object將查詢結果以多種報表形式及統計圖形的方式提交給使用者。使用者可以在查詢結果上進行進一步的分析,如向下/向上鑽取(Drill Up/Drill Down)等。另外,在Business Object中還提供了一種script語言,?該語言風格類似Visual Basic,在程式中可以以物件導向的程式設計風格呼叫Business Object提供的豐富類庫。得script語言可以定製出更為友好的查詢介面。

(4)Document Agent:Document Agent是專為工作組使用者的文件管理及查詢結果重新整理而建立的。一組使用者對應一個Document Agent,不同使用者的查詢報表(圖形)均可傳送到Document Agent供同組的其他使用者共享。Document Agent還可以定義統計報表(圖形)的重新整理頻度。

在管理機構由於使用者的不同使應用角色與工具也不盡相同:
(1)報表設計人員:負責製作固定報表以外的靈活報表,使用工具為BO;負責根據業務需求定製新的固定報表,使用工具為BO Designer;承擔前臺報表的分發、管理及重新整理,使用工具為BO Document Agent。

(2)普通報表使用者和高階報表使用者:L瀏覽固定報表,使用工具為BO Reader;瀏覽報表設計人員設計的靈活報表,使用工作為BO Reader。

(3)資料倉儲管理員:完成資料庫管理員(DBA)的正常工作;負責資料倉儲資料的重新整理維護、使用者管理等工作,使用工具主要是資料庫的管理工具以及BO Supervisor。

 

通過BO Designer,完成表之間的語義關係的設計以及相關度量、維度的設計,為報表設計奠定基礎。

 BODesigner1.png

 

通過BO控制檯,啟動InfowView,對報表進行相關的設計工作。

BOInfoView1.png

 BOInfoView2.png

 

完成以上工作後,報表的前端展示其實是比較方便的,可以通過呼叫BO的報表生成頁面就可以了,給報表生成頁面附帶相關的引數即可,具體的例子可以參考BO自帶的很多相關Demo,在此不再贅述。

BOInfoView3.png

 

上述的內容只是我對資料倉儲應用的初步瞭解和認識,紕漏之處難免,隨著學習的進行,認識的深入,應用的開展,專案經驗的增加,希望更多東西能夠明朗化,深入化,堅固化。

None.gif主要研究技術:程式碼生成工具、Visio二次開發、送水管理軟體等共享軟體開發
    
  轉載請註明出處:
None.gif撰寫人:伍華聰  http:
//www.iqidi.com 
    

相關文章