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

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

編輯: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讀取或寫入任何給定的數據庫塊)。

索引

Sybase IQ的秘密在於其索引。隨著Sybase 客戶發現新的分析需求,Sybase可以簡捷地建立新的索引以滿足這些需求。這種方法的奇妙之處在於為數據倉庫增加新的索引幾乎不會(即使有也是微乎其微)影響數據倉庫的架構或使用倉庫的分析型應用。在實時企業與閉環應用領域,Sybase將索引視為在TB數量級(將來)甚至PB數量級數據倉庫中獲得更高查詢性能的關鍵。今天,Sybase實際上已使用了7種索引機制:

Low Fast 索引——這些是低基數索引,它使用一個被稱之為“代號化”的進程。使用該進程,數據被轉換為代號,然後存儲這些代號而不是數據。這對於減少冗余數據的數量尤其有用。例如,在整個英國擁有大量客戶群的公司,將需要存儲客戶的地址。這將意味著巨大數量的重復的郡的名稱。因此,不是保存大量的“班夫郡”的實例,例如,Sybase將會用一個數字代替每個郡的名稱。因此,由於班夫郡按照拼音排列在英國是第5個郡(排在Aberdeen,Armagh,Avon與Ayrshire之後)因此,它可能就會被設值為5。如果一個列包含一個數字值,該值自身可以一用於代號化的基礎。一旦建立了代號(這是一個自動進行的進程),一個位圖索引將被建立以表示這些代號。代號化典型地應用於列數據存在有限數量的可能取值。這也是為什麼Sybase稱之為低基數索引的原因,典型的,它僅用於不同的取值個數在1500以內的域。

Bit-Wise索引——對於高基數的域,那些取值個數超過1500個(如金額值),Sybase使用其專利的被稱之為Bit-Wise索引的技術。這在你希望的范圍進行搜索並同時進行計算的情況下,尤為有用,例如,查找銷售價格低於50歐元的貨品數量及總收入。如同位圖的其他變量,該方法的優勢之一就是計數(count)查詢可以直接通過讀取索引獲得答案,而無需讀取數據。

High Group索引——實際上,它是B-樹索引。然而,此處的原則是,用戶僅僅在幾個列有可能作為一個組來使用的情況下,尤其是高基數與低基數的聯合搜索時,才定義這些索引。比如可能有這樣的例子,按照商店(低基數)查詢產品銷售清單與價格(高基數)。

Fast Projection 索引——該索引類型(缺省的)就是列存儲本身。如果用戶總是打算檢索整個列的數據,則列存儲事實上意味著列可以直接映射到表或查詢中,而無需顯示地定義任何索引。這非常有用,例如在“Where”從句中。

Word 索引——這是一個文本索引。它基於關鍵詞或短語字符串搜索。這種類型的索引,在歷史上一直沒有用於數據倉庫中。然而,它有著大量重要的市場,在這些市場上,能夠聯合定量與定性的分析非常重要。例如,在醫療行業,醫生的診斷通常是筆記。為了獲取信息,例如發病率,可能必須訪問這種非結構化的數據。

Compare索引——這個索引技術允許數據列的比較,從效果上講,類似於“if…then…else”表達式。例如,“if支出大於收入,then…”。該類型的索引對於在Web應用中實時比較尤其有用。

Join 索引——正如索引的名稱所示,它是為消除表連接的需要而設計的。正像大多支持索引的情況,它可能在預先已知的查詢需求下更為有用。

Time Analytic 索引——這為基於日期、時間、日期與時間建立索引提供了選項。需要注意的是,對於傳統的關系型數據庫,處理基於時間的查詢尤為困難。

大量擴展工具用以支持在各種情況下使用這些索引。這包括為減少硬盤(或內存——位圖可能存在緩沖區中)需求的索引壓縮,聯合使用不同類型索引的能力,以及使用布爾操作如AND與OR過濾比特隊列等。這些特性表明,Sybase IQ克服了傳統的位圖的缺陷,即不適合於表連接或數據聚合。Sybase IQ在最近發布的版本中增加了一個索引顧問(Index Advisor),這一點尤其令人歡欣:這將建議管理員何時應該增加新的索引以及增加那種類型的索引。

總結

作為數據倉庫領域革命性的產品,Sybase IQ最新版本12.7采用了更多創新的技術,這些技術正在被全球越來越多的企業所運用。Gartner2006年的報告認為,Sybase IQ的卓越表現使它逐漸展現出一個市場領導者的風采。

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