程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 數據倉庫領域革命性的產品—Sybase IQ(1)

數據倉庫領域革命性的產品—Sybase IQ(1)

編輯:SyBase教程

Sybase的數據倉庫方法從根本上就不同於其他的關系型數據庫提供商。Sybase認為,傳統的關系型方法以及ROLAP方法效率很低,要想獲得足夠的性能,必須通過高額的成本,在額外的硬件、軟件、資源、錢、時間上進行大量投資,否則不可能達到。因此,Sybase已經開發了一個新的逆向關系型數據庫——它是基於列的,而非基於行的。 

Sybase IQ與傳統數據庫在數據壓縮方面的典型對比

我們開始審視Sybase IQ時發現,Sybase對其使用列方法的好處所做的論述相當令人信服。然而,通過對數據倉庫不斷增加需求、迅猛增長的來自Web的數據與用戶所帶來的分析和報表更不必提即將到來的RFID應用),以及客戶的經驗等等,我們現在可以證明,Sybase IQ提供了一個遠比那些傳統的關系型數據庫供應商更優越的方法。下面,就讓我們一起看看Sybase IQ在列存儲、數據壓縮、索引等技術方面的革命性創舉。

列存儲

不同於傳統的關系型數據庫其數據在表中是按行存儲的,Sybase IQ是通過表中的列來存儲與訪問數據的。盡管這種方式很明顯的不太適合於交易環境,在交易環境中,一個事務與一行數據有效對應,而在查詢進程環境中,很顯然,查詢是基於特定的列來選擇的。

列方式所帶來的重要好處之一就是,由於查詢中的選擇規則是通過列來定義的,因此整個數據庫是自動索引化的。事實上,情況並不像上述的這樣簡單,Sybase IQ有各種方法支持基於列的索引,我們將在下面就此討論。

使用列方法的另一個結果就是,Sybase IQ在壓縮方面比傳統的關系型數據庫更加有效據Sybase所稱,效果可提高5倍之多)。這個原因,無消說,是由於同一列中的所有數據域有相同的數據類型。因此,每一列都可以為優化的效率與檢索進行壓縮。相比來講,基於行的存儲,各個不同的域擁有各不相同的數據類型,這非常適合於交易進程。在這樣的環境中,不斷變換理想的壓縮算法是不可行的,這意味著任何壓縮都將可能是一種最低通用的規則。

基於列的方法的另一個重要優勢是完全基於所有讀出的數據量。無論何時你從傳統的數據庫中訪問數據,需要讀出完整的每一行,而不管你實際所感興趣的是哪些域。實際上,這可能意味著讀300個字節的數據僅僅檢索20個字符的數據。但是,基於列來讀取數據,你僅僅需要讀出你想要了解的數據。當然,讀取一條單獨的記錄時,性能上的不同可以忽略,但是許多查詢需要進行全表掃描。當讀取數百萬行數據時,性能的不同就會非常顯著。

Sybase認為,Sybase IQ的列存儲天然地比普通的ROLAP方法提供更佳的性能,IQ不需要像多數競爭對手或者Sybase Adaptive Server Enterprise(ASE)一樣支持硬件的並行處理。尤其是,Sybase指出,與數據分區相關的問題就是需要支持硬件的並行機制。顯而易見,不論如何進行分區,分區都會帶來很多問題更不必說額外的維護了),不過,它打開了性能改進的實質性途徑。然而,Sybase進一步闡述道,這僅僅是對基於行的方法所與生俱來的糟糕性能的一種補償機制。

Sybase有很多事實支持它的論斷,但這並不意味著Sybase避免任何形式的數據分區。然而,不同於水平分區,Sybase IQ實施的是垂直分區,也就是說,分區是按照列而不是按照行進行的。該方法的優勢之一是分區從來不會變得不均衡,這是由於每個表中的每列都有相同數量的域。這大大降低了管理分區的維護需求,同時消除了數據庫的重新組織,而在分區變得不均衡從而開始影響性能的時候,數據庫重新組織是必需進行的。

最後,需要注意的是,Sybase IQ並沒有避免使用OLAP。對於那些希望在聚合層次下以一個相對預先定義的方式進行查詢的用戶來講,OLAP具有明顯的優勢。基於此,Sybase 支持OLAP功能屬性如排列、百分比、平均。

數據壓縮

傳統的數據庫引擎不能以一種通用的方式進行數據壓縮,主要是由於存在以下三個問題:

1.按行存儲的數據存儲方式不利於壓縮。這是因為數據大多為二進制數據)在以這種方式存儲時重復並不多。我們發現,按行存儲的數據,最多能有5%~10%的壓縮比例。

2.對於許多2K 和4K 的二進制數據頁來說,為壓縮和解壓縮而增加的開銷太大。

3.在OLTP 環境中,大量讀取和更新混雜在一起。每一次更新需要進行壓縮操作,而讀取只需解壓縮操作,大多數的數據壓縮算法在壓縮時比解壓縮時慢4倍。這一開銷將明顯降低OLTP 數據庫引擎的事務處理效率而使得數據壓縮的代價昂貴到幾乎不能忍受。

在數據倉庫應用中,數據壓縮可以用小得多的代價換取更大好處。其中包括減少對於存儲量的要求;增大數據吞吐量,這相當於減少查詢響應時間。

Sybase IQ 使用了數據壓縮。這是由於數據按列存儲,相鄰接的字段值具有相同的數據類型,其二進制值的范圍通常也要小得多,所以壓縮更容易,壓縮比更高。Sybase IQ 對按列存儲的數據通常能得到大於50%的壓縮。更大的壓縮比例,加上大頁面I/O,使得Sybase IQ在獲得查詢的優良性能的同時,減少了對於存儲空間的需求。

在傳統的數據庫中,為提高查詢性能所建的索引占用的磁盤空間往往需要比數據本身需要的磁盤空間多出3-10倍。而Sybase IQ 存儲數據所占用的磁盤空間通常只是原數據文件的40%-60%,是傳統數據庫所占用空間的幾分之一。

智能壓縮技術,與精巧的索引結構和列存儲結合,給了IQ 比其他數據庫引擎高得多的存儲效果。這將獲得更低的存儲成本與更高的性能因為系統僅需很少的磁盤I/O讀取或寫入任何給定的數據庫塊)。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved