與線上交易(OLTP,Online Transaction Process)資料庫相比,資料倉儲或BI有著截然不同行為模式。線上交易的系統,存在密集的新增、刪除及修改等行為;但是當資料轉入資料倉儲作為分析之用,顯少有刪除與修改的需要,取而代之的則是大量、動態的查詢活動。

針對資料倉儲的特殊行為模式推出的Sybase IQ,目前已是12.7版,透過垂直分割(Vertical Architecture)、Bit-Wise Indexing及平行擴充(Multiplex)模式等專利技術,可減少磁碟I/O的機會,加速查詢的速度。由於資料轉換為0與1的二進位格式,理論上有效壓縮了空間,也可提升任意查詢(Ad Hoc Query)的執行效能。

方法一:資料底層以二進位格式儲存
在Sybase IQ上,採用了自行研發的Bit-Wise Indexing技術,改以二進位(Binary)格式儲存資料,藉以有效壓縮空間,而且讓每個欄位都具索引效果。

方法二:欄位查詢取代全表格查詢
執行SELECT指令時,Sybase IQ透過欄位掃瞄(Column Scan),由上而下找到符合條件的資料,再抓出其他所需的欄位,如此即可避免全表格掃瞄,並大幅降低磁碟 I/O的次數,有效加速查詢的速度。

方法三:平行的擴充架構,分散運算的負擔
當現有的設備無法應付與日俱增的線上使用者及查詢需求時,Sybase IQ的平行擴充技術,可將資料存放在SAN之類的獨立儲存設備中,利用多臺Sybase IQ伺服器,分散使用者連線,提供多臺平行執行資料分析的能力。方法一:資料底層以二進位格式儲存

就一般關聯式資料庫而言,執行SELECT指令時,如果資料表(Table)沒有建立索引(Index),那麼無論選取的欄位有幾個、WHERE子句如何設定條件,資料庫仍會採全表格掃瞄(Table Scan)的方式,搜尋符合條件的資料。因此資料表越大,SQL執行的時間越久。

為提升效能,資料庫管理者(DBA)會適時地加入索引。索引確實有效加速SQL執行的效率,有機會原先數分鐘才能產出的報表,在數秒內完成。

不過,索引並非全然沒有缺點。一般而言,1GB的實體資料量,若加上5個索引,則可能會膨脹到3至5GB。究其原理,資料庫儲存實體資料的最小單位稱為Data Page,建立索引則需額外建立Index Page,因此索引越多,Index Page即越多,而Index Page本身也需儲存實體資料,因此導致資料庫使用的空間快速膨脹。

在Sybase IQ上,採用了自行研發的Bit-Wise Indexing技術,改以二進位(Binary)格式儲存資料,藉以有效壓縮空間,而且讓每個欄位都具索引效果。企業導入資料進資料倉儲時,Sybase IQ會自動更新索引的架構。因此針對商業智慧分析常見的任意查詢(Ad Hoc Query),Sybase IQ不用建立索引即可快速產出分析結果。


智慧型位元式索引(Bit-Wise Indexing)技術


Sybase IQ與Oracle、SQL Server或DB 2同樣屬於關聯式資料庫,使用者也是透過SQL指令存取資料,操作方式並無差異。不同的是底層的儲存方式,Sybase IQ是以Bit-Wise Indexing技術,資料以二進位(Binary)格式儲存,不但節省空間,且具有索引效果。

(註:1個Byte=8bit,整數的資料格式長度為4個Byte。Sybase IQ將資料轉為二進位格式,則長度只剩4個bit)

方法二:欄位查詢取代全表格查詢

關聯式資料庫在儲存資料時,是以列(Row)為基礎,同一筆記錄(Record)的資料儲存在一起。然而執行SQL指令時,WHERE子句設定條件的欄位,通常比跟在SELECT後面的查詢欄位少(例如SELECT Name,ID,Phone,Addr From Customer Where Gender=‘M’-查詢4個欄位,條件只有1個欄位),Sybase IQ就利用此種特性,透過垂直分割技術,在資料匯入時,將單一欄位的資料串連在一起。

執行SELECT指令時,Sybase IQ透過欄位掃瞄(Column Scan),由上而下找到符合條件的資料,再抓出其他所需的欄位,如此即可避免全表格掃瞄,並大幅降低磁碟 I/O的次數,有效加速查詢的速度。

