版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)1本科畢業(yè)論文本科畢業(yè)論文(科研訓練、畢業(yè)設計)題題 目:實時主動數(shù)據(jù)倉庫原型系統(tǒng)目:實時主動數(shù)據(jù)倉庫原型系統(tǒng)的設計與實現(xiàn)的設計與實現(xiàn)姓 名: 學 院:系: 專 業(yè): 年 級: 學 號:指導教師(校內(nèi)): 職稱:助理教授2010 年 6 月 9 日實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)a實時主動數(shù)據(jù)倉庫的設計與實現(xiàn)【摘要摘要】 隨著市場經(jīng)濟步伐的加快和競爭的日趨激烈,傳統(tǒng)的數(shù)據(jù)倉庫技術已不能很好地滿足企業(yè)發(fā)展和競爭的需要。傳統(tǒng)數(shù)據(jù)倉庫僅為企業(yè)高層決策者提供戰(zhàn)略決策(strategic decision),服務于宏觀決策和長遠規(guī)劃,卻不能實時地根據(jù)變化數(shù)據(jù)產(chǎn)生信息,進而支持企業(yè)
2、日常管理所需的結構化戰(zhàn)術決策行為,于是產(chǎn)生了實時主動數(shù)據(jù)倉庫(real-time active data warehouse,RTADW)。 本文構建了一個實時主動數(shù)據(jù)倉庫原型系統(tǒng),支持實時變化數(shù)據(jù)捕捉,保證了實時數(shù)據(jù)的一致性和完整性,同時提供對了實時事件進行主動分析和處理的能力。 整個原型系統(tǒng)主要由兩個模塊組成實時變化數(shù)據(jù)捕捉模塊和主動決策模塊。實時數(shù)據(jù)捕捉模塊利用數(shù)據(jù)庫在線日志技術,在 streams 技術上搭建起變化數(shù)據(jù)實時捕捉框架,能夠?qū)崟r捕捉數(shù)據(jù)源的數(shù)據(jù)變化,并將變化信息傳播至目標數(shù)據(jù)端,由目標數(shù)據(jù)端對其進行處理。主動決策模塊采用觸發(fā)器機制捕捉實時事件,觸發(fā)分析規(guī)則的執(zhí)行,并利用消息
3、中間件技術反饋分析結果,為相關部門人員提供決策支持。 此原型系統(tǒng)實現(xiàn)實時主動數(shù)據(jù)倉庫的兩個關鍵技術實時數(shù)據(jù)捕捉與主動事件分析,我們可以在此基礎上結合傳統(tǒng)數(shù)據(jù)倉庫部分,構建起一個完善的實時主動數(shù)據(jù)倉庫?!娟P鍵詞關鍵詞】實時主動數(shù)據(jù)倉庫 變化數(shù)據(jù)捕捉 主動決策實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)bAbstract With the acceleration of the market economy and increasingly fierce competition, the traditional data warehouse can no longer satisfy the needs of e
4、nterprise development and competition. traditional data warehouse only senior corporate decision makers to provide strategic decision-making (strategic decision), to serve the macro decision-making and long-term planning, but not in real time change data generated according to the information, and t
5、hen needed to support enterprise management of structured daily tactical decision-making behavior and generate real-time active data warehouse. This paper develops a framework for real-time active data warehouse prototype system to support real-time data updates, ensuring real-time data consistency
6、and integrity, while providing real-time proactive incident analysis and processing capabilities. The prototype system consists of two modules - Real-time change data capture module and proactive decision-making module. Real-time data capture module using database-line logging technology, changes in
7、 the streams of data capture technology built from the framework that can capture real-time data source data changes, and changes in the information dissemination to the target data side by side on its target data processing. Active decision-making module to capture real-time event trigger mechanism
8、, trigger the implementation of rules and using messaging middleware technology feedback results, for the relevant departments provide decision support. This framework, real-time active data warehousing system, two key technologies - real-time data capture and analysis of active events, we can impro
9、ve on this basis some of the traditional data warehouse and build a complete real-time active data warehousing.Key words real-time data warehouse, change date capture, active decision 實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)i目錄第一章 引言.11.1 論文的研究背景與意義 .11.1.1 傳統(tǒng)數(shù)據(jù)倉庫的概念、體系結構和局限性.11.1.2 實時主動數(shù)據(jù)倉庫的必要性.31.2 論文研究目標 .41.3 論文結構 .4第二章
10、實時主動數(shù)據(jù)倉庫相關研究.52.1 實時主動數(shù)據(jù)倉庫概述 .52.1.1 實時主動數(shù)據(jù)倉庫的概念.52.1.2 主動實時數(shù)據(jù)倉庫的體系架構.62.1.3 主動實時數(shù)據(jù)倉庫與傳統(tǒng)數(shù)據(jù)倉庫的比較.82.2 變化數(shù)據(jù)捕捉 .82.3 主動決策 .11第三章 實時主動數(shù)據(jù)倉庫原型系統(tǒng)的總體設計.123.1 系統(tǒng)架構 .123.2 設計思想.133.2.1 實時變化數(shù)據(jù)捕捉模塊的設計思想.133.2.2 主動決策模塊設計思想.153.3 應用場景 .15第四章 數(shù)據(jù)倉庫數(shù)據(jù)模型設計.164.1 數(shù)據(jù)模型設計 .164.2 TPC-H 基準測試概述.17第五章 實時變化數(shù)據(jù)捕捉模塊的設計與實現(xiàn).205.1
11、 實時變化數(shù)據(jù)捕捉模塊概述 .205.2 基于日志捕獲技術的變化數(shù)據(jù)捕捉的設計 .205.2.1 總體描述.205.2.2 基于日志的變化數(shù)據(jù)捕獲進程設計.215.2.3 數(shù)據(jù)傳播進程設計.235.2.4 目標數(shù)據(jù)端的數(shù)據(jù)集成設計.235.3 變化數(shù)據(jù)捕捉模塊的實現(xiàn) .245.3.1 Oracle streams 技術簡介.245.3.2 配置實現(xiàn)變化數(shù)據(jù)捕捉.255.4 測試數(shù)據(jù)模塊實現(xiàn)效果 .29第六章 主動決策模塊的設計與實現(xiàn).316.1 主動決策模塊概述 .31實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)ii6.2 主動決策模塊設計 .326.2.1 分析規(guī)則的設計.326.2.2 信息反饋機制的設計
12、.346.2.3 主動決策模塊流程.356.3 主動決策模塊的實現(xiàn) .356.3.1 工具 IBM MQ 簡介.366.3.2 消息反饋機制的實現(xiàn).366.3.3 分析規(guī)則的實現(xiàn).396.3.3.1 加載 SendMsg.class.396.3.3.2 編寫存儲過程發(fā)布 SendMsg.class.396.3.3.3 建立觸發(fā)器調(diào)用存儲過程 sendMsg.406.3.3.4 修改觸發(fā)器屬性.406.4 主動決策效果演示.40總結.42致謝.43參考文獻.44實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)1第一章 引言數(shù)據(jù)倉庫技術起源于對大量數(shù)據(jù)進行處理的需要,是隨著業(yè)務應用的需要產(chǎn)生的。與傳統(tǒng)數(shù)據(jù)庫技術相比,
13、數(shù)據(jù)倉庫為決策分析提供了更好的支持,并跳出了傳統(tǒng)聯(lián)機事務處理的范疇。 隨著信息技術的發(fā)展,數(shù)據(jù)倉庫技術得到了廣泛應用,并且產(chǎn)生了巨大的經(jīng)濟效益。傳統(tǒng)數(shù)據(jù)倉庫系統(tǒng)中,通過對歷史數(shù)據(jù)的聚合及分析,可以為企業(yè)提供如明年將采用何種營銷策略等戰(zhàn)略型決策支持。但是隨著客戶需求的不斷發(fā)展,企業(yè)越來越希望數(shù)據(jù)倉庫在支持戰(zhàn)略決策的同時,也能夠為市場一線人員提供實時的戰(zhàn)術決策(tactical decision)服務,如實時營銷、個性化服務等。這種既服務于戰(zhàn)略決策又服務于戰(zhàn)術決策的數(shù)據(jù)倉庫即稱之為實時主動數(shù)據(jù)倉庫(real-time active data warehouse,RTADW)。 本章論述了傳統(tǒng)數(shù)據(jù)倉
14、庫的概念、體系結構及其局限性,進而說明實時主動數(shù)據(jù)倉庫出現(xiàn)的必要性及其應用,最后給出了論文研究的目標與論文架構。1.1 論文的研究背景與意義 首先介紹論文研究背景下的傳統(tǒng)數(shù)據(jù)倉庫概念、體系結構,并且引出實時主動數(shù)據(jù)倉庫出現(xiàn)的必要性。1.1.1 傳統(tǒng)數(shù)據(jù)倉庫的概念、體系結構和局限性計算機網(wǎng)絡與數(shù)據(jù)庫技術的迅速發(fā)展和廣泛應用,使得企業(yè)管理進入一個嶄新的時代。廣大基層管理人員擺脫了繁重的制表業(yè)務和數(shù)據(jù)處理工作,管理工作進一步規(guī)范化,企業(yè)建立了各種在線事務處理信息系統(tǒng),對各種日常業(yè)務處理提供了有效的支持。然而,面對當今競爭日趨激烈與瞬息萬變的市場,各級管理人員迫切需要根據(jù)企業(yè)的現(xiàn)狀和歷史數(shù)據(jù)作出判斷的
15、決策。因此,各級管理人員希望能夠從企業(yè)信息系統(tǒng)中獲取有效的、一致的決策支持信息,及時準確的把握市場變化的脈搏,做出正確有效地判斷和抉擇。也就是說,數(shù)據(jù)處理的重點應該從傳統(tǒng)的業(yè)務處理擴展到在線分析處理,并從中得到面向各種主題的統(tǒng)計信息和決策支持信息。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)2 數(shù)據(jù)倉庫技術就是針對上述問題而產(chǎn)生的一種技術解決方案,它是基于大規(guī)模數(shù)據(jù)庫的決策支持系統(tǒng)環(huán)境的核心。根據(jù)數(shù)據(jù)倉庫之父 Bill Inmon 在 1991 年出版的“Building the Data Warehouse”一書中所提出的定義,數(shù)據(jù)倉庫是一個面向主題的、集成的、永久的且隨時間不斷變化的數(shù)據(jù)集合,用于支持管理
16、層的決策。數(shù)據(jù)倉庫是在數(shù)據(jù)庫基礎上發(fā)展而來的,傳統(tǒng)數(shù)據(jù)倉庫通常包含三個部分內(nèi)容:數(shù)據(jù)倉庫、聯(lián)機分析處理(On-Line Analvtica1 Process,OLAP)、數(shù)據(jù)挖掘 (Data Mining )。傳統(tǒng)數(shù)據(jù)倉庫體系結構如圖 1.1 所示。 圖圖 1.11.1 數(shù)據(jù)倉庫體系結構數(shù)據(jù)倉庫體系結構數(shù)據(jù)倉庫建立之后,首先要從“數(shù)據(jù)源”中抽取相關的數(shù)據(jù)到“數(shù)據(jù)準備區(qū)”,在“數(shù)據(jù)準備區(qū)”中經(jīng)過凈化處理后,再加載到“數(shù)據(jù)倉庫”,最后根據(jù)用戶的需求將數(shù)據(jù)導入“數(shù)據(jù)集市”或“知識挖掘庫”中。用戶在使用數(shù)據(jù)倉庫時,主要利用兩類應用工具:一類是聯(lián)機分析處理(OLAP),主要用于分析歷史發(fā)展變化;另一類是
17、數(shù)據(jù)挖掘( Date Mining ) ,主要用于預測未來趨勢走向。但是,隨著市場經(jīng)濟步伐的加快和競爭的日趨激烈,傳統(tǒng)的數(shù)據(jù)倉庫技術已不能很好地滿足企業(yè)發(fā)展和競爭的需要。傳統(tǒng)數(shù)據(jù)倉庫僅為企業(yè)高層決策者提供戰(zhàn)略決策(strategic decision),服務于宏觀決策和長遠規(guī)劃,如市場細分、產(chǎn)品管理等,并且返回很難測量的指標,用戶數(shù)也只是中等規(guī)模的用戶數(shù),只能得到高度限制的報表,使用預處理的聚合表或數(shù)據(jù)集市,然而,企業(yè)越來越希望數(shù)據(jù)倉庫在支持戰(zhàn)略決策的同時,也能夠為市場一線人員提供實時的戰(zhàn)術決策(tactical decision)服務,如實時營銷、個性化服務等,也就是要求倉庫系統(tǒng)能既支持戰(zhàn)略
18、決策又服務于戰(zhàn)術決策,我們把這樣的數(shù)據(jù)倉庫稱之為實時主動數(shù)據(jù)倉庫。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)31.1.2 實時主動數(shù)據(jù)倉庫的必要性 實時數(shù)據(jù)倉庫在市場快速變化和實時企業(yè)管理決策要求下出現(xiàn)的,是數(shù)據(jù)倉庫技術的新 的分支。主動數(shù)據(jù)倉庫支持戰(zhàn)略和戰(zhàn)術的市場決策。 傳統(tǒng)數(shù)據(jù)倉庫由 ODS(Operatiorial Data Storc)、數(shù)據(jù)倉庫、數(shù)據(jù)集市和 BI 工具組成。實時數(shù)據(jù)倉庫擴展了傳統(tǒng)數(shù)據(jù)倉庫的適用范圍,能給企業(yè)提供關于日常戰(zhàn)術操作的技術支持。主動數(shù)據(jù)倉庫支持戰(zhàn)略和戰(zhàn)術的市場決策。意味著企業(yè)的戰(zhàn)略分析結果可以轉化為具體、詳細的條件約束和操作事務下的行動。這樣,發(fā)揮了日常戰(zhàn)術決策的效用,提
19、高了數(shù)據(jù)倉庫信息的效率。最終,對于企業(yè)來說,一致性的數(shù)據(jù)使職員和合作伙伴更好做出符合事實的、精確的和有見地的決策。建立主動數(shù)據(jù)倉庫幫助你更接近你的客戶、優(yōu)化供應鏈、提高制造質(zhì)量和精準地跟蹤商品流動,計劃和管理成功的商業(yè)活動,達成銷售自動化,使得企業(yè)具備新競爭環(huán)境下的及時商業(yè)分析能力。 Haisten 提出了實時主動數(shù)據(jù)倉庫的概念:RTADW 是一個關系型環(huán)境的數(shù)據(jù)倉庫,支持數(shù)據(jù)的實時更新、快速的響應時間、基于鉆取的聚集數(shù)據(jù)查詢能力和動態(tài)的交互能力,用于支持不斷變化的商業(yè)需求。 下面列舉一些典型的實時主動數(shù)據(jù)倉庫應用。第一,在移動通信領域的應用。實時監(jiān)控移動呼叫數(shù)據(jù),防止欺詐行為發(fā)生。傳統(tǒng)數(shù)據(jù)倉
20、庫技術因其數(shù)據(jù)延遲過大,不能實時捕獲欺詐信息,所以不能很好地解決這一難題。利用RTADW 技術,把當前的實時呼叫信息和數(shù)據(jù)倉庫中的歷史行為信息結合,借助通信企業(yè)提供的企業(yè)間共享的欺詐人群信息,可以有效地判定當前客戶是否具有發(fā)生欺詐行為的可能性,從而進行實時地預防和監(jiān)控,減少企業(yè)因欺詐而造成的損失。第二,在電子商務領域的應用。根據(jù)用戶提交的信息,實時給客戶靈活的定價和折扣。借助于網(wǎng)絡技術而蓬勃發(fā)展起來的電子商務應用已日趨普及。但是,目前的電子商務一般不具有個性化服務的能力,只能在既定規(guī)則下開展不具有針對性的服務,不利于提升客戶服務的能力。RTADW 技術可以很好地解決這一難題。對客戶提交的實時購
21、物訂單,可以根據(jù)客戶的當前行為信息,借助于在數(shù)據(jù)倉庫中存儲的該客戶的歷史消費信息來判斷客戶的價值,進行實時又個性化的定價和折扣,從而提升客戶滿意度,增強企業(yè)的競爭力。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)41.2 論文研究目標通過研讀相關資料,了解實時主動數(shù)據(jù)倉庫的概念、體系結構、相關技術及其應用,并在傳統(tǒng)數(shù)據(jù)倉庫上基礎上,結合實時數(shù)據(jù)捕捉技術和主動決策技術,基于 Oracle 數(shù)據(jù)庫設計一個簡單的實時主動數(shù)據(jù)倉庫原型系統(tǒng),實現(xiàn)實時數(shù)據(jù)變化捕捉和自動化的主動決策功能。1.3 論文結構 第一章講述論文研究背景和意義,介紹數(shù)據(jù)倉庫概念、應用及其不足,論述實時主動數(shù)據(jù)倉庫的必要性,并給出了論文的研究目標。第二
22、章講述實時主動數(shù)據(jù)倉庫概念和相關研究,第三章論述了實時主動數(shù)據(jù)倉庫原型系統(tǒng)的設計方法,并闡述了主要模塊的設計思想。第四章介紹了數(shù)據(jù)倉庫訂單數(shù)據(jù)模型的字段意義,介紹了數(shù)據(jù)的填充機制及決策系統(tǒng)性能基準測試TPC-H。第五章介紹如何利用日志捕獲技術設計數(shù)據(jù)實時捕捉模塊。第六章講述主動決策機制與消息傳遞機制??偨Y部分總結了此次設計的過程及思想。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)5第二章 實時主動數(shù)據(jù)倉庫相關研究 實時主動數(shù)據(jù)倉庫是主動的、動態(tài)的數(shù)據(jù)倉庫,它整合了數(shù)據(jù)倉庫的業(yè)務系統(tǒng),提供隨需應變的業(yè)務。根據(jù) Gartner 的研究報告,實時企業(yè)已成為趨勢,實時決策能力將成為企業(yè)競爭市場的最佳武器,而實時主動數(shù)
23、據(jù)倉庫將成為實時企業(yè)不可或缺的基礎。 本章主要介紹實時主動數(shù)據(jù)倉庫的概念和體系結構,說明了其與傳統(tǒng)數(shù)據(jù)倉庫的差別,探討研究了數(shù)據(jù)倉庫的數(shù)據(jù)模型設計、數(shù)據(jù)填充機制,接著介紹了數(shù)據(jù)倉庫決策分析系統(tǒng)的一個測試基準TPC-H 測試,最后介紹了實時主動數(shù)據(jù)倉庫中兩項有別于傳統(tǒng)數(shù)據(jù)倉庫的關鍵技術變化數(shù)據(jù)捕捉與主動決策。2.1 實時主動數(shù)據(jù)倉庫概述 本節(jié)介紹實時主動數(shù)據(jù)倉庫概念和體系結構,并用圖表形式比較了實時主動數(shù)據(jù)倉庫與傳統(tǒng)數(shù)據(jù)倉庫的區(qū)別。2.1.1 實時主動數(shù)據(jù)倉庫的概念 數(shù)據(jù)倉庫不是為了存儲數(shù)據(jù),而是為決策支持及更好的組織企業(yè)內(nèi)所有可能收集到的數(shù)據(jù)。但是傳統(tǒng)數(shù)據(jù)倉庫系統(tǒng)通常只能分析歷史數(shù)據(jù),而且數(shù)據(jù)
24、抽取周期相當長,一般為一天甚至一周,極大的降低了企業(yè)的應變能力,難以反映瞬息萬變的市場變化,實時數(shù)據(jù)倉庫的出現(xiàn)改變了這個局面。Haisten 提出了實時主動數(shù)據(jù)倉庫的概念:實時主動數(shù)據(jù)倉庫(real-time active data warehouse,RTADW)是一個關系型環(huán)境的數(shù)據(jù)倉庫,支持數(shù)據(jù)的實時更新、快速的響應時間、基于鉆取的聚集數(shù)據(jù)查詢能力和動態(tài)的交互能力,用于支持不斷變化的商業(yè)需求。RTADW 是既服務于戰(zhàn)略決策又服務于戰(zhàn)術決策的數(shù)據(jù)倉庫?,F(xiàn)在逐漸提出了實時數(shù)據(jù)倉庫的概念,其主要思想是:在數(shù)據(jù)倉庫中,將保存的數(shù)據(jù)分為兩類,一種為靜態(tài)數(shù)據(jù),一種為動態(tài)數(shù)據(jù),靜態(tài)數(shù)據(jù)滿足用戶的查詢分
25、析要求;而動態(tài)數(shù)據(jù)就是為了適應實時性,數(shù)據(jù)源中發(fā)生的更新可以立刻傳送到數(shù)據(jù)倉庫的實時數(shù)據(jù)中,其中再經(jīng)過相應的轉化,滿足實時的要求。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)6相對于傳統(tǒng)的企業(yè)數(shù)據(jù)倉庫而言,實時主動數(shù)據(jù)倉庫增加了實時數(shù)據(jù)捕捉和主動決策分析兩大主要功能。實時數(shù)據(jù)捕捉保證了系統(tǒng)能夠即時捕捉 OLTP 系統(tǒng)產(chǎn)生的實時變化數(shù)據(jù);而主動決策分析則能夠保證對實時捕捉的數(shù)據(jù)作出快速分析,得到?jīng)Q策者想要的結果。2.1.2 主動實時數(shù)據(jù)倉庫的體系架構 傳統(tǒng)數(shù)據(jù)倉庫是由 ODS、數(shù)據(jù)倉庫、數(shù)據(jù)集市和 BI 工具組成。OLTP 系統(tǒng)中的操作性數(shù)據(jù)在數(shù)據(jù)倉庫的非響應期批處理載入到 ODS 中。ODS 中的數(shù)據(jù)經(jīng)過晚間
26、的批處理通過分段傳輸和集中處理存入數(shù)據(jù)倉庫。BI 工具則利用數(shù)據(jù)倉庫,聯(lián)機分析處理 OLAP 工具和數(shù)據(jù)挖掘等技術將數(shù)據(jù)轉化為支持決策的知識。由此可見,傳統(tǒng)數(shù)據(jù)倉庫的一個重要步驟是操作型數(shù)據(jù)經(jīng)由 ODS 由 OLAP 轉入到數(shù)據(jù)倉庫中去。 而實時主動數(shù)據(jù)倉庫的架構則提倡可省略 ODS 這一中間步驟,即操作型數(shù)據(jù)直接載入到數(shù)據(jù)倉庫,免去了批處理作業(yè)的麻煩,保證了數(shù)據(jù)倉庫的實時更新?;?EAI 實時數(shù)據(jù)倉庫實現(xiàn)了滴漏式的數(shù)據(jù)加載,是真正意義上的實時數(shù)據(jù)倉庫,其數(shù)據(jù)模型如如 2.1 所示。 圖圖 2.12.1 實時主動數(shù)據(jù)倉庫模型實時主動數(shù)據(jù)倉庫模型 這種模型的實時主動數(shù)據(jù)倉庫工作原理是:將實時數(shù)
27、據(jù)從數(shù)據(jù)源系統(tǒng)中抽取出來,并將 ODS、數(shù)據(jù)倉庫、數(shù)據(jù)集市整合到一個龐大的數(shù)據(jù)倉庫中。但是由于涉及載入、更新、查詢和分析等多種任務,以及需要將數(shù)據(jù)倉庫與數(shù)據(jù)集市處理的多種差異較大的技術融合在一起,使得這種模型存在重大不足,主要體現(xiàn)在以下幾個方面: 1 服務器負載:由于融合了 ODS、數(shù)據(jù)倉庫和數(shù)據(jù)集市,對不同分層各種數(shù)據(jù)進行不同的操作、分析,使得服務器在混合負載環(huán)境下運行,影響了系統(tǒng)的性能。 2 觸發(fā)機制:在事務處理中,需要大量的觸發(fā)器來檢查事務,同時需要較多的等待來保證更新的并發(fā)性和完整性,嚴重影響了系統(tǒng)性能。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)7 3 同步機制: 在實時數(shù)據(jù)倉庫中,消息和時間的出現(xiàn)
28、具有異步性,欲在這樣的條件下盡可能達到準實時效果,必然將以犧牲系統(tǒng)性能為代價。 4 數(shù)據(jù)庫設計:由于 ODS、數(shù)據(jù)倉庫和數(shù)據(jù)集市之間的物理設計等方面的不同,整合在一起會對數(shù)據(jù)庫空間利用率及查詢性能產(chǎn)生嚴重影響。 針對以上不足,我們提出了一個改進的方案,如圖 2.2 所示。ODSDW人機交互界面分析規(guī)則模塊數(shù)據(jù)監(jiān)控導入模塊DM&OLAP決策信息ETL業(yè)務系統(tǒng) 圖圖 2.22.2 改進后的實時主動數(shù)據(jù)倉庫體系結構改進后的實時主動數(shù)據(jù)倉庫體系結構 在這個改進后的體系結構里,我們利用 ODS 存儲實時數(shù)據(jù),并對數(shù)據(jù)源端的實時數(shù)據(jù)變化進行監(jiān)控捕捉。該 ODS 模塊可以承擔大量的報表工作和簡單查詢
29、工作,同時還因為添加了分析規(guī)則對數(shù)據(jù)進行實時分析并及時反饋,使得 ODS 可以進行一些戰(zhàn)略查詢用于企業(yè)決策和數(shù)據(jù)挖掘分析。 該體系結構主要模塊如下:數(shù)據(jù)監(jiān)控導入模塊:負責把業(yè)務系統(tǒng)中產(chǎn)生的實時數(shù)據(jù)導入 ODS 中,同時監(jiān)控實時數(shù)據(jù)的變化,及時捕捉。ODS:只保存實時數(shù)據(jù),一般為當前或近期數(shù)據(jù),超過期限數(shù)據(jù)將被導入 DW 中。DM 和 OLAP 的數(shù)據(jù)源建立在 DW 和 ODS 上,用來對數(shù)據(jù)倉庫中的數(shù)據(jù)進行想要的查詢處理,以獲取信息和決策支持。分析模塊:分析 ODS,DW 中事件并作出相應的推理,產(chǎn)生決策信息,并反饋至業(yè)務系統(tǒng)。 增強型 ODS 的引入減輕了 DW 實時性更新的負擔,提高了查詢
30、分析效率,同時,前面提到的那些弊端也得到了改善,且處理起來相對簡單,易于設計和實現(xiàn)。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)82.1.3 主動實時數(shù)據(jù)倉庫與傳統(tǒng)數(shù)據(jù)倉庫的比較傳統(tǒng)數(shù)據(jù)倉庫不包含當前的數(shù)據(jù)。它通常是每周或每天個別時間由操作系統(tǒng)加載,但在任何時候都是一個面對過去的窗口。而實時主動數(shù)據(jù)倉庫的設計正是為了改善這一情況而提出的。這就造成了二者結構及實現(xiàn)的差別。通過對傳統(tǒng)數(shù)據(jù)倉庫和實時主動數(shù)據(jù)倉庫的比較分析,有助于我們區(qū)別兩種數(shù)據(jù)倉庫的體系結構和設計實現(xiàn)過程。 表表 2.12.1 傳統(tǒng)數(shù)據(jù)倉庫與實時主動數(shù)據(jù)倉庫的區(qū)別傳統(tǒng)數(shù)據(jù)倉庫與實時主動數(shù)據(jù)倉庫的區(qū)別傳統(tǒng)數(shù)據(jù)倉庫解決方案實時主動數(shù)據(jù)倉庫解決方案戰(zhàn)術性
31、和戰(zhàn)略性只支持戰(zhàn)略決策支持戰(zhàn)略決策和戰(zhàn)術決策是否具備實時捕捉數(shù)據(jù)能力不具備實時捕捉數(shù)據(jù)能力具備實時捕捉數(shù)據(jù)能力時間粒度時間粒度較大可以精確到以分鐘為周期獲取數(shù)據(jù)使用者分析員,決策者等內(nèi)部用戶還可以為操作員,客戶代表和外部用戶等數(shù)據(jù)載入手段用 ETL 載入更新數(shù)據(jù)用 EAI 等技術載入更新數(shù)據(jù)分析數(shù)據(jù)方式基于批處理提供最新數(shù)據(jù)實時分析主要組成部分采用 ODS、數(shù)據(jù)倉庫、數(shù)據(jù)集市將 ODS、數(shù)據(jù)倉庫、數(shù)據(jù)集市整合到一個大的數(shù)據(jù)倉庫中,基于它存儲查詢2.2 變化數(shù)據(jù)捕捉 實時主動數(shù)據(jù)倉庫跟傳統(tǒng)數(shù)據(jù)倉庫的不同之處在實時數(shù)據(jù)方面。而對實時數(shù)據(jù)的處理有兩方面,一個是實時變化數(shù)據(jù)捕捉,另一個是對實時事件的主
32、動分析決策。這一節(jié)先介紹對實時變化數(shù)據(jù)捕捉技術的現(xiàn)狀。 實時變化數(shù)據(jù)捕捉技術是基于對數(shù)據(jù)源改變部分的數(shù)據(jù)識別,數(shù)據(jù)捕捉和數(shù)據(jù)傳送來實現(xiàn)的。由于只處理變化部分的數(shù)據(jù),使得數(shù)據(jù)集成過程更加有效,同時也較少了從源數(shù)據(jù)改變到目標數(shù)據(jù)源獲取變化并隨之改變的時間和成本。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)9 目前,解決所需數(shù)據(jù)實時性主要有三種方案: (1)(1)仍然基于數(shù)據(jù)倉庫仍然基于數(shù)據(jù)倉庫(DW)(DW),只是實時性決策所需數(shù)據(jù)要直接從業(yè)務數(shù)據(jù)庫讀取,其它,只是實時性決策所需數(shù)據(jù)要直接從業(yè)務數(shù)據(jù)庫讀取,其它數(shù)據(jù)仍來自數(shù)據(jù)仍來自 DWDW。即 0LAP 和數(shù)據(jù)挖掘有 DW 和業(yè)務數(shù)據(jù)庫多個數(shù)據(jù)源,這種方法不需要
33、對現(xiàn)有的體系進行較大改動,簡單易行,是目前解決實時性的主要方法。缺點是容易出現(xiàn)數(shù)據(jù)不統(tǒng)一、不一致等問題,尤其具有多個外部異構數(shù)據(jù)源時。 (2)(2)提高提高 DWDW 的實時性,建設實時數(shù)據(jù)倉庫。的實時性,建設實時數(shù)據(jù)倉庫。實時決策所需的實時性數(shù)據(jù)所占比例一般較少,對于這部分數(shù)據(jù)我們可以動態(tài)的集成:至 IJDW 中,實現(xiàn)實時性更新。 (3)(3)引入引入 0DS0DS 技術技術。ODS 可以看作是介于 DB 和 DW 之間的一種數(shù)據(jù)存儲技術。業(yè)務系統(tǒng)產(chǎn)生的數(shù)據(jù)首先通過某種實時更新策略進入 ODS。ODS 中只保留近期數(shù)據(jù),超過期限的數(shù)據(jù)作為歷史數(shù)據(jù)被 ETL 導入數(shù)據(jù)倉庫。用戶可以直接在 OD
34、S 上進行即時的 OLAP 和實時性決策。 實現(xiàn)實時變化數(shù)據(jù)捕捉的更新策略主要有: (1)(1)以傳統(tǒng)的以傳統(tǒng)的 ETLETL 為基礎,只是把周期盡量縮短。為基礎,只是把周期盡量縮短??梢圆捎迷隽扛碌霓k法,每次只更新上次更新后發(fā)生變化的數(shù)據(jù)。這種方法每次更新都要進行源數(shù)據(jù)庫的全局掃描,時間和資源消耗很大。 (2)(2)采用所謂的采用所謂的 CaptureCapture、TransformTransform andand Flow(CTF)Flow(CTF)技術技術:監(jiān)控數(shù)據(jù)源,當感興趣的數(shù)據(jù)變化時立即把它導入 DW 中。具體的做法有以下三種:(i)(i)編寫專門的線程監(jiān)控數(shù)據(jù)源,一旦監(jiān)控到感
35、興趣的數(shù)據(jù)發(fā)生變化,就啟動 DW 的更新操作。這種方法實時性較高,缺點是線程不停地查詢源數(shù)據(jù)庫要消耗大量系統(tǒng)資源,適用于要更新的數(shù)據(jù)量很少的情況。(ii)(ii)利用源數(shù)據(jù)庫中的觸發(fā)器來實現(xiàn)。數(shù)據(jù)發(fā)生變化時,建立在數(shù)據(jù)所在表上的觸發(fā)器被激活,通過執(zhí)行 SOL 語句或調(diào)用相應的存儲過程,負責完成 DW 的更新。這種方法簡單易行,但源數(shù)據(jù)庫和數(shù)據(jù)倉庫必須在同一物理的數(shù)據(jù)庫系統(tǒng)中,而且大量觸發(fā)器的存在消耗了系統(tǒng)資源,也帶來更新的并發(fā)性和完整性問題。(iii)(iii)基于規(guī)則的事件觸發(fā)。用戶通過規(guī)則定義工具定義好一系列的事件和規(guī)則,分別存放在事件庫和規(guī)則庫中。當檢測到事件發(fā)生,就在規(guī)則庫中尋找與之匹
36、配的規(guī)則,若有多條規(guī)則被觸發(fā)時,可以按照某種沖突解決機制選取規(guī)則,并按照規(guī)則動作部分的定義進行數(shù)據(jù)更新。這種方法效率高,較好的解決了并發(fā)性和完整性問題。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)10 (3)(3)通過源數(shù)據(jù)庫上的應用程序來實現(xiàn)數(shù)據(jù)倉庫的實時更新。通過源數(shù)據(jù)庫上的應用程序來實現(xiàn)數(shù)據(jù)倉庫的實時更新。當業(yè)務事件完成后,應用程序?qū)⒂嘘P數(shù)據(jù)在寫入業(yè)務數(shù)據(jù)庫的同時,也把這些數(shù)據(jù)經(jīng)過轉換、集成載入 DW。這種方法占用資源較少,實時性最高。但增加了應用程序的復雜性和編寫難度。而且當具備多個外部異構數(shù)據(jù)源時,容易造成數(shù)據(jù)的不一致性和并發(fā)操作的問題。 目前,實時變化數(shù)據(jù)捕捉的具體技術實現(xiàn)有以下幾種: (1)(1
37、)文件或表的全掃描對比文件或表的全掃描對比 這種技術的技術原理是:首先將對文件或表進行全掃描,并將結果放到一個暫存區(qū)中,然后將它與上一個版本進行全對比,比較得出變化的部分,最后將變化部分傳遞給目標數(shù)據(jù)源,并使目標數(shù)據(jù)源進行同樣的變化。 這種技術優(yōu)點是技術難度和實施成本低,缺點是對原系統(tǒng)影響比較大,實時性較低。 (2)(2)源系統(tǒng)添加觸發(fā)器獲取源系統(tǒng)添加觸發(fā)器獲取 這種技術原理是在源表中添加觸發(fā)器捕捉變化數(shù)據(jù)。當源數(shù)據(jù)發(fā)生變化時,通過觸發(fā)器捕捉變化,然后傳送給目標系統(tǒng),最后目標系統(tǒng)根據(jù)得到的信息作出與源系統(tǒng)相同的改變。 這種技術優(yōu)點是實現(xiàn)難度適中,成本低,實時性較高,獲取性能較高,同時也可以獲取
38、過程數(shù)據(jù)變化,缺點是對源系統(tǒng)影響比較大,頻繁調(diào)用觸發(fā)器將耗費源系統(tǒng)大量資源,造成源系統(tǒng)使用障礙。 (3)(3)基于源系統(tǒng)的時間戳獲取基于源系統(tǒng)的時間戳獲取 這種技術的原理比較簡單,通過添加時間戳的方式,數(shù)據(jù)庫中的所有變化都可以查到其變更時間,那么從時間的角度來看,所以原系統(tǒng)數(shù)據(jù)的變化就可以通過時間戳標志來捕獲,然后傳給目標系統(tǒng)作出相同變化。 這種技術的優(yōu)點是實現(xiàn)難度較低,實施成本較低,對源系統(tǒng)影響適中,獲取性能適中,缺點是實時性比較低,不能獲取過程變化。 (4)(4)基于基于 DBMSDBMS 日志捕獲日志捕獲 基于 DBMS 日志捕獲數(shù)據(jù)變化的原理是由于數(shù)據(jù)庫中的所以變化都會記錄在數(shù)據(jù)庫日志
39、中,因此可以通過讀取數(shù)據(jù)庫日志信息來獲取數(shù)據(jù)庫的所有變化,然后將這些變化傳遞給目標系統(tǒng),目標系統(tǒng)通過解析這些日志得到相關的 SQL,運行這些 SQL 來作出與源系統(tǒng)相同的變化。 這種技術特點如下:實現(xiàn)難度高,實施成本高,對源系統(tǒng)影響較低,實時性高,獲取性能高。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)11 這種技術的典型應用如 Oracle 的 streams 配置,本畢設實驗部分的實時數(shù)據(jù)捕捉將用此技術實現(xiàn),具體設計本文將在后面進行論述。2.3 主動決策 實現(xiàn)主動決策的關鍵是系統(tǒng)要有一種主動推理的機制,能夠在特定的條件下被觸發(fā)執(zhí)行,從而主動為客戶提供決策信息。實現(xiàn)主動決策的途徑主要有三種: (1)(1)直
40、接利用觸發(fā)器完成。直接利用觸發(fā)器完成。在感興趣的數(shù)據(jù)所在的表上建立觸發(fā)器,當數(shù)據(jù)變化時觸發(fā)器通過執(zhí)行 SOL 語句或調(diào)用存儲過程實現(xiàn) OLAP 和推理。由于 SQL 語言功能簡單,只能實現(xiàn)一些較為簡單的推理決策。 (2)(2)編寫專門的線程。編寫專門的線程。一旦它監(jiān)控到感興趣的事務或數(shù)據(jù)變化,就啟動相關的分析、推理。缺點是線程不停的查詢要消耗大量系統(tǒng)資源。(3)(3)利用分析規(guī)則實現(xiàn)主動決策。利用分析規(guī)則實現(xiàn)主動決策。分析規(guī)則發(fā)展自主動規(guī)則,它擴展了主動規(guī)則的結構,能夠模擬分析人員進行數(shù)據(jù)多維分析和決策。一個完整的分析規(guī)則由 5 個部分組成:事件、基本條件、分析圖、基本維度和動作。事件有絕對事
41、件(如某商品的價格變化)、周期性時間事件(如每個月底)和相對時間事件(如某商品調(diào)價后兩星期)三類;動作部分直接執(zhí)行一個事務,可以是直接執(zhí)行 0LTP 操作,也可以向用戶提供決策信息;基本維表示要對其實例進行分析比較的維(如商品是否降價的問題中,就應把商品維定義為基本維,因為將對指定的商品進行分析);分析圖是多維分析的數(shù)據(jù)立方體集,它的分析結果足執(zhí)行動作的依據(jù);基本條件決定是否對數(shù)據(jù)立方體進行多維分析。分析規(guī)則的語法描述如下:DEFINE RuleFor Primary dimensionOnifthenevaluateexecute(Based on evaluateresult)與主動規(guī)則相
42、比,分析規(guī)則增加了一些成分,主要是分析圖。增強了它的分析推理能力。分析規(guī)則中事件和動作是必不可少的。這時它就退化為主動規(guī)則。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)12第三章 實時主動數(shù)據(jù)倉庫原型系統(tǒng)的總體設計 本章將給出一個實時主動數(shù)據(jù)倉庫原型系統(tǒng),并將介紹系統(tǒng)中各模塊的原理和功能,同時給出實時主動數(shù)據(jù)倉庫中兩項關鍵技術的設計思想。3.1 系統(tǒng)架構 圖圖 3.13.1 實時主動數(shù)據(jù)倉庫總體框架圖實時主動數(shù)據(jù)倉庫總體框架圖實時主動數(shù)據(jù)倉庫總體框架結構圖如圖 4.1 所示。各模塊簡述如下:OLTP 系統(tǒng):在線事務處理系統(tǒng),即通常的業(yè)務系統(tǒng)。實時主動數(shù)據(jù)倉庫:包括實時數(shù)據(jù)緩存,被動數(shù)據(jù)倉庫與主動決策引擎三部分
43、。實時數(shù)據(jù)緩存緩存捕捉到的實時數(shù)據(jù);被動數(shù)據(jù)倉庫即傳統(tǒng)的數(shù)據(jù)倉庫部分,存放經(jīng)處理的歷史數(shù)據(jù);主動決策引擎分析實時事件并反饋相關信息。前端應用:包括報表,查詢,分析,數(shù)據(jù)挖掘(DM) 整個系統(tǒng)的工作原理描述如下:實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)13 數(shù)據(jù)源是企業(yè)原先建立的事務處理系統(tǒng)OLTP 系統(tǒng),一般會有多個 OLTP 數(shù)據(jù)源,通過 CDC(changed data capture,變化數(shù)據(jù)捕捉)模塊將實時變化數(shù)據(jù)載入到實時數(shù)據(jù)緩沖,通過 ETL 模塊將靜態(tài)數(shù)據(jù)直接導入到被動數(shù)據(jù)倉庫端。實時數(shù)據(jù)緩沖中數(shù)據(jù)經(jīng)過一定周期也將被批量導入到被動數(shù)據(jù)倉庫中。主動決策引擎通過解析 CDC 系統(tǒng)與 ETL 系統(tǒng)
44、中的數(shù)據(jù)觸發(fā)事件,并用相關人員預先設定的分析規(guī)則進行分析實現(xiàn)自動決策的功能。同時將分析后的信息反饋至相關部門人員提供其實時決策支持。利用 JIM 整合歷史數(shù)據(jù)和實時數(shù)據(jù),以供前端應用使用。被動數(shù)據(jù)倉庫還可通過 OLAP 服務器為前端應用提供更有利于決策的表達形式。 本次畢設中通過設計一個簡單訂單系統(tǒng),實現(xiàn)實時主動數(shù)據(jù)倉庫里面兩個重要部分實時數(shù)據(jù)捕捉與主動分析信息反饋,更加深刻理解實時主動數(shù)據(jù)倉庫的概念及體系架構,了解實時主動思想精髓,掌握實時數(shù)據(jù)捕捉及主動分析相關技術原理及其實現(xiàn)方法,并盡量能對實時主動數(shù)據(jù)倉庫有自己的見解。 3.2 設計思想 本節(jié)將主要介紹實時主動數(shù)據(jù)倉庫兩大核心模塊的主要設
45、計思想。3.2.1 實時變化數(shù)據(jù)捕捉模塊的設計思想 傳統(tǒng)數(shù)據(jù)集成、數(shù)據(jù)轉移和 ETL(extract,transform and load)過程都有運行時間窗口(每天或者每周),將源數(shù)據(jù)整體移動到目標數(shù)據(jù)。隨著現(xiàn)代商業(yè)模式和業(yè)務需求的轉變,企業(yè)有了建立實時數(shù)據(jù)倉庫的需求,傳統(tǒng)的方法在這方面就束手無策了。變化數(shù)據(jù)捕捉(changed data capture,CDC)技術則提供這樣一個方法。 前面已對當前變化數(shù)據(jù)捕捉技術現(xiàn)狀做過大致的介紹,接下來介紹該模塊設計的核心思想。 本次畢設實驗對實時變化數(shù)據(jù)捕捉模塊采用的設計思想是基于 DBMS 日志獲取技術。 前文已介紹過了其基本原理,這里給出這種技術
46、的架構圖,如圖 4.2。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)14圖圖 3.23.2 基于基于 DBMSDBMS 日志捕獲技術架構日志捕獲技術架構 從圖 3.2 中可以看到,基于 DBMS 日志的數(shù)據(jù)捕獲技術架構中有三個主要的平臺:源系統(tǒng)平臺、數(shù)據(jù)捕捉平臺和目標系統(tǒng)平臺,具體如下: (1(1)源系統(tǒng)平臺。)源系統(tǒng)平臺。源系統(tǒng)平臺主要包括源數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)日志和 CDC 讀取日志Agent。它可以是正在使用的任何平臺。 (2(2)變化數(shù)據(jù)捕捉()變化數(shù)據(jù)捕捉(CDCCDC)平臺。)平臺。CDC 平臺是存儲那些發(fā)生變化的數(shù)據(jù)信息的平臺,同時這個平臺上面會有一個接收日志的客戶端,還有一個文件解析的服務器端,
47、它用來發(fā)布CDC 捕捉的變化信息到目標平臺。 (3(3)目標系統(tǒng)平臺。)目標系統(tǒng)平臺。目標系統(tǒng)平臺主要包括目標數(shù)據(jù)庫和文件接收客戶端。文件接收客戶端接收由 CDC 平臺上的文件服務器上發(fā)布的數(shù)據(jù)變化信息,然后在目標數(shù)據(jù)庫上作出相同變化。 在數(shù)據(jù)庫中,都存在數(shù)據(jù)庫的在線日志功能,用來記錄數(shù)據(jù)庫更新情況。當數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)發(fā)生變化寫入到數(shù)據(jù)文件之前,必須要把這種變化寫入到在線日志中,為數(shù)據(jù)庫備份和恢復提供依據(jù)。 日志捕獲技術實時監(jiān)測日志文件,一旦發(fā)生數(shù)據(jù)變化,監(jiān)測系統(tǒng)馬上捕捉到變化的信息,并從日志中解析出數(shù)據(jù),封裝起來,利用消息隊列技術將消息放入捕獲隊列里,通過網(wǎng)絡傳送將消息傳送至目標隊列中,目標
48、系統(tǒng)從隊列中取出消息并解析數(shù)據(jù),得到數(shù)據(jù)的變化情況,并做出相應的變化,達到數(shù)據(jù)一致性。 具體實現(xiàn)機制、方法與原理將在下一章詳細介紹。 實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)153.2.2 主動決策模塊設計思想 主動決策模塊將對實時變化的數(shù)據(jù)進行分析處理,并且返回處理后的信息反饋至相關部分以供決策。 對于主動決策技術現(xiàn)狀在前面已做了大致的介紹。 本次設計實驗主要采用的是觸發(fā)器機制。在目標數(shù)據(jù)端對感興趣的數(shù)據(jù)設立一觸發(fā)器,當出現(xiàn)感興趣的操作時觸發(fā)器便被觸發(fā),執(zhí)行觸發(fā)器里的分析規(guī)則,分析規(guī)則在對數(shù)據(jù)進行分析完成后產(chǎn)生相應的信息,反饋至相關部門。 在這里,分析規(guī)則是一個簡單的分析規(guī)則,產(chǎn)生的消息則可以通過消息中
49、間件進行傳送,對于消息中間件的傳送機制將在后續(xù)章節(jié)進行詳細介紹。3.3 應用場景本次畢設實驗將構建一實時訂單數(shù)據(jù)應用場景。在源數(shù)據(jù)端,存儲著顧客們的訂單文件,同時目標數(shù)據(jù)端(ODS)也有源數(shù)據(jù)端的歷史訂單文件副本,客戶端程序是一個簡單的訂單程序,包括對訂單數(shù)據(jù)庫的更新操作(下訂單操作),當客戶給廠商下了一訂單,源數(shù)據(jù)端訂單表進行更新,在此之前,日志文件記錄此次更新,同時,數(shù)據(jù)捕獲進程監(jiān)測到此次變化,將此次變化傳送至目標數(shù)據(jù)端,目標數(shù)據(jù)端解析消息,并作出相應的更新操作,同時,此更新操作觸發(fā)了建立在此數(shù)據(jù)上的觸發(fā)器(試驗中觸發(fā)器監(jiān)測訂單中的訂貨數(shù)量),觸發(fā)器分析更新的數(shù)據(jù)的合法性(訂貨量是否大于庫
50、存量),產(chǎn)生分析結果信息,反饋至相關部門,以便部門員工作出決策。整體框架圖如圖 3.3 所示。圖圖 3.33.3 訂單系統(tǒng)實時結構圖訂單系統(tǒng)實時結構圖實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)16第四章 數(shù)據(jù)倉庫數(shù)據(jù)模型設計本章研究了數(shù)據(jù)倉庫訂單數(shù)據(jù)模型的設計,介紹了數(shù)據(jù)的填充機制及決策系統(tǒng)性能基準測試TPC-H。4.1 數(shù)據(jù)模型設計實驗中采用的數(shù)據(jù)表為訂單數(shù)據(jù),其數(shù)據(jù)模型與關聯(lián)數(shù)據(jù)邏輯模型如圖 4.1 所示。訂單表TIDclient_nameproduct_nameproduct_infoorder_Quantityorder_dataShipping_data客戶信息表client_IDclient_n
51、ame.產(chǎn)品信息表product_IDproduct_nameproduct_infoproduct_stock.圖圖 4.14.1 訂單數(shù)據(jù)模型訂單數(shù)據(jù)模型 訂單表中的字段信息如下:字段含義字段含義TID訂單編號order_Quantity訂貨量client_name客戶名order_data訂貨日期product_name產(chǎn)品名Shipping_data交貨日期客戶信息表中字段信息如下:字段含義client_ID客戶編號client_name客戶名 產(chǎn)品信息表中字段信息如下:實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)17字段含義字段含義product_ID產(chǎn)品編號product_info產(chǎn)品信息prod
52、uct_name產(chǎn)品名product_stock產(chǎn)品庫存量4.2 TPC-H 基準測試概述數(shù)據(jù)倉庫構建完成,我們往往想要測試數(shù)據(jù)倉庫的性能。這里簡單介紹數(shù)據(jù)倉庫測試的一個基準TCP-H 測試基準及其測試過程。TCP-H 基準測試時一個面向決策支持的性能指標,由 TPC(Transaction Processing Performance Council,交易處理性能委員會)發(fā)布,它包括了一系列面向商業(yè)活動的即席查詢以及并發(fā)的數(shù)據(jù)修改。它所設計的數(shù)據(jù)以及查詢語句都是經(jīng)過精心設計的,從而在滿足大范圍的行業(yè)需求和便于系統(tǒng)實現(xiàn)兩個目標之間取得平衡。TPC-H 基準系統(tǒng)可以分為如下幾個模塊:(1)產(chǎn)生數(shù)
53、據(jù)文件和更新集的 DBGEN 工具(2)查詢模板和更新函數(shù)(3)由查詢模板產(chǎn)生可執(zhí)行查詢的 QGEN 工具模塊之間的關系可以用圖 4.1 來表示:圖圖 4.24.2 TPC-HTPC-H 基準系統(tǒng)結構圖基準系統(tǒng)結構圖查詢模板是帶參數(shù)的查詢。查詢模板中的參數(shù)經(jīng)過 QGEN 后被確定的值替換。查詢模板是根據(jù) TPC-H 標準中的功能查詢定義來寫的。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)18 DBGEN 工具是使用在 TPCH 基準測試的數(shù)據(jù)生成程序在 Unix 環(huán)境下用 C 語言編寫,用于產(chǎn)生數(shù)據(jù)文件和更新集。數(shù)據(jù)文件是測試時用的基礎數(shù)據(jù),這些基礎數(shù)據(jù)在測試之前通過數(shù)據(jù)庫的裝載工具,將被裝載到測試所用的表中
54、;更新集將在測試的過程中被更新函數(shù)插入到 lineitem 和 orders 表中,或者被更新函數(shù)用于從 lineitem 和 orders 表中刪除和更新集相匹配的行。 QGEN 是一個查詢產(chǎn)生程序,QGEN 用標準 C 書寫,可移植到多種平臺。QGEN 工具將寫好的查詢模板,經(jīng)過參數(shù)替換,轉換成可執(zhí)行的查詢文本。 更新函數(shù)(Refresh Funtions)用于在數(shù)據(jù)庫中插入數(shù)據(jù)(insert)或者刪除數(shù)據(jù)(delete),這是 TPC-H 標準的要求。更新函數(shù)和可執(zhí)行查詢經(jīng)過測試腳本的調(diào)度,被提交給測試數(shù)據(jù)庫運行。運行的測試應該包括裝載測試和性能測試。 在 TPC-H 模型中,定義了 8
55、 張表,22 個復雜查詢和 2 個更新操作,被測試數(shù)據(jù)的數(shù)據(jù)量從 1GB10000GB,有 8 個基本供用戶選擇。八張表的結果及關聯(lián)如圖 4.2 所示:圖圖 4.34.3 TPC-HTPC-H 8 8 個表的表結構及關聯(lián)個表的表結構及關聯(lián)實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)19TPC-H 利用 DBGEN 工具對這八個表進行數(shù)據(jù)填充,具體填充步驟如下:(1).解壓到一個目錄下(2).運行 dbgen -h 查看命令幫助 如:生成比例因子為 1 的數(shù)據(jù):dbgen -vfF -s 1 ,為比例因子為 1 的數(shù)據(jù)產(chǎn)生 2 對更新數(shù)據(jù)對:dbgen -v -U 2 -s 1 (3).使用各數(shù)據(jù)庫的數(shù)據(jù)裝載工
56、具裝載數(shù)據(jù)(需預先在數(shù)據(jù)庫中建表)采用 TPC-H 進行測試的測試步驟包括: (1) 用 DBGEN 工具產(chǎn)生數(shù)據(jù)文件,數(shù)據(jù)文件經(jīng)過數(shù)據(jù)庫的 loader 工具,被裝載到數(shù)據(jù)庫中。 (2) 用 DBGEN 工具產(chǎn)生更新集 (3) 測試的運行包括:(i)查詢模板經(jīng)過 QGEN 生成可執(zhí)行查詢,可執(zhí)行查詢經(jīng)過parse_query,生成待提交的查詢(ii)測試腳本將更新函數(shù)和待提交的查詢提交給測試數(shù)據(jù)庫運行實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)20第五章 實時變化數(shù)據(jù)捕捉模塊的設計與實現(xiàn) 在實時主動數(shù)據(jù)倉庫系統(tǒng)中,要求源系統(tǒng)中的實時數(shù)據(jù)一旦發(fā)生變化就立即加載到目標數(shù)據(jù)端上,以支持實時戰(zhàn)術分析。 本章將給出實
57、現(xiàn)實時變化數(shù)據(jù)捕捉的一個方案,該方案基于日志捕獲原理,利用Oracle streams 技術,配置需要捕捉的實時數(shù)據(jù),實現(xiàn)變化數(shù)據(jù)捕捉。5.1 實時變化數(shù)據(jù)捕捉模塊概述本模塊主要負責實時監(jiān)控數(shù)據(jù)源端的數(shù)據(jù),一旦數(shù)據(jù)發(fā)生變化,捕獲進程實時捕捉數(shù)據(jù)變化信息,并將變化信息傳送至目標端,使目標端作出相應的變化操作。本實驗采用的技術原理是基于日志捕獲的,從在線日志中捕獲數(shù)據(jù)變化信息,將信息格式化壓入高級隊列中,利用網(wǎng)絡傳送至目標數(shù)據(jù)端隊列,目標數(shù)據(jù)端從隊列中取出并解析數(shù)據(jù),獲取相關的變化信息,并作出相應變化,以實現(xiàn)數(shù)據(jù)的一致性與實時性。本模塊在應用場景的具體功能與效果是實時數(shù)據(jù)捕捉模塊實時監(jiān)控并捕捉訂單
58、數(shù)據(jù)源端的數(shù)據(jù)變化,一旦數(shù)據(jù)發(fā)生變化(比如更新或插入操作),捕捉模塊實時捕捉到變化信息,并將此變化信息利用隊列傳送至目標端,目標端收到此變化信息作出相應的操作,保證訂單的實時性與一致性。 5.2 基于日志捕獲技術的變化數(shù)據(jù)捕捉的設計 本節(jié)將介紹日志捕獲技術的具體設計。5.2.1 總體描述 基于在線日志捕獲數(shù)據(jù)變化信息的技術原理就是通過讀取數(shù)據(jù)庫日志信息來獲取數(shù)據(jù)庫的所有變化,然后將這些變化信息通過高級隊列傳送至目標系統(tǒng),目標系統(tǒng)通過解析這些日志得到相關的數(shù)據(jù)變化信息,并根據(jù)這些信息作出與源系統(tǒng)相同的變化。根據(jù)此原理,我們可設計三個進程來實現(xiàn)此模塊:首先是捕捉日志信息進程,負責用于掃描數(shù)據(jù)庫的在
59、線 日志,捕獲數(shù)據(jù)變化信息,并將信息壓入傳送隊列里,第二部分是傳播信實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)21息進程,負責將高級隊列里的數(shù)據(jù)變化信息傳送至目標隊列里,最后是目標系統(tǒng)的接收應用進程,負責從隊列里取出消息并應用到數(shù)據(jù)庫對象里。變化數(shù)據(jù)捕捉模塊總體設計如圖 5.1如下。應用進程傳播進程捕獲進程圖 5.1 基于日志捕獲技術的總體設計圖5.2.2 基于日志的變化數(shù)據(jù)捕獲進程設計 重做日志(redo log)中記錄了數(shù)據(jù)庫產(chǎn)生的所有變更,此進程將用于掃描數(shù)據(jù)庫的redo log,捕獲數(shù)據(jù)操作語句(DML),數(shù)據(jù)定義語句(DDL)等變化信息,并把這些改變信息格式化為一種特定的格式邏輯變更記錄格式(LC
60、R),然后把它們?nèi)M高級隊列中。捕獲進程工作原理如圖 5.2 所示。格式化 LCR 至隊列捕獲變化數(shù)據(jù)變更重做日志捕捉進程數(shù)據(jù)庫對象高級隊列LCRLCRLCR用戶消息數(shù)據(jù)DDLDML圖 5.2 捕獲進程 在 Oracle 數(shù)據(jù)庫中,日志記錄的信息包括:數(shù)據(jù)庫的更改歷史、更改類型(INSERT、UPDATE、DELETE 等)、更改對應的系統(tǒng)改變號(SCN)、以及執(zhí)行這些操作的用戶信息等,在分析日志時,將重構等價的 SQL 語句和 UNDO 語句。捕獲程序通過對日志進行掃描,分析日志記錄信息,從而得到數(shù)據(jù)的變化信息。實時主動數(shù)據(jù)倉庫的設計和實現(xiàn)22 利用歸檔日志文件的信息可以進行數(shù)據(jù)的增量備份,如果我們
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人別墅二手房買賣合同范本下載4篇
- 二零二五年度國際車展場地租賃及贊助權益合同4篇
- 二零二五年環(huán)保污染治理項目投資合同范本
- 2025年度特色果園承包與品牌推廣合作合同4篇
- 二零二五年度軍人離婚協(xié)議書樣本下載
- 2024年限量版汽車用品授權銷售協(xié)議版B版
- 二零二五美容院美容院加盟店開業(yè)指導與服務合同4篇
- 2025年度苗木銷售渠道拓展合作協(xié)議4篇
- 二零二五版美容美發(fā)行業(yè)員工績效獎金合同4篇
- 2025版人力資源管理咨詢與改革合同3篇
- 2023年上海英語高考卷及答案完整版
- 西北農(nóng)林科技大學高等數(shù)學期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產(chǎn)品知識
- 《連鎖經(jīng)營管理》課程教學大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
- 員工崗位能力評價標準
- 定量分析方法-課件
- 朱曦編著設計形態(tài)知識點
- 110kV變電站工程預算1
- 某系統(tǒng)安全安全保護設施設計實施方案
評論
0/150
提交評論