評論(0

非關係型資料庫

標籤: 暫無標籤

就像當年波士頓的愛國者為反抗英國重稅的行動一樣,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替代者的準備,現在依然在使用開源資料庫。
他認為這場革命目前仍然需要等待。
上一篇[民意測驗]    下一篇 [WSRP]

相關評論

同義詞:暫無同義詞