開(kāi)源之旅——數據庫篇(圖)
第一站 走進(jìn)開(kāi)源數據庫
10%的投入 實(shí)現90%的理想
在Linux這種開(kāi)放源代碼的操作系統已經(jīng)逐漸被越來(lái)越多的企業(yè)應用時(shí),在基礎軟件平臺的另一端,開(kāi)源數據庫開(kāi)始顯山露水。
近2年來(lái),美國一些大企業(yè)紛紛采用開(kāi)放源碼數據庫,它們往往在總部采用商業(yè)數據庫,而在分支機構的Linux服務(wù)器上采用開(kāi)源產(chǎn)品。這些數據庫除了費用便宜,還各有獨到之處。與商業(yè)化產(chǎn)品相比,開(kāi)源數據庫結構簡(jiǎn)單,但功能不簡(jiǎn)單,讀取操作快捷,易管理,甚至不需要全職的管理員。 由此吸引了像Cisco、Yahoo這樣的大公司,以及眾多的中小企業(yè)。而在國內,我們熟悉的新浪、網(wǎng)易等大型門(mén)戶(hù)網(wǎng)站也是開(kāi)源數據庫的使用者。
在開(kāi)源運動(dòng)的熱潮中,我們隨處可見(jiàn)開(kāi)源數據庫的身影。MySQL、PostgreSQL、MaxDB、Berkeley DB,開(kāi)源數據庫大家庭成員眾多,其中不乏出類(lèi)拔萃者。
一些分析家稱(chēng),“Oracle、微軟和IBM的產(chǎn)品提供了非常強大的功能,但其功能只有40%被客戶(hù)利用?!币驗槠髽I(yè)都在尋求“瘦身”,所以這60%的未用功能完全可以減掉,而開(kāi)源數據庫產(chǎn)品追求的目標是用10%的投入實(shí)現90%的理想。
第二站 市場(chǎng)格局
讓數據庫巨頭忐忑不安
目前的開(kāi)源數據庫還不太可能在功能和處理能力方面追上商業(yè)級產(chǎn)品,但價(jià)格的侵蝕力無(wú)法回避,開(kāi)源數據庫迅速增長(cháng)的市場(chǎng)份額甚至讓數據庫領(lǐng)域的三巨頭,Oracle、IBM、微軟都感到忐忑不安。
去年7月, 接受Forrester研究機構調查的企業(yè)中有一半稱(chēng),正在考慮是否采用開(kāi)源數據庫產(chǎn)品。Forrester的分析師Noel Yuhanna稱(chēng),到2008年,開(kāi)源數據庫的市場(chǎng)規模會(huì )由現在的1.2億美元增長(cháng)到10億美元,這將引起傳統數據庫市場(chǎng)的騷動(dòng)。
從功能上來(lái)看,開(kāi)源數據庫與商業(yè)數據庫擅長(cháng)的領(lǐng)域并不相同,商業(yè)數據庫在處理能力,集成工具環(huán)境等方面依然強大,而開(kāi)源數據庫強調的是在某幾個(gè)單項功能上的突出表現,以及輕便、易用的特點(diǎn)。MySQL AB公司的CEO Mickos說(shuō):“別以為你能把Oracle干掉,我們需要考慮如何才能開(kāi)發(fā)和服務(wù)一個(gè)新的市場(chǎng)?!?div style="height:15px;">
MySQL關(guān)注的新市場(chǎng)目前還不錯,根據Evans Data Corporation的調查,MySQL在開(kāi)源數據庫市場(chǎng)擁有40%的占有率,安裝量超過(guò)500萬(wàn)套,緊隨其后的是Firebird(39%)和PostgreSQL(11%)。
Forrester預計,明年會(huì )有35%的開(kāi)源數據庫產(chǎn)品處理虛擬商務(wù)活動(dòng)。MySQL強勢的市場(chǎng)增長(cháng),不僅是在開(kāi)源市場(chǎng)上獨領(lǐng)風(fēng)騷,更讓人驚訝的是對商業(yè)數據庫市場(chǎng)的入侵,這跟開(kāi)源產(chǎn)品的價(jià)格與成熟度緊密相關(guān)。
MySQL大約每2年進(jìn)行一次大的版本升級,每幾個(gè)月就會(huì )有一次小規模的升級,這種小步快跑式的升級逐漸拉近了與商業(yè)數據庫產(chǎn)品之間的距離。據MySQL稱(chēng),今年晚些時(shí)候推出的MySQL5.0正式版將具有更多的企業(yè)級特性。
Yuhanna指出,MySQL的客戶(hù)群體正在日益擴大,NASA、雅虎、GOOGLE、美聯(lián)社以及 Suzuki就是其中的客戶(hù)。他談到,“MySQL花了很長(cháng)的時(shí)間才從甲骨文手中爭取到上述客戶(hù)。與此同時(shí),開(kāi)源數據庫產(chǎn)品日益成為客戶(hù)值得信賴(lài)的產(chǎn)品,我認為,在未來(lái)幾年內其客戶(hù)數還會(huì )增加?!?div style="height:15px;">
價(jià)格本來(lái)是一個(gè)敏感的話(huà)題,但由于數據庫市場(chǎng)的三分天下,數據庫這片“海洋”近幾年顯得波瀾不驚,數據庫產(chǎn)品的價(jià)格似乎也在大家的默契之下風(fēng)平浪靜,由而開(kāi)源數據庫用戶(hù)數量的增長(cháng),則把價(jià)格問(wèn)題的波浪推到了岸邊,既然可以用非常低的價(jià)格、甚至是免費得到數據庫產(chǎn)品,那么就有相當一部分用戶(hù)從商業(yè)數據庫的陣營(yíng)被吸引到開(kāi)源這邊來(lái)。這導致了像IBM和甲骨文這樣的公司要考慮產(chǎn)品降價(jià)的問(wèn)題,Forrester研究機構的分析師Noel Yuhanna稱(chēng):“商業(yè)廠(chǎng)商將會(huì )在未來(lái)12~24個(gè)月內降價(jià)產(chǎn)品價(jià)格?!?div style="height:15px;">
比起IBM和甲骨文來(lái)說(shuō),更應該感到威脅的是微軟。在上世紀90年代中期,憑借著(zhù)一款低端數據庫產(chǎn)品SQL Server,微軟硬是在Oracle、IBM、Sybase、Informix把持的數據庫市場(chǎng)中分了一杯羹。微軟當時(shí)最成功的策略就是利用SQL Server與商用軟件高度兼容,以及低廉的價(jià)格從低端市場(chǎng)逐步向上滲透,現在,已經(jīng)有將近20%的全球市場(chǎng)占有率,中小企業(yè)是微軟的大本營(yíng)。
而開(kāi)源數據庫有著(zhù)與中小企業(yè)天然的親密關(guān)系,它們與微軟產(chǎn)品之間的相似之處在于軟件的兼容性和開(kāi)發(fā)環(huán)境,微軟則在簡(jiǎn)易性方面一直都有著(zhù)上佳的表現,但開(kāi)源產(chǎn)品并不完全依賴(lài)于Windows,它能夠運行在其他操作系統之上,隨著(zhù)產(chǎn)品的穩定和成熟,開(kāi)源產(chǎn)品對中小企業(yè)更具吸引力。
與開(kāi)源數據庫產(chǎn)品的頻繁升級不同,SQL Server2000的推出已經(jīng)是1999年的事情了,在每次SQL Server被黑客攻陷之后,才會(huì )出補丁軟件,記者采訪(fǎng)了多家網(wǎng)站的技術(shù)人員,他們表示用SQL Server會(huì )有這樣的擔心:“因為源代碼不公開(kāi),問(wèn)題出現時(shí),損失已經(jīng)造成了?!蹦壳?,國內的IDC有一個(gè)不成文的規矩,如果網(wǎng)站要把系統放到服務(wù)器上來(lái)時(shí),要問(wèn)一句數據庫是不是SQL Server,還要親自檢看是否打了最新的補丁,如果用的是開(kāi)源數據庫就不會(huì )這樣的問(wèn)題。開(kāi)源數據庫的成長(cháng)無(wú)疑動(dòng)搖了SQL Server在中低端市場(chǎng)上的強者地位。
另外一個(gè)有意思的地方就是,開(kāi)源數據庫廠(chǎng)商可能會(huì )成為被收購的對象,這主要是指MySQL這樣的企業(yè),盡管MySQL的用戶(hù)絕對數量不大,但在份額相近的商業(yè)數據庫市場(chǎng)上已經(jīng)能夠左右天秤的搖擺,此外,MySQL在中小企業(yè)和開(kāi)發(fā)人員心目中的超強人氣也很有商業(yè)價(jià)值。
一些國外的分析人士曾預測,MySQL可能被像Red Hat這種開(kāi)源操作系統廠(chǎng)商所收購,其中也不無(wú)道理,Red Hat收購MySQLl會(huì )成為數據庫-Linux強者,如果Red Hat收購了MySQL,會(huì )為他的生產(chǎn)線(xiàn)增添一員大將,目前,很多企業(yè)在應用開(kāi)源數據庫的同時(shí)也使用開(kāi)源操作系統,這種搭配本身也說(shuō)明了市場(chǎng)的一種需要。
日前,又傳來(lái)了MySQL和Red Hat公司加強合作的消息,雙方為客戶(hù)提供整合的、協(xié)作的技術(shù)支持。Red Hat和MySQL公司也計劃對MySQL數據庫和Red Hat的Cluster Suite以及Global File System進(jìn)行兼容性測試。
第三站 這里有5大景點(diǎn)
開(kāi)源數據庫各領(lǐng)神通
在充滿(mǎn)傳奇色彩的軟件行業(yè),開(kāi)源運動(dòng)早已不再是一種嘩眾取寵的時(shí)尚,而是成為一種潛移默化的文化。這里包括“最受歡迎的開(kāi)源數據庫”MySQL、“最先進(jìn)的開(kāi)源數據庫”P(pán)ostgreSQL、“新世紀的關(guān)系型數據庫” Firebird,此外還包括將嵌入式作為自己重要使命的精巧的Berkeley DB和曾經(jīng)在ERP領(lǐng)域取得不俗業(yè)績(jì)的SAP DB(MaxDB)。 更為可喜的是,伴隨著(zhù)Java技術(shù)而快速發(fā)展的功能同樣出色的Apache 組織的Derby(由IBM著(zhù)名的Cloudscape 10演化而來(lái))、Hypersonic的HSQL等,凡此種種, 開(kāi)源數據庫陣營(yíng)可謂“亂花漸欲迷人眼”。
那么如何選擇和自己的業(yè)務(wù)比較契合的開(kāi)源數據庫呢?本文將選擇以下五種比較常見(jiàn)的開(kāi)源數據庫,從功能特性及應用等角度進(jìn)行簡(jiǎn)要的評析,期望能夠對用戶(hù)有些幫助。
MySQL的發(fā)展在一開(kāi)始便定位于快速、穩定的大型關(guān)系型數據庫的目標,因而在設計上當性能和標準不相協(xié)調時(shí),更主要的是性能和穩定性的考慮,這也許可以解釋為什么MySQL 4迄今還不支持如外鍵引用等數據庫管理員們所鐘愛(ài)的功能。
如今的MySQL 4版本可以運行于多種操作系統平臺,支持全文搜索,提供了常見(jiàn)開(kāi)發(fā)語(yǔ)言的編程接口,最大可支持64TB的表空間……,而可伸縮的設計體系使得MySQL既能夠提供企業(yè)級的客戶(hù)機/服務(wù)器工作方式和復雜的集群工作方式, 也能夠作為嵌入式的數據庫引擎集成到其他的應用系統之中。
對于那些需要海量數據的檢索,不需要復雜的事務(wù)操作的用戶(hù)來(lái)說(shuō),MySQL應該是一個(gè)比較理想的選擇。
MaxDB是2003年SAP公司和MySQL AB公司合作之后SAP DB新的名稱(chēng)。MaxDB是一款重量級的、獲得SAP R/3認證,適宜于聯(lián)機事務(wù)處理和聯(lián)機分析處理等多種業(yè)務(wù)類(lèi)型的高可用性、高可靠性和極具伸縮性的數據庫,支持大容量的用戶(hù)和并發(fā)業(yè)務(wù)操作,采用多線(xiàn)程多進(jìn)程的服務(wù)器設計,支持多處理器的應用,并通過(guò)集群和熱部署提供高可靠性,支持TB級的海量數據,支持企業(yè)級的數據同步和復制等復雜應用。
上述的功能如此強大,就難怪Intel, Toyota,DaimlerChrysler, Yamaha等業(yè)界列強選擇它了。應該說(shuō),對于開(kāi)展ERP業(yè)務(wù)的用戶(hù),尤其是采用SAP ERP系統的用戶(hù),如果考慮較高的性?xún)r(jià)比,采用MaxDB應該是非常明智的選擇。
PostgreSQL自1986年發(fā)展迄今已有近20年的歷史了。如今的PostgreSQL 8.0可謂身懷絕技,它支持一系列關(guān)鍵特性:支持分布式的事務(wù)處理;支持外鍵功能,以及所有的SQL 99的連接類(lèi)型、觸發(fā)器;支持用戶(hù)自定義的對象數據類(lèi)型和操作;支持子查詢(xún)、部分索引和表達式索引;支持多種語(yǔ)言產(chǎn)生的存儲過(guò)程,同時(shí)PostgreSQL提供了多種編程接口,擁有熱備份和選擇性備份恢復工具等……。如此奇妙的特性,無(wú)怪乎它享有“最先進(jìn)”的美譽(yù)了,印度的農業(yè)信用社就使用PostgreSQL處理金融業(yè)務(wù)。
但是,和MySQL相比PostgreSQL的性能一直被視為弱項。對于那些需要復雜業(yè)務(wù)操作,而對性能要求不是過(guò)于苛刻,同時(shí)期望系統的設計富于擴展性的用戶(hù)而言,不妨采用PostgreSQL。
FireBird數據庫是Inprise(Borland)公司在自己的IDPL(Initial Developer‘s PUBLIC LICENSE)許可協(xié)議基礎上,將Interbase 6.0數據庫貢獻給開(kāi)源組織后的產(chǎn)品。
FireBird全面支持SQL 92 Entry Level 1的功能和絕大部分的SQL 99功能,能夠運行于Windows、Linux或其它Unix等多種平臺上。但是由于未知的原因,Firebird的后續開(kāi)發(fā)比較緩慢,迄今為止的1.5版本,僅僅是用C++重寫(xiě)原有的C代碼,缺乏新的功能點(diǎn),而且其開(kāi)源部分似乎并不完全,如:缺乏企業(yè)級應用的復制機制。然而,作為一款成熟的起步級的數據庫管理系統,Firebird還是值得被研究和分析的。如果你不更改FireBird的數據庫引擎,那么你可以將FireBird任意應用到你的商業(yè)應用之中。
最后我們來(lái)對Berkeley DB這一特殊的開(kāi)源數據庫進(jìn)行評析。嚴格地講,Berkeley DB并不是一個(gè)數據庫管理系統,它是作為嵌入式的數據庫引擎來(lái)設計的。例如MySQL的數據存儲引擎便可以在Berkeley DB和InnoDB之間選擇。Berkeley DB提供了一個(gè)可伸縮、高性能和能夠進(jìn)行事務(wù)處理的數據管理和數據訪(fǎng)問(wèn)服務(wù)庫,通過(guò)應用編程接口的普遍支持, 可以很容易地嵌入到其他的應用之中, 所有數據庫相關(guān)的底層操作都是由Berkeley DB的庫函數來(lái)完成。最新的Berkeley DB也提供了對XML進(jìn)行操作的服務(wù)。
如果你需要在應用程序中嵌入數據庫操作功能,而又追求較高的性能,那么Berkeley DB正對你的胃口。這也就是為什么Berkeley DB能夠得到Cisco等設備巨頭的青睞的原因。(限于篇幅,本部分文章有所節略,有興趣了解更多產(chǎn)品細節的讀者,請登錄www.cnw.com.cn。)
旅行提示:
商業(yè)模式:除了中小企業(yè),許多大企業(yè)也在使用開(kāi)源數據庫,這些大用戶(hù)往往是通過(guò)交納服務(wù)費來(lái)獲取所用產(chǎn)品全面的技術(shù)支持,這將在一定程度上改變軟件業(yè)的商業(yè)模式。
在傳統的軟件商業(yè)模式之下,用戶(hù)首先要支付價(jià)格不菲的許可證費用,但要獲得技術(shù)支持還要另交服務(wù)費。相反,許多開(kāi)源產(chǎn)品僅對技術(shù)服務(wù)收費。顯然,這種低成本的模式極具吸引力。在未來(lái),商業(yè)數據庫廠(chǎng)商也許會(huì )對這種模式進(jìn)行認真的研究,而對那些以許可證銷(xiāo)售為主要收入來(lái)源的廠(chǎng)商來(lái)說(shuō),肯定會(huì )造成巨大的影響。
第四站 體驗應用
中小企業(yè)的大餐
花10%的費用達到90%的效果,由于價(jià)格低廉,開(kāi)源數據庫最為中小企業(yè)所青睞,并不是所有的中小企業(yè)都能夠享受到這樣的免費大餐,開(kāi)源數據庫還是有那么一點(diǎn)門(mén)檻。
開(kāi)源數據庫最初大多是由開(kāi)發(fā)團體或開(kāi)發(fā)愛(ài)好者憑興趣創(chuàng )作而來(lái),產(chǎn)品中的很多設計針對了開(kāi)發(fā)者的偏好,但沒(méi)有照顧商業(yè)組織和技術(shù)力量薄弱的企業(yè),例如,MySQL目前的版本就不支持存儲過(guò)程、觸發(fā)器,以及視圖界面等功能。因此,要求中小企業(yè)有一定的技術(shù)力量,至少要有幾名學(xué)過(guò)數據庫的專(zhuān)業(yè)人才。
除了這點(diǎn)門(mén)檻以外,使用開(kāi)源數據庫可算是一馬平川了。開(kāi)源數據庫產(chǎn)品通常很容易上手,SQL(結構化查詢(xún)語(yǔ)言)是通用的數據庫語(yǔ)言,學(xué)過(guò)數據庫的人就能使用,產(chǎn)品可以從網(wǎng)上免費下載,管理工具和技術(shù)資料同樣可以網(wǎng)上下載,英語(yǔ)不好沒(méi)關(guān)系,有熱心人把產(chǎn)品自帶的產(chǎn)品說(shuō)明翻譯成中文的,而且網(wǎng)上交流開(kāi)源數據庫產(chǎn)品使用經(jīng)驗的地方也不少,幾個(gè)主流的產(chǎn)品很容易得到網(wǎng)上高手的指點(diǎn)。一些接受采訪(fǎng)的中小企業(yè)用戶(hù)告訴記者:“MySQL的維護很容易,任何工程師一經(jīng)培訓都能使用?!?div style="height:15px;">
除了中小企業(yè),很多網(wǎng)站也把開(kāi)源數據庫作為首選,論壇、BLOG、調查、搜索、郵件、發(fā)布系統,這些網(wǎng)站的主要應用系統都可以用開(kāi)源數據庫來(lái)支持。包括Yahoo、Google等大網(wǎng)站,使用的都是開(kāi)源數據庫,而國內的新浪、網(wǎng)易也是開(kāi)源數據庫的受益者 。