關注'非關係型數據庫'

 就像當年波士頓的愛國者爲反抗英國重稅的行動一樣,NoSQL的支持者們從各地涌來,分享他們如何推翻緩慢而昂貴的關係數據庫的暴政,怎樣使用更有效和更便宜的方法來管理數據,他們開始對SQL說不!

開源的興起
       反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替代者的準備,現在依然在使用開源數據庫。
他認爲這場革命目前仍然需要等待。

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