《NewSQL與NoSQL的討論》

leonarding發表於2014-02-23
                                                                     《NewSQL與NoSQL的討論》
       現今,完全放棄傳統關係資料庫並忙於使用新興的NoSQL資料庫可能還不是一個合理的選擇。相反改進後的SQL(結構化查詢語言)系統可能會對一些技術細節進行調整。在8月23日加利福尼亞聖荷西市舉行的NoSQL 2011大會上分散式資料庫公司VoltDB的技術長Michael Stonebraker表達了上述的觀點。
       Stonebraker所在公司本身提供的是基於NewSQL的資料庫軟體。他所倡導的新體系架構比傳統供應商提供的資料庫軟體可承受更大的負載。Stonebraker是Ingres和Postgres資料庫的總設計師。他還是Vertica(面向列資料庫公司)的共同創始人,惠普已在2月份對Vertica進行了收購。
       相對於NoSQL蓬勃發展的情況基於SQL的關聯式資料庫系統確實顯得有些死氣沉沉。但這是資料庫廠商的錯,而不是SQL的錯。
Stonebraker指出,當今大多數商業資料庫軟體已經在市場上存在30年或更長時間。他們的設計並沒有圍繞自動化、資料沉重性以及事務性環境。同時在這幾十年中不斷髮展出的新功能並沒有想象中的那麼好。
       Stonebraker表示資料庫系統的滯後通常可歸結於多項因素。諸如以恢復日誌為目的的資料庫系統維持的緩衝區池,以及管理鎖定和鎖定的資料欄位。在VoltDB的測試中發現以上這些行為消耗系統96%的資源。


        許多新興的NoSQL資料庫的普及,例如MongnDB和Cassandra。這很好的彌補了傳統資料庫系統的侷限性。顧問Dan McCreary表示關聯式資料庫的缺點刺激了開發人員建立出NoSQL資料庫。關聯式資料庫不是很靈活,其基本架構設計還是穿孔卡片時代,這反映了嚴格的資料建模方式。如果一個組織需要新增另一列的資料,他們必須改變架構,這可能相當棘手。建模過程中建立的關係表(實體模型)也並不總是能夠準確的反應資料在現實世界中是如何存在的。
         McCreary同時指出SQL資料庫的另一個問題是其不具備很好的伸縮性。當資料增長超過一臺伺服器所能承受的極限時,就必須分享或分割資料到多臺伺服器上,跨越多臺伺服器是一個複雜的過程。此外如外部連結帶來的問題。例如多個表中資料的融合,跨越伺服器執行一些操作可能會產生一些問題。
Stonebraker認為NoSQL資料庫可提供良好的擴充套件性和靈活性,但他們也有自己的不足。由於不使用SQL,NoSQL資料庫系統不具備高度結構 化查詢等特性。NoSQL其他的問題還包括不能提供ACID(原子性、一致性、隔離性和耐久性)的操作。另外不同的NoSQL資料庫都有自己的查詢語言, 這使得很難規範應用程式介面。


           Stonebraker表示NewSQL可提供SQL獨有的一些特性,同時還具備NoSQL的擴充套件性。NewSQL具備一個新的架構設計,他釋放了主記憶體 執行的資料庫中消耗系統資源的緩衝池。VoltDB系統使用了NewSQL創新的體系架構,在執行交易時可比傳統關聯式資料庫快45倍。VoltDB可擴充套件 伺服器數量為39個,並可以每秒處理160萬個交易(300個CPU核心)。而具備同樣處理能力的Hadoop則需要更多的伺服器。例如做相同的任 務,VoltDB需要20個節點的任務,Hadoop執行起來則需要1000個節點。
           DoubleClick創始人和MongoDB創始人之一Dwight Merriman與Stonebraker一致認為SQL本身並不是導致可擴充套件性和低效能的根源。但Dwight Merriman同時表示在未來的歲月裡,可能不是所有人都願意使用SQL分析和查詢他們的資料。因為對於程式設計師來說,基於SQL的儲存過程是特別困難的工作。
最後McCreary也同意Stonebraker的看法,NoSQL沒有一個統一的查詢語言,這將拖慢NoSQL的發展。但他建議在新的資料庫系統統一查詢工具使用一個SQL以外的語言。如XQuery,一個XML文件查詢語言。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26686207/viewspace-1086513/,如需轉載,請註明出處,否則將追究法律責任。

相關文章