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