非關係型資料庫

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

相關詞條

熱門詞條

聯絡我們