• 兼容性
• 架構看起來很有效率(理論上)
缺點
數據倉庫DBMS架構需要在各方面做平衡,有時要犧牲一些功能,因此Oracle仍然缺乏一些其他廠商已經提供的功能。當和面向列的DBMS作對比時,這種缺點就非常明顯;如果面向列的數據倉庫比起面向行的數據倉庫更能夠滿足你的需求,那么Oracle Exadata很可能并不是你的理想選擇。但是其他面向行的廠商–Teradata和其他的廠商–同時也提供Exadata所不能具備的功能。
更重要的是,任何支持Exadata的理由都假設它的實際運行效果和宣傳的差不多。這種假設目前還未得到證實–至少還沒有足夠多的驗證。雖然Oracle已經披露了使用測試產品的客戶名稱,但是Oracle還沒有提供任何真實的產品參考。Oracle甚至不愿意在客戶站點上進行Exadata的概念驗證,而是傾向于在它自己的設施內進行測試。Oracle的測試結果和其他已經公布的信息看起來足夠讓人相信:和沒有Exadata的Oracle DBMS部署相比,Exadata可以帶來顯著的性能提升。但是,我們還缺少Exadata與其他廠商替代系統(tǒng)的對比情況。
最后一個問題是價格–或者說,總擁有成本(TCO)。Oracle的報價是,根據系統(tǒng)大小,分為5-6萬美元/TB(低速磁盤),11-13萬美元/TB(高速磁盤)。Exadata的定位是面向高端市場。從Oracle過去在軟件定價上的傳統(tǒng)策略來看,這個定價范圍是合理的,而且從硬件/成本節(jié)約指標(比如裸分析請求性能或數據壓縮)來看,Exadata也并不是行業(yè)領先者。(欲了解更多的詳細的價格信息,參見《Oracle數據庫機以及Exadata定價》,這篇文章中列出了競爭對手的價格)。但是,現(xiàn)實地說,這些費用還只是初步估計,因為每家企業(yè)的議價能力是不同的。
Exadata針對的是TB級(用戶數據)的數據倉庫。你所能買到的最小的配置也有6TB容量,并配有兩個存儲單元(這是最少的數量)。兩個最標準的配置分別擁有14個存儲單元,根據所使用的磁盤類型,容量配置分別為42和92TB。需要注意的是所有這些數據都是近似數據,因為用戶數據量與磁盤的比例很大程度上受到裸數據類型的影響。
Exadata所解決的問題
毫無疑問,Oracle是企業(yè)級聯(lián)機事務處理(OLTP)DBMS的銷量冠軍。其他可值得稱道的競爭對手通常提供那些雖然不如Oracle,但也"足夠好"的產品,然后再通過價格優(yōu)勢或在總擁有成本上的其他優(yōu)勢來與Oracle競爭。
不過,在數據倉庫這個領域,格局就完全不一樣了。在這個領域中,從產品滲透率來看,Teradata是領先廠商,在海量數據庫系統(tǒng)(VLDB)上擁有很高的市場占有率。DB2在一些技術上領先Oracle,尤其是在并行處理領域。還有一些初始廠商,比如Netezza,Vertica,Greenplum和Aster Data等,也不斷在數據庫市場上斬將奪旗。因此,即使Oracle的產品被廣泛用于數千個數據集市和數據倉庫,Exadata仍然需要花費一定的努力才能趕上–或超過–高端數據倉庫競爭對手。
幾乎所有與Oracle數據倉庫相競爭的系統(tǒng)都擁有同一個架構功能,而這個功能是Oracle長期以來一直缺乏的:對磁盤的完全并行訪問。(Sybase IQ是一個例外,目前的微軟SQL Server也不具備該功能,不過SQL Server的邁蒂森計劃將會在2010年改變這一點)。在Oracle競爭對手的系統(tǒng)上,不同的處理器可以同時從不同磁盤讀取數據,因此可以在短時間內瀏覽和查詢大量的數據。雖然Oracle DBMS在設計上針對OLTP作了優(yōu)化,但是它將所有的磁盤都看成一個磁盤。(這種方法被人們普遍稱為"共享所有"架構–與之相對的是"無共享"架構,不過賣力的軟件營銷人員在這些術語的解釋和推廣上倒是越描越黑)。因此,Oracle產品在處理I/O密集型分析查詢會遇到瓶頸,而它的裸性能和性價比也相應地受到影響。即使Oracle的性能還可以接受,但是必要的數據庫設計和管理工作仍然需要大量的人工,尤其是在許多數據庫規(guī)模超過了10TB的情況下。
Exadata解決方案
Oracle并沒有完全從"共享所有"轉向"非共享"架構。(與此形成對比的是,IBM很久以前就推出了"非共享"結構的DB2,而微軟最近也準備通過邁蒂森計劃改弦易轍)。Oracle推出Exadata是想同時享有這兩種結構的長處。Exadata有兩個相互獨立的CPU池,每個池都有自己的子系統(tǒng)。惠普Oracle數據庫機以普通的方式來運行"共享所有"的Oracle系統(tǒng)?;萜誒racle Exadata存儲服務器采用并行的、"非共享"的方式來訪問磁盤,然后將所讀取到的數據傳輸給Oracle主數據庫。從理論上來講,Exadata存儲服務器所帶來的數據節(jié)約效應足以克服傳統(tǒng)的"共享所有"架構所帶來的瓶頸,而系統(tǒng)中的Infiniband網絡也可以避免產生新的瓶頸。
因此,Oracle的DBMS已經從一個層次的計算架構(數據庫)轉變?yōu)閮蓚€層次(數據庫和存儲)。配置Infiniband網絡的惠普Proliant服務器已經為這兩個層預先設定好了運行設置??蛻舻闹饕布x擇就是在大型/慢速SATA驅動器和小型/快速SAS驅動器之間作抉擇。雖然這兩款產品中都出現(xiàn)了"惠普"的名字,不過Oracle表示,比起數據庫層,目前的存儲層更加依賴惠普的硬件。這種情況的出現(xiàn)也是合情合理,因為數據庫層基本上是運行Oracle已經發(fā)布的軟件,而存儲層的設計是全新的,而且儲層是Oracle和惠普的工程師共同開發(fā)的。
從理論上來說,將架構分成數據庫層和存儲層能夠讓Oracle同時擁有"共享所有"和"非共享"架構的好處。磁盤的數據被讀出后,一邊停留在存儲層,一邊由系統(tǒng)進行一系列并行的數據操作。然后,中間結果被傳送給數據庫層,以便進行進一步的分析處理。
Oracle已經公布了測試結果,從結果來看,比起沒有Exadata的Oracle系統(tǒng),Exadata能夠帶來性能上的極大提升。不過,我們還不清楚Exadata在生產環(huán)境中的表現(xiàn)(甚至我們也沒有看到在放松控制的測試環(huán)境下的測試結果)。我們同時還不清楚Exadata需要多少持續(xù)性的管理開銷。一方面,克服磁盤瓶頸后,系統(tǒng)應該不再那么需要復雜的分區(qū)策略,先進的索引,以及其他需要花費數據庫管理員大量時間的策略和實踐。另一方面,Exadata包含了一個核心DBMS,一個附加的并行化系統(tǒng)(Oracle Real Application Clusters),以及一個第二并行化系統(tǒng)(Exadata存儲服務器)。因此Exadata實際上不能將系統(tǒng)簡單性作為其亮點。
數據查詢加速功能
無論你怎樣看待Oracle的基本架構,不可否認的是Oracle的確提供了豐富的數據倉庫功能。雖然這些資源并不是Exadata獨有的,但是在評估整個Oracle Exadata產品的時候,我們必須考慮這些因素。這些功能中的許多功能可以讓分析查詢運行得更快。其中最重要的兩個功能是:
物化視圖。Oracle可以預先計算并保留其查詢結果。這種方式所帶來的明顯好處就是后來的查詢可以采用事先查詢所產生的結果,其查詢速度得到了很大提升。不過這種方式也有明顯的缺點,就是CPU開銷比較大,對磁盤空間的要求大,給數據庫管理員也帶來一定負擔。
專門索引。專門的分析索引有位圖索引和星型索引等。特別是星型索引,這種索引和物化視圖的功能差不多–它們都需要事先消耗一定的系統(tǒng)資源,進行查詢處理等工作,然后,當真正的查詢發(fā)生時,查詢的執(zhí)行速度就可以變快。
Oracle還提供了一系列靜態(tài)和動態(tài)的SQL語句調整功能。其他廠商已經提供類似的功能,但是它們沒有這么復雜。這種差別部分是源于產品在成熟度上的差別。但是一些分析人士質疑這些SQL語句調整功能是否有用,他們認為其他廠商所采用更簡單的SQL語句調整功能有可能更好。Oracle是通過靈巧的方式,利用一系列工具來實現(xiàn)SQL語句調整功能,而其他系統(tǒng)則采用更為直接的方式–掃描從磁盤中讀出的數據,直接處理這些數據,同時優(yōu)化其處理過程??蛻艚涷灨嬖V我們爭論的正反兩方都有自己的道理。
分析處理功能
Oracle同時還提供了大量的其他功能。這些功能已經超過了簡單的SQL范疇,包括完全的SQL 2003分析工具,以及大量的數據挖掘工具。例如,SPSS的報告稱Oracle的數據庫數據挖掘技術具有很強的性能優(yōu)勢。不過,我們還需要繼續(xù)觀察Oracle是否可以為許多客戶構建有價值的數據挖掘模型。比起多數其他新的競爭對手,Oracle針對數據分析的并行化方案雖然更靈活,但是也更繁瑣。
安全性
安全性是數據庫所有者永恒的話題。在數據倉庫領域中,安全性問題經常涉及隱私問題–特別是當數據倉庫中的數據是客戶數據的時候。Oracle在安全保護功能上投入了大量時間和精力,比如它的細粒度訪問控制和透明加密。對于關注隱私和安全問題的公司來說,Oracle和Oracle Exadata對它們比較有吸引力。
總結
Oracle在數據庫領域有豐富的經驗和技能。Oracle Exadata擁有合理的架構。毫無疑問,Exadata最終能夠滿足用戶在數據倉庫上的不同需求。不過,我們還不太清楚的是:Exadata的許可證定價、復雜性是否會使它在總擁有成本上失去優(yōu)勢。Exadata缺乏客戶實施驗證,而且Oracle也不愿實施現(xiàn)場的概念驗證測試,這使人們懷疑目前的Exadata是否可以滿足企業(yè)的需求。
如果你已經是一名Oracle用戶,而且你的數據倉庫容量在5TB以上,那么你應該考慮Exadata。但是除非你是Oracle的忠實用戶,或者你和Oracle有很好的關系,可以得到慷慨的價格折扣,那么你應該優(yōu)先考慮其他廠商更為廉價且經過驗證的產品。