隨著市場和業務模式不斷細化,系統功能日益增強,應用操作將產生比以往更多的生產型數據,同時企業對歷史數據分析的需求也在不斷增加,因此將會不可避免的引起業務數據的極度膨脹。我們現在已經看到,越來越多地數據系統達到幾百GB甚至於TB級以上的容量。如何建設如此巨大的數據庫應用系統,用戶需要從多方面加以考察,其中包括系統運行絕對性能、投資回報率(ROI)、系統運行風險和數據可管理性等多方面的因素,以得到一個最優的綜合解決方案。
當今許多數據庫廠商的產品所支持的數據量已達到TB級。但是對VLDB的支持不僅僅指的是在數據庫中的容量——VLDB並不僅僅意味著簡單地將所有數據存入一張表,VLDB的性能將涉及到數據庫管理的所有方面:日常管理、數據加載、索引建立、運行性能等等。同時還需要支持大量用戶連接和大的工作負荷。只有在此基礎上保持良好的運行性能才能構成超大型數據庫,即:任何針對VLDB的成功的解決方案應該是、也必須是一個完整的解決方案。
VLDB處理方式分析
當前通常的VLDB解決方案更多的是從數據存儲優化的角度解決我們所面臨的困難,較少關注影響VLDB性能的其他技術因素如日常管理、災難恢復和系統可用性等方面。
從數據存儲技術發展史來看,整個數據存儲的發展過程是一個集中-分割-再集中-再分割這樣一個循環往復的過程。這個過程也是需求不斷拉動數據存儲技術發展的過程。
現將一些常用的VLDB存儲技術歸納如下:
◆分表技術
分表技術是最早使用的VLDB數據存儲技術,早在DBase和Foxbase時代,人們就開始使用分表技術,來彌補PC性能較低,單個表數據量過大,會影響性能的缺陷。
◆表分區技術
表分區技術就是將表根據一定的條件和需求劃分為多個分區,每個分區都是一個邏輯實體,是表的一個子集,用戶可以象操作單表一樣對表分區進行操作,可以根據應用操作的實際需求確定分區的數據管理模式,如針對不同操作可以在相應的分區上建立不同的索引機制,選擇不同的並行方式等等。表分區為系統提供了更有效的數據組織方式,為VLDB和並行處理的實現提供了基礎。表分區是目前大多數數據庫廠家普遍使用的一種VLDB管理和存儲技術。
◆Look- through 技術
Look-through技術是一種VLDB數據存儲管理方式,它有效地結合了分布式技術和分表技術。通過在本地數據庫建立其它數據庫系統的視圖或代理表,使應用通過訪問一個本地小數據庫而真正訪問遠程多個復雜數據庫成為可能。
Look- through 技術大大減低了系統開發和管理的難度,對於開發者而言,其處理的只是一個邏輯數據庫,數據庫的物理位置對開發者是透明的。同時也降低了單點VLDB數據管理的復雜度和軟硬件開銷。同時不論是表分區,還是分表技術,都建立在同一類型的單一數據庫系統之上,而Look- through為異構數據庫的VLDB也提供了可能。
◆應用分割
不論是分表、表分區還是Look-through技術,其采取的都是一種數據分割的途徑,在現實世界中,也有很多系統在使用數據分割的同時結合了應用分割的方式。通過應用分割為功能相對獨立的功能模塊單獨建立業務系統。各系統之間的內部業務連續可通過分布式事物處理或應用集成來實現。
與其它技術相比,應用分割更像是一種設計方案、思路和經驗,而不是一種技術,但由於應用的實際需求,目前,大多系統都在設計中采用了應用分割概念。
通過以上分析,我們可以看到不論是歷史的還是現存的VLDB數據存儲方案,都有自己特定的技術背景、特點和應用市場。並且各種技術之間並不是互相對立矛盾的,應充分合理地運用一切存儲及優化技術,保證VLDB系統的高效運行。
Sybase公司VLDB解決方案
Sybase公司作為主要的數據庫軟件供應商,在全球擁有豐富的建立和實施VLDB系統的實際經驗,用戶遍及金融、電信、交通、制造等諸多行業。根據用戶的需求和VLDB對數據庫系統各方面的要求,Sybase公司的VLDB解決方案主要包括VLDB數據庫存儲技術、VLDB數據庫性能優化以及VLDB數據維護三部分。
1.VLDB數據庫的存儲技術
根據業務的不同需求,Sybase公司將數據的存儲主要細分為:分析型VLDB的數據存儲和交易型VLDB的數據存儲兩種模式,針對不同的需求用戶可以采用不同的方式。
◆交易型VLDB的數據存儲
不言而喻,在交易速度和VLDB之間存在著固有的矛盾。高並發和高交易量往往是VLDB的最直接的原因,但由於關系型數據庫的數據存儲和索引的特點,數據的基數越大,相應的索引查找和數據搜索的時間也就越長,造成交易速度下降。
Sybase數據庫管理系統集成了多種技術,支持用分表、表分區和Look-through的技術方法來解決大數據量管理的解決,同時應用系統也可以在Sybase數據庫上利用應用分割的方法解決VLDB的管理問題。
◆分析型VLDB數據存儲
分析型業務系統和交易型業務系統明顯具有不同的特點。分析型業務系統往往專注於一個或幾個事實數據如產品的銷售情況、生產系統的次品率等,需要對長期以來的業務狀況進行分析。Sybase的數據垂直分區技術正是針對分析型VLDB的這些特點而設計的。在數據垂直分區的管理結構下,不同的數據分類存放,保證了數據的快速和高效率的訪問,極大地提高了在VLDB環境下的業務系統性能。
在數據垂直分區的基礎上,Sybase在分析型業務系統中引入了專利的bitwise索引技術。Sybase的bitwise索引技術包含了常規的bitmap索引,同時又進行了特別的擴充,根據業務數據類型的不同實現了多種索引技術如:Fast Projection,Low Fast,High Group和High Non-Group。Bitwise索引的最顯著特點就在於它在數據垂直分區的基礎上,又對數據進行了按位bit)的分割和存儲,大大加快了數據定位和存取訪問的速度,同時又為數據壓縮提供了基礎,控制了VLDB業務環境下數據膨脹速度。
2.VLDB數據庫性能優化
Sybase數據庫通過多線索體系及並行操作、高效的數據讀取優化和工作負載的動態管理,增強了資源利用率,為VLDB數據庫提供了強大的性能。
多線索體系及並行操作
Adaptive Server Enterprise能夠在SMP系統中配置生成多個引擎,甚至允許在所有引擎之間進行不同的客戶連接。引擎也可處理自己的磁盤訪問,對增加的用戶數提供了近似線性的伸縮性。
◆高效的數據讀取優化
異步預讀取是ASE在數據存取方面優化性能的一種機制,可以將需要訪問數據頁事先異步讀取到緩存中,在運行時可節省大數據量I/O操作的系統開銷,可以成倍地提高數據讀取得效率。
◆工作負載的動態管理
針對VLDB中廣泛存在的混合負載(分析型需求和交易型需求共存)性能瓶頸,即:由於不同類型的應用對性能、功能及資源需求的要求大不相同。通用服務器對所有事務模式和數據類型使用同樣的事務處理引擎,這使性能、功能和資源需求等都因折衷而受到影響。Sybase提供多種管理機制如邏輯內存管理器、邏輯進程管理器以及資源控制器等以保證針對應用的性能進行調整。
◆靈活的優化策略
ASE針對不同類型的應用,提供了不同的優化目標(Optimization Goals),每一個目標(Goal)都可以指導優化器利用各種特性和功能去尋找最優的查詢計劃。
ASE共有三種優化目標。第一種目標對整個結果集進行優化並平衡OLTP和DSS類型的不同查詢。這也是默認設置。第二種優化目標將使得查詢處理引擎采用針對單純OLTP查詢最適合的技術來獲取最優查詢計劃。這個優化目標將極大地提高ASE在OLTP環境中處理簡單查詢的性能。第三種優化目標可以生成盡快返回查詢結果集前幾行數據的查詢計劃。這個優化目標為基於游標或Web方式的應用提供了極高的性能。
用戶可以在測試或開發的時候就設定優化目標,而且這些優化目標既可以在服務器級別設定,也可以在會話或查詢級別設定,所以用戶無須提前調整查詢處理引擎,就可以使系統在ODSS環境中獲得最優的性能。
3.VLDB數據維護
一個優秀的VLDB管理系統,僅僅提供數據存儲是不夠的,必須為VLDB提供完善的維護、備份和管理功能。
對於歷史和備份數據的備份和加載,Sybase數據庫支持多個設備的並行轉儲和恢復,從而大大減少了轉儲單個數據庫或事物日志所需的時間。同時通過壓縮備份的功能最佳可產生比常規未壓縮文檔小60%~80%的文檔,大大降低了系統保存數據備份和日志備份對介質的要求,可在很大程度上降低硬件投資,提高系統的ROI。
同時Sybase還提供了完善的DBCC功能,可對數據庫和表的一致性進行各種檢查,以適應VLDB數據庫維護的需求。
總結
鐵路客票系統至今已經升級到5.0版,每一次系統的平滑升級,都是ASE穩定性的絕好體現。而每一次升級之後的性能提升,都是對ASE強大功能的最好驗證。現在客票系統處理一張票的總時間一般小於7秒,其中網絡通信時延在 2 秒以內。系統不但經受了歷年“春運”巅峰交易量的考驗,還管理著容量以 Tb 計的龐大數據庫。我們相信隨著 ASE和IQ 的最新版本越來越多地應用到客票系統中,Sybase 將為打造一個效率更高、更可靠、更易於使用的平台。