列存儲技術 在關系型數據庫內核中,數據庫是按行來存儲數據記錄的,也就是說數據庫表最典型的表示為一條數據頁鏈,每一數據頁中有一行或者多行數據記錄。而在數據倉庫應用中,從查詢性能的觀點出發,這種存儲方式并不可取。因為在OLTP(在線事務處理,即傳統數據庫應用)環境中,一個事務處理是與一行(或多行)數據有效對應的,而在OLAP(在線分析處理,即BI應用)環境中,以查詢處理最多,而查詢是基于特定的列來選擇的。Sybase IQ是按列來組織數據的,每張表是一組相互獨立的頁鏈,每個頁鏈代表表中的一列。
基于列存儲所帶來的一個直接好處是,在壓縮方面比傳統的關系型數據更加有效。這是因為同一列的所有數據域有相同的類型,因而每一列都可以為優化的效率和檢索進行壓縮。而基于行的存儲,各個不同的域擁有各不相同的數據類型,盡管這非常適合交易進程,但并不適合壓縮,因為壓縮很可能只能采用一種最低通用原則。
事實上,在壓縮效果上,Sybase非常自信。Sybase中國公司CTO盧東明對記者表示,Sybase IQ能保證至少3倍以上的壓縮比。高的壓縮能力能帶來存儲成本的節約,有人曾經對數據的存儲成本進行過估算,目前每管理1TB數據的軟硬件加人力成本大約為5萬美元左右。
列存儲的另一個好處是性能上的提高。在行存儲方式的情況下,如果需要訪問數據必須讀出完整的一行,而不管你實際感興趣的是其中哪一個或幾個域。因此,這可能形成只需要50K的數據卻需要讀出500k的情況。而在采用列存儲方式時,可以只讀出所需要的列數據。讀出數據量的減少直接后果就是性能的提高。特別是在處理大數據量、復雜的跨多表查詢時,列存儲在性能上的提升非常明顯。
除此之外,Sybase IQ還采用了其他的一些專有技術,如位圖索引和BitWise索引技術等。“由于這些技術的采用,最終保證了Sybase IQ查詢速度的極大改進,這種速度的提高能達到10倍以上。因此,我們認為Sybase IQ的技術是革命性的。”Sybase的盧東明在接受記者采訪時表示。
目前,上述三種不同的數據倉庫技術到底哪種更好,各家都有自己的說法。因此,對用戶而言,具體選擇時還需多了解同類型的BI應用。不過,用戶倒是樂觀其成,畢竟競爭可以帶給用戶更好的技術和產品。
(c112)