輕量級數據倉庫的實現方法 數據庫開發
關鍵字:輕量級 數據倉庫 網絡管理 響應速度摘要 以網絡管理軟件為例,分析了軟件體系結構中數據庫之重要性以及海量的數據和不良的數據庫設計可能對軟件造成的響應速度的極度惡化。本文汲取了數據倉庫中面向主題的思想,提出了一種構建輕量級數據倉庫模型及實現方法,用空間來換取時間,以提高軟件的響應速度。該模型具有可擴展性、一次構建重復使用等特點。
關鍵詞 數據倉庫;網絡管理;響應速度
1 引言
數據庫現在已經成為大型軟件不可缺少的一部分,數據庫在軟件體系中扮演著越來越重要的角色,數據庫設計正日益成為影響軟件性能、健壯性的重要因素。隨著軟件體系結構的復雜性變得越來越高,開發人員不得不設計更多的表來存儲他們需要的數據。表越多,數據庫越復雜。復雜的數據庫對于數據的寫入不會有任何問題,但是如果我們想把數據取出來,將變得異常的困難。這在一些響應需求很高的軟件中是不能忍受的。
數據倉庫是近幾年來數據庫領域非?;钴S的一個研究方向。數據倉庫主要解決的問題就是從海量的歷史數據中通過數據挖掘進行知識發現,提供決策支持。數據倉庫的設計目標是給決策層提供支持,但是其面向主題性、完整性、穩定性為我們解決上面的問題提供了思路。
2 問題描述
現在以網絡管理軟件為例說明構建輕量級數據倉庫的必要性。大型的網絡管理系統非常的復雜,具有管理設備多、網絡層次復雜、響應需求性高等特點。網絡管理客戶端系統一般可以粗略的分為兩部分,網管GUI和報表系統。網管GUI部分主要功能是對設備進行監視和數據采集。報表系統主要功能是對采集到的數據進行分析、提供網絡運營情況的詳細報表可能包括日報表、周報表、月報表、季度報表、年報表。每種報表可能還會按照網絡層次、區域(可能是地理的也可能是邏輯的)等規則來劃分。網絡管理軟件的開發人員還可能由于性能、語言、復雜性等因素存入不當的數據類型(比如時間,很多開發人員可能更愿意使用long型的數據類型而不愿意使用Datetime或者字符串類型的數據類型,因為這樣便于程序員的操作、比較,性能也更好一點)。然而不當的數據類型可能給報表系統、數據庫更大的壓力,造成性能的嚴重惡化。多表的關聯也是影響數據庫性能的主要因素之一。因為有時候為了獲得需要的結果,不得不從多個表中根據相關條件進行條件選擇,本來就很多的數據又以聯合級數增長。下面以圖1的表簇為例,并用SQL server數據庫進行查詢,得到記錄數和響應時間表格如下:
表1 不恰當的數據類型下數據行數與響應時間表 ACusertable行數 HotspotTable行數 CityTable行數 響應時間(秒) 城市按天求極值 1941600 180 16 160 城市按月求極值 1941600 180 16 162 熱點按天求極值 1941600 180 16 155 熱點按月求極值 1941600 180 16 152 表2 恰當的數據類型下數據行數和響應時間表 ACusertable行數 HotspotTable行數 CityTable行數 響應時間(秒) 城市按天求極值 1941600 180 16 26 城市按月求極值 1941600 180 16 25 熱點按天求極值 1941600 180 16 29 熱點按月求極值 1941600 180 16 25
從上面的表格可以看出,當數據量達到百萬級的時候不良的數據類型造成的響應時間就達到了分鐘級別,恰當的數據類型的響應時間也長達30秒鐘,而且這是在用數據庫的查詢工具在本地進行查詢,在實際的應用中更多的是分布式系統,數據庫和進行查詢的報表分布在不同的主機之上??紤]到網絡的傳輸和數據庫之間的接口,響應速度就會更加惡化,任何一個優秀的軟件,這種響應速度都是不能忍受的。網絡管理中數據采集的數據量是巨大的,百萬級的數據量在統計IP層發送的包數、字節數,監控重要或者核心設備的狀態信息是常見的。網絡管理軟件中是如此,在需要頻繁高密采樣的軟件設計中,也會遇到同樣的問題。
3 數據倉庫
3.1 數據倉庫簡介
數據倉庫概念始于20世紀80年代,首次在數據倉庫之父William H.Inmon的《建立數據倉庫》一書中出現的。隨著這幾年對數據倉庫的廣泛研究,數據倉庫的概念逐漸清晰。數據倉庫是企業管理和決策中面向主題的、集成的、與時間相關的、不可修改的集合,用于支持經營管理中的決策過程。與傳統的聯機事務處理系統相比,數據倉庫中的數據具有如下特點:
3.1.1 面向主題
面向主題是數據倉庫最重要的特征之一。傳統的數據是面向應用的,數據與應用緊密相連,而數據倉庫則是面向主題的,主題是在一個較高層次上的將數據歸類的標準?;谥黝}的數據相互邏輯上是不交叉的。
3.1.2 集成性
當前很多企業內的數據是分散的而非集成的。造成這種分散性的主要原因是事務處理的分散性、數據的不一致性、外部數據和非結構化數據。數據倉庫中的數據來源于這些現行的業務系統或管理信息系統,而這些系統是相互獨立的,在數據字典、編碼規則、命名方式和關鍵字之間等各個方面各不相同,甚至相互矛盾。在進入數據倉庫之前必須對這些數據進行合理的重組、轉換、清洗和集成,使原始數據結構從面向應用到面向主題轉變,以適應數據倉庫面向主題的要求。
3.1.3 穩定性
數據倉庫中的數據主要是為信息分析和管理決策服務的,需要長期的積累,通常是通過對大量原始數據經過清洗、加工和集成后進入數據倉庫的,因此根本或很少修改,具有穩定性。
3.1.4 強調時間序列
一般應用的應用中的數據可以不包含時間因素,而只表示當前情況,是企業當前情況的瞬間映像。數據倉庫中的數據是企業在以前各個時間點的瞬間映像,是以時間為變量的動態過程,這樣才能發現和挖掘出事務在動態變化過程中的內在規律,為決策提供支持。
原文轉自:http://www.anti-gravitydesign.com