企業若只需產出欄位固定的制式報表,在關聯式資料庫中設定索引,即可應付需求。但建置商業智慧應用,則需思考增加索引可能引發資料量快速膨脹,及資料導入資料倉儲的時間拖長等連鎖效應。

藉由索引功能,一般關聯式資料庫固然能夠避免全表格掃瞄,並減少磁碟 I/O。不過任意查詢是常見的商業智慧應用,分析人員希望隨意選擇任何欄位,做各種角度的分析,所以除非每個欄位都建立索引,否則仍有全表格掃瞄的可能。但若是所有欄位均建立索引,將使資料量快速膨脹,再者系統為維護Index Page,同樣會拖慢效能,尤其資料導入資料倉儲將明顯變慢。

由於全表格掃瞄是磁碟I/O的行為,所以即使企業增加處理器和記憶體,升級到更高檔的硬體設備,效果也未必令人滿意。這是針對線上交易行為所設計的關聯式資料庫,應用到資料倉儲領域,在資料量大時,可能面臨的瓶頸。


垂直分割(Vertical Architecture)

舉例來說:SELECT COUNT(*) FROM CUSTOMER WHERE GENDER=’M’

以一般資料庫的存取方式,若要找出CUSTOMER資料表中,性別為男的資料筆數。在沒有建立索引的情況下,資料庫必須以全表格掃瞄(Table Scan)的方式,循序讀取所有的欄位,計算GENDER欄位,值為「M」的資料筆數。

而Sybase IQ採用垂直分割的專利技術,依欄位串連,非逐筆排列。因此執行此SQL指令時,根據WHERE子句的條件,採用欄位掃瞄(Column Scan)的方式,直接移到GENDER欄位,計算值為「M」的資料筆數。由於完全不觸碰其他欄位,理論上可以減少磁碟 I/O的次數。

方法三:平行的擴充架構,分散運算的負擔

當現有的設備無法應付與日俱增的線上使用者及查詢需求時,Sybase IQ的平行擴充技術,可將資料存放在SAN之類的獨立儲存設備中,利用多臺Sybase IQ伺服器,分散使用者連線,提供多臺平行執行資料分析的能力。

現行方案還有一種是多臺機器共同執行單一SQL指令,不過,此法會增加磁碟 I/O的次數。因此Sybase IQ的平行擴充技術,強調雖然允許多臺伺服器共享資料倉儲,但伺服器之間是獨立運作,各自服務連線使用者的查詢。因此任何一臺伺服器故障,不會影響其他伺服器的運作。

不過,平行擴充技術的前提,是伺服器的作業系統必須一致。企業可針對不同的使用者行為,切分至不同的Sybase伺服器執行,例如制式報表於A伺服器執行,任意查詢的功能則集中在B伺服器,如此一來,即使任意查詢的條件過於複雜,而拖慢B伺服器的效能,也不致影響A伺服器負責的日常報表作業。


 平行擴充(Multiplexing)模式


平行擴充模式允許企業利用多台電腦存取單一儲存設備中的Sybase IQ資料庫,以分散處理器及記憶體的負荷。隨著存取資料倉儲使用量的增加,企業可橫向擴充,利用多臺電腦分散使用者連線,可同時服務更多使用者執行複雜運算,不僅降低磁碟 I/O的次數,而且任何一臺電腦的故障,不會影響其他臺電腦的工作。不過,前提是作業系統必須一致。



特殊化的效能,只適合資料倉儲應用
Sybase IQ與Oracle、SQL Server及DB2一樣是關聯式資料庫,操作模式與其他資料庫產品並無差別,使用者同樣透過SQL指令存取資料。只是底層的運作,透過上述技術,針對巨量查詢的行為模式,試圖提供最佳化效能的資料存取方式。

線上交易與資料倉儲的行為模式截然不同,Sybase針對資料倉儲特殊的行為模式,設計特殊化的加速資料處理技術,但若將Sybase IQ應用於線上交易領域,便無法發揮產品的優勢,企業必須視需求選擇適合的產品。文⊙李延華


Sybase IQ

建議售價:150萬元/處理器

Sybase

(02)8723-6000

www.sybase.com.tw

 

支援的作業系統 Sun Solaris、HP UX、IBM AIX、 Linux、Windows

熱門新聞

Advertisement