在數(shù)據(jù)倉庫的開發(fā)過程中,需要熟悉大量的概念以及相關(guān)工具的使用纵顾,還需要了解宏觀上的各種開發(fā)流程敬鬓,串聯(lián)起來完成最終的數(shù)據(jù)倉庫項目的開發(fā),本篇介紹一些準備工作偏塞,包括涉及到的工具介紹唱蒸,以及開發(fā)過程的描述,記錄學習研究的印記灸叼,并和大家討論研究存在的相關(guān)問題神汹。
數(shù)據(jù)倉庫的開發(fā),是完全獨立于OLTP系統(tǒng)的古今,也就是獨立于當前各種應(yīng)用的業(yè)務(wù)系統(tǒng)而作的分析項目屁魏,因此要包含從數(shù)據(jù)的遷移(提取)捉腥、變換氓拼、清洗、加載等ETL操作抵碟,其中可以分為這么幾個數(shù)據(jù)層桃漾。
源數(shù)據(jù)層客戶的各種業(yè)務(wù)系統(tǒng)中的數(shù)據(jù),如包括企業(yè)拟逮、車輛和司機信息系統(tǒng)撬统、企業(yè)錄入數(shù)據(jù)和及營運等數(shù)據(jù),里面存放了大量的事務(wù)數(shù)據(jù)敦迄。
ODS數(shù)據(jù)層數(shù)據(jù)庫用戶ODS數(shù)據(jù)層主要管理把業(yè)務(wù)數(shù)據(jù)層的數(shù)據(jù)存儲到ODS數(shù)據(jù)層恋追,它的數(shù)據(jù)表主要就是來源于業(yè)務(wù)數(shù)據(jù)表,通過一些存儲過程把業(yè)務(wù)數(shù)據(jù)表結(jié)構(gòu)改變成基層的數(shù)據(jù)倉庫的表結(jié)構(gòu)罚屋。
DW數(shù)據(jù)層數(shù)據(jù)庫用戶DW主要管理把ODS數(shù)據(jù)層的數(shù)據(jù)存儲到DW數(shù)據(jù)層苦囱,它的數(shù)據(jù)表主要就是來源于ODS數(shù)據(jù)表,通過一些存儲過程把ODS數(shù)據(jù)表結(jié)構(gòu)改變成項目主題數(shù)據(jù)倉庫的表結(jié)構(gòu)沿后。DW數(shù)據(jù)層還管理一些對存儲過程的記錄表沿彭,方便數(shù)據(jù)倉庫的維護和管理。
ODS是一個面向主題的尖滚、集成的喉刘、可變的、當前的細節(jié)數(shù)據(jù)集合漆弄,用于支持企業(yè)對于即時性的睦裳、操作性的、集成的全體信息的需求撼唾。常常被作為數(shù)據(jù)倉庫的過渡廉邑,也是數(shù)據(jù)倉庫項目的可選項之一。
因此操作數(shù)據(jù)存儲(ODS) 是用于支持企業(yè)日常的全局應(yīng)用的數(shù)據(jù)集合,ODS的數(shù)據(jù)具有面向主題蛛蒙、集成的糙箍、可變的和數(shù)據(jù)是當前的或是接近當前的4個基本特征。同樣也可以看出ODS是介于DB和DW 之間的一種數(shù)據(jù)存儲技術(shù)牵祟,和原來面向應(yīng)用的分散的DB相比深夯,ODS中的數(shù)據(jù)組織方式和數(shù)據(jù)倉庫(DW)一樣也是面向主題的和集成的,所以對進入ODS的數(shù) 據(jù)也象進入數(shù)據(jù)倉庫的數(shù)據(jù)一樣進行集成處理诺苹。另外ODS只是存放當前或接近當前的數(shù)據(jù)咕晋,如果需要的話還可以對ODS中的數(shù)據(jù)進行增、刪和更新等操 作收奔,雖然DW中的數(shù)據(jù)也是面向主題和集成的掌呜,但這些數(shù)據(jù)一般不進行修改,所以O(shè)DS和DW的區(qū)別主要體現(xiàn)數(shù)據(jù)的可變性坪哄、當前性质蕉、穩(wěn)定性、匯總度上损姜。
為什么需要有一個ODS系統(tǒng)呢饰剥?一般在帶有ODS的系統(tǒng)體系結(jié)構(gòu)中,ODS都具備如下幾個作用:
1) 在業(yè)務(wù)系統(tǒng)和數(shù)據(jù)倉庫之間形成一個隔離層摧阅。
2) 轉(zhuǎn)移一部分業(yè)務(wù)系統(tǒng)細節(jié)查詢的功能汰蓉。
3) 完成數(shù)據(jù)倉庫中不能完成的一些功能。
這里我們就需要用到了IBM的DataStage工具棒卷。 DataStage 是一套專門對多種操作數(shù)據(jù)源的數(shù)據(jù)抽取顾孽、轉(zhuǎn)換和維護過程進行簡化和自動化,并將其輸入數(shù)據(jù)集市或數(shù)據(jù)倉庫目標數(shù)據(jù)庫的集成工具比规。DataStage可以從多個不同的業(yè)務(wù)系統(tǒng)中若厚,從多個平臺的數(shù)據(jù)源中抽取數(shù)據(jù),完成轉(zhuǎn)換和清洗蜒什,裝載到各種系統(tǒng)里面测秸。其中每步都可以在圖形化工具里完成,同樣可以靈活地被外部系統(tǒng)調(diào)度灾常,提供專門的設(shè)計工具來設(shè)計轉(zhuǎn)換規(guī)則和清洗規(guī)則等霎冯,實現(xiàn)了增量抽取、任務(wù)調(diào)度等多種復雜而實用的功能钞瀑。其中簡單的數(shù)據(jù)轉(zhuǎn)換可以通過在界面上拖拉操作和調(diào)用一些DataStage預定義轉(zhuǎn)換函數(shù)來實現(xiàn)沈撞,復雜轉(zhuǎn)換可以通過編寫腳本或結(jié)合其他語言的擴展來實現(xiàn),并且DataStage提供調(diào)試環(huán)境雕什,可以極大提高開發(fā)和調(diào)試抽取缠俺、轉(zhuǎn)換程序的效率显晶。DataStage是基于客戶機/服務(wù)器的數(shù)據(jù)集成架構(gòu),優(yōu)化數(shù)據(jù)收集壹士,轉(zhuǎn)換和鞏固的過程磷雇。它提供了一套圖形化的客戶工具: 包括:Designer(設(shè)計者):創(chuàng)建執(zhí)行數(shù)據(jù)集成任務(wù)Job的同時,對數(shù)據(jù)流和轉(zhuǎn)換過程創(chuàng)建一個可視化的演示墓卦。 Manager(管理者):對每個工程的各個單元倦春,包括:庫表定義,集中的數(shù)據(jù)轉(zhuǎn)換落剪,元數(shù)據(jù)連接等對象進行分類和組織。 Director(指揮者):為啟動尿庐,停止忠怖,監(jiān)視作業(yè)提供交互式控制。 Administrator(管理者):在服務(wù)器端管理DataStage的項目和使用者權(quán)限的分配
啟動Designer,我們可以在其中創(chuàng)建各種數(shù)據(jù)復制的Job抄瑟,然后通過串聯(lián)起來凡泣,完成整個業(yè)務(wù)數(shù)據(jù)的定時提取工作,所有工作可以在可視化界面上進行操作皮假,還是比較方便的鞋拟。
下圖是對于不同數(shù)據(jù)源之間的數(shù)據(jù)復制過程,中間有一個Transformer的變換對象來處理數(shù)據(jù)列之間的映射關(guān)系的惹资。
下圖是串聯(lián)各種Job對象贺纲,組裝成一個完成的數(shù)據(jù)復制流程。
完成上面的業(yè)務(wù)數(shù)據(jù)整合復制后褪测,就需要通過編寫大量的存儲過程猴誊,完成從ODS數(shù)據(jù)層到DW數(shù)據(jù)倉庫層的數(shù)據(jù)清洗加載操作了,一般我們可以在Pl/Sql Developer中完成相關(guān)存儲過程的編寫侮措,如下圖所示:
通過存儲過程完成數(shù)據(jù)從ODS層到DW數(shù)據(jù)倉庫層的轉(zhuǎn)移后懈叹,下一步就是要圍繞數(shù)據(jù)倉庫的模型做各種應(yīng)用的分析工作了,這時候就需要用到非常強大的BI工具Business Objects了分扎。
在眾多的管理信息系統(tǒng)中一般都應(yīng)用數(shù)據(jù)倉庫技術(shù)澄成,進行數(shù)據(jù)的統(tǒng)計和分析,而數(shù)據(jù)倉庫的建立畏吓、使用墨状、管理及維護等方面都需要工具的支持。有些管理信息系統(tǒng)的業(yè)務(wù)處理數(shù)據(jù)庫同數(shù)據(jù)倉庫系統(tǒng)一起推廣使用庵佣,因此大大減少了從業(yè)務(wù)數(shù)據(jù)庫到數(shù)據(jù)倉庫的數(shù)據(jù)抽取歉胶、集成和轉(zhuǎn)換的復雜程度,但無論數(shù)據(jù)倉庫中數(shù)據(jù)的來源和抽取方式是什么巴粪,對數(shù)據(jù)倉庫的維護通今、管理粥谬、分析、統(tǒng)計都需要用客戶端報表/分析工具來完成辫塌。在眾多的聯(lián)機分析處理產(chǎn)品中漏策,BO公司的Business Object不失為一個好工具。
Business Object具有以下幾個特點:前端分析手段靈活臼氨,表現(xiàn)方式多樣掺喻,語義層構(gòu)建工具應(yīng)用面廣,應(yīng)用簡單储矩,具有文檔管理的數(shù)據(jù)刷新功能感耙,可以利用資料庫對不同用戶的操作權(quán)限進行管理。Business Object是一個由多個產(chǎn)品組成的產(chǎn)品族持隧,主要包括Business Object,Designer,Document Agent,Supervisor,Business Miner五個產(chǎn)品即硼。這幾個產(chǎn)品功能如下:
(1)Bupervisor:Supervisor是BO自身的安全管理工具。在Spervisor中可以建立和維護資料庫屡拨,在資料庫中可以建立BO的用戶和用戶組只酥,通過對不同用戶賦予不同的操作權(quán)限,來實現(xiàn)對Business Object的使用用戶呀狼、定制查詢(universe)以及查詢報告的安全管理裂允。實際上多個用戶定制查詢及查詢結(jié)果的共享時通過資料庫實現(xiàn)的。
(2)Designer:Designer是一個多編模型構(gòu)建工具哥艇,它可以將關(guān)系庫中的表通過類绝编、對象及對象明細等工具映射到多維模型的維、維元素及度量指標上她奥,使用戶在符合業(yè)務(wù)邏輯的多維模型上構(gòu)建查詢瓮增。
(3)Business Object:Business Object是一個查詢定制和統(tǒng)計報表(圖形)生成工具。它利用Designer建立多維模型定制各類查詢哩俭,查詢方式包括Business Object定制查詢語義層(universe)绷跑、手寫SQL語句、存儲過程及個人數(shù)據(jù)文件等凡资,在Business Object 4 1版中還將支持OLAP Pannel砸捏,從而使其可以利用其他廠商的OLAP服務(wù)器的功能。Business Object將查詢結(jié)果以多種報表形式及統(tǒng)計圖形的方式提交給用戶隙赁。用戶可以在查詢結(jié)果上進行進一步的分析垦藏,如向下/向上鉆取(Drill Up/Drill Down)等。另外伞访,在Business Object中還提供了一種script語言掂骏,?該語言風格類似Visual Basic,在程序中可以以面向?qū)ο蟮木幊田L格調(diào)用Business Object提供的豐富類庫厚掷。得script語言可以定制出更為友好的查詢界面弟灼。
(4)Document Agent:Document Agent是專為工作組用戶的文檔管理及查詢結(jié)果刷新而建立的级解。一組用戶對應(yīng)一個Document Agent,不同用戶的查詢報表(圖形)均可發(fā)送到Document Agent供同組的其他用戶共享田绑。Document Agent還可以定義統(tǒng)計報表(圖形)的刷新頻度勤哗。
在管理機構(gòu)由于用戶的不同使應(yīng)用角色與工具也不盡相同:(1)報表設(shè)計人員:負責制作固定報表以外的靈活報表,使用工具為BO掩驱;負責根據(jù)業(yè)務(wù)需求定制新的固定報表芒划,使用工具為BO Designer;承擔前臺報表的分發(fā)、管理及刷新欧穴,使用工具為BO Document Agent民逼。
(2)普通報表用戶和高級報表用戶:L瀏覽固定報表,使用工具為BO Reader;瀏覽報表設(shè)計人員設(shè)計的靈活報表苔可,使用工作為BO Reader缴挖。
(3)數(shù)據(jù)倉庫管理員:完成數(shù)據(jù)庫管理員(DBA)的正常工作;負責數(shù)據(jù)倉庫數(shù)據(jù)的刷新維護焚辅、用戶管理等工作,使用工具主要是數(shù)據(jù)庫的管理工具以及BO Supervisor苟鸯。
通過BO Designer同蜻,完成表之間的語義關(guān)系的設(shè)計以及相關(guān)度量、維度的設(shè)計早处,為報表設(shè)計奠定基礎(chǔ)湾蔓。
通過BO控制臺,啟動InfowView砌梆,對報表進行相關(guān)的設(shè)計工作默责。
完成以上工作后,報表的前端展示其實是比較方便的咸包,可以通過調(diào)用BO的報表生成頁面就可以了,給報表生成頁面附帶相關(guān)的參數(shù)即可烂瘫,具體的例子可以參考BO自帶的很多相關(guān)Demo,在此不再贅述芦鳍。
上述的內(nèi)容只是我對數(shù)據(jù)倉庫應(yīng)用的初步了解和認識,紕漏之處難免葛账,隨著學習的進行柠衅,認識的深入籍琳,應(yīng)用的開展贷祈,項目經(jīng)驗的增加,希望更多東西能夠明朗化裙顽,深入化付燥,堅固化。