反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替代者的準備,現在依然在使用開源資料庫。
他認為這場革命目前仍然需要等待。
相關詞條
-
關係資料庫
關係資料庫,是建立在關係資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據,同時也是一個被組織成一組擁有正式描述性的表格,該形式的...
基本概念 歷史 結構 集合 約束 -
關係型資料庫管理系統FOXBASE使用教程
資料庫檔案的建立與數據錄入3.1建立一個新的資料庫檔案3.2定義資料庫檔案的結構3.3數據錄入3.4資料庫檔案的打開與關閉3.4.1資料庫檔案的打開3....
內容介紹 作品目錄 -
資料庫
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今五十年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管...
基本簡介 基本結構 主要特點 結構種類 發展簡史 -
DB2資料庫
DB2是IBM一種分散式資料庫解決方案。說簡單點:DB2就是IBM開發的一種大型關係型資料庫平台.它支持多用戶或應用程式在同一條SQL 語句中查詢不同d...
-
資料庫技術
資料庫技術是信息系統的一個核心技術。是一種計算機輔助管理數據的方法,它研究如何組織和存儲數據,如何高效地獲取和處理數據。
概述 產生背景 發展套用 基本概念 技術 -
資料庫工程師
資料庫工程師(Database Engineer),是從事管理和維護資料庫管理系統(DBMS) 的相關工作人員的統稱,他屬於運維工程師的一個分支,主要負...
主要職責 技術分工 技術能力 性格要求 等級 -
範式[資料庫術語]
設計範式(範式,資料庫設計範式,資料庫的設計範式)是符合某一種級別的關係模式的集合。構造資料庫必須遵循一定的規則。在關係資料庫中,這種規則就是範式。關係...
內容簡介 設計範式 範式說明 範式套用 -
資料庫軟體
資料庫軟體指的是以一定方式儲存在一起、能為多個用戶共享、具有儘可能小的冗餘度、與應用程式彼此獨立的數據集合。
Oracle 微軟開發 DB2 SQL體系 Sybase -
Oracle安全實踐:來自第三方的關係型資料庫安全指南
《Oracle安全實踐:來自第三方的關係型資料庫安全指南》是科學出版社出版的圖書。
內容簡介 作者簡介 目錄