對SQL說不!NoSQL的數據庫技術革命

【51CTO.com快譯自7月6日外電頭條】NoSQL組織上個月在舊金山的行動讓人聞到了數據庫革命的味道,好像一個現代IT業版的波士頓傾茶事件正在策劃之中。

 

在NoSQL運動的最新一次聚會中,來自世界各地的150人擠滿了CBS Interactive的一間會議室。

就像當年波士頓的愛國者爲反抗英國重稅的行動一樣,NoSQL的支持者們從各地涌來,分享他們如何推翻緩慢而昂貴的關係數據庫的暴政,怎樣使用更有效和更便宜的方法來管理數據。51CTO.com之前曾有過一篇《關係數據庫的末日是否已經來臨》文章指出,雲計算可能會爲數據庫技術的發展帶來新的契機,如果想在雲中獲得豐富而隨需應變的可伸縮性,你需要一個非關係數據庫。

“關係型數據庫給你強加了太多東西。它們要你強行修改對象數據,以滿足RDBMS (relational database management system,關係型數據庫管理系統)的需要,”Java工具提供商SpringSource公司的首席工程師Jon Travis說,他是本次集會的10位發言人之一,在他看來,基於NoSQL的替代方案“只是給你所需要的”。

開源的興起

反SQL運動的主要倡導者都是Web和Java開發者,他們中許多人都在創業的初期歷經了資金短缺並因此與Oracle說再見,然後效仿Google和Amazon的道路建設起自己的數據存儲解決方案,並隨後將自己的成果開源發佈。現在,他們的開源數據商店管理着成百TB甚至PB的數據,由於Web 2.0和雲計算的興起,無論從技術上還是從經濟上他們都無需再返回從前,甚至連想也不用想。

“Web 2.0的企業應該抓住機會,他們需要可擴展性,”總部設在倫敦的NoSQL會議組織者Johan Oskarsson說,他任職於著名的音樂網站Last.fm,其他的大多數與會者也都是網絡開發者。

Oskarsson說,許多人甚至拋棄了MySQL開源數據庫這個長期以來Web 2.0的寵兒,而改由NoSQL的方案來替代,因爲優勢實在是引人注目。51CTO.com之前曾報道過MySQL創始人宣佈創建開源數據庫聯盟的消息,過度的商業化是MySQL失去原來的優勢。

例如Facebook建立了自己的Cassandra數據商店並且在其網站上重點推出一項新的搜索功能,沒有使用到現有的MySQL數據庫。據Facebook的工程師Avinash Lakshma介紹,Cassandra僅用0.12毫秒就可以寫入50GB的數據,比MySQL快了超過2500倍。Google也開始公測他們的雲數據庫Fusion Tables,這是一個和傳統數據庫完全不同的數據庫,主要優勢能夠簡單的解決關係型數據庫中管理不同類型數據麻煩,以及排序整合的常見操作的性能問題等。

什麼是NoSQL(從技術上說)?

從這些NoSQL項目的名字上看不出什麼相同之處:Hadoop、Voldemort、Dynomite,還有其它很多。

但是,它們通常在某些方面相同:

不要叫它們數據庫。Amazon.com的首席技術官Werner Vogels將他們的重要的Dynamo系統稱作“高可用性的鍵值商店”。Google將自己的BigTable稱作“管理結構化數據的分佈式存儲系統”,在51CTO.com之前的外電《雲服務顛覆開發傳統觀念》中曾提到,Google的Big Table不是SQL數據庫,原因是SQL數據庫支持的一些功能實在難以進行分割,這與我們跨機器存儲數據的想法無法結合。它們都是許多NoSQL追隨者的效仿模式。

它們可以處理超大量的數據。比如Zvents公司以BigTable模式搭建的開源數據庫Hypertable,據Zvents工程師Doug Judd介紹,它可以每天在搜索引擎中寫入10億單元數據。

另外,BigTable與其姊妹技術MapReduce相結合,每天可以處理多達20PB的數據。

“毫無疑問,數據量越來越巨大也讓人們尋找其他的數據庫替代技術,”SpringSource的Travis說。

它們運行在便宜的PC服務器集羣上。PC集羣擴充起來非常方便並且成本很低,避免了“sharding”操作的複雜性和成本。

Google曾表示一個BigTable的大集羣可以管理數千臺服務器上多達6PB的數據。

“Oracle會告訴你需要購買一些硬件然後正確配置Oracle RAC,然而用其他的神奇軟件你也可以達到相同的可擴展性。但是兩者的開銷可是天差地別。”SpringSource首席技術官Javier Soltero說。

它們擊碎了性能瓶頸。NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數據轉換成SQL友好格式的時間,執行速度變得更快。

“SQL並非適用於所有的程序代碼,”數據庫分析師Curt Monash說。對於那些繁重的重複操作的數據,SQL值得花錢。但是當數據庫結構非常簡單時,SQL可能沒有太大用處。

Adobe公司資深計算機科學家Raffaele Sena說,當一年半前Adobe準備重新更新ConnectNow網絡協作服務時,正是由於上面的理由,他們決定不採用關係型數據庫。

Adobe決定使用Terracotta 提供的Java集羣軟件,管理Java格式的數據,Sena說,這使ConnectNow的性能提高到前一版本的2至3倍。

沒有過多的操作。雖然NoSQL的支持者也承認關係數據庫提供了無可比擬的功能集合,而且在數據完整性上也發揮絕對穩定,他們同時也表示,企業的具體需求可能沒有那麼多。

以Adobe的ConnectNow爲例,Sena說,當用戶在線時它會不通過數據庫而製作三份會話數據,在離線後刪除。“因此我們並不需要數據庫,因爲具體所需要的數據是在內存中的,”他說。

Bootstrap支持

因爲NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。這一點它們與大多數開源項目一樣,不得不從社區中尋求支持。

但是一些人承認,沒有正式的官方支持,萬一出了差錯會是可怕的,至少很多管理人員是這樣看。

“我們確實需要做一些說服工作,”Adobe的Sena承認,“但基本在他們看到我們的第一個原型運行良好之後,我們就能夠說服他們,這是條正確的道路。”

“大多數大型企業已經習慣於使用關係型數據庫管理系統。因此他們會想爲什麼要改變呢?”Monash說。比如MapReduce和類似的項目“對企業有意。但是在具體使用時,它很可能會和一個分析DBMS(數據庫管理系統)相集成。”

即使NoSQL的組織者Oskarsson也承認,就算是他自己的公司Last.fm也還沒有做好轉爲NoSQL替代者的準備,現在依然在使用開源數據庫。
他認爲這場革命目前仍然需要等待。

就像51CTO.com《探尋關係數據庫和ORM的最佳替代者》一文所指出的,或許RDBMS仍是一個很難移除的角色,可能是由於這個角色擔當着重要的任務,有着重要的目的;但這是一個人人都想擁抱簡單的時代,他們可能會願意完全擺脫一個複雜的解決方案。沒有人能阻擋關係數據庫的終結和新的解決方案的出臺。“的確,NoSQL對大型企業來說還不是主流,”Oskarsson說,“但是,一兩年之後很可能就會變個樣子。”

轉:http://jjf88483042.blog.163.com/blog/static/99113974201092755024382/

發佈了46 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章