由于越來越多的企業負載正在遷移到NoSQL上,以利用非結構化數據以及可擴展性,更好的靈活性和低廉的成本。而Oracle(盡管他們在NoSQL和MySQL上也都有投資)對于這些新需求的響應并不是很好。
事實上,Oracle面對著更為糟糕的情況,即與企業級NoSQL興起并駕齊驅的是對于“數據庫響應負載”的企業級需求的興起。在“主/從”上創造一個雙關語(通常指的是復制),在以前無論廠商(如Oracle,Microsoft,IBM,SAP等)提供什么樣的“大數據”,企業都必須將自己的工作負載與之進行適配。而如今企業有理由要求“大型數據庫”提供擁有某些NoSQL關鍵功能的SQL RDBMS。
持續穩定正常的運行時間跨地區的分布式能力擴展,特別是寫擴展Burst/Flex:橫向擴展力與用戶和數據負載無關的穩定的DB性能在存儲不過載的情況下處理不同數據類型在不突破預算的情況下完成所有上述工作
當然,這里所做的假設是NoSQL可以處理上述所有內容——而這一假設可能過于理想。并不是所有的NoSQL DBMS都能處理上述需求,特別是在有硬件問題凸顯的情況下,預算就會超支了。
另一個更大的假設是:“非結構化數據”表明非確定的一致事務是必要的。企業將大部分工作負載部署在RDBMS數據庫上,究其原因就是因為這些數據庫保證了實時事務的一致性。
在你想要賺錢的時候,就使用SQL數據庫吧。但這是為什么呢?
RDBMS有著四十年的歷史,它已經讓每個人都知道數據庫要創建一致性事務。實際上,這稱之為“ACID規范”,而這是NoSQL數據庫無法提供的。換句話說,雖然NoSQL數據庫可以處理非結構化數據并有著很好的可擴展性,但是它們在實時維護所有數據庫節點的ACID規范,事務性,數據一致性以及參照完整性上卻是糟糕透頂。
因此,你可以部署NoSQL數據庫來省錢,但是當你想真正賺錢的時候,還是要使用SQL數據庫。
不過,是否存在折中的選擇呢?能否在獲得RDBMS的ACID事務性的同時兼具NoSQL數據庫的可擴展性和靈活性呢?像ClustrixDB這種可擴展的NewSQL數據庫就是不錯的選擇。
類似于ClustrixDB的數據庫可以處理很多下面的挑戰:
不同于主從架構,ClustrixDB是點對點架構。所有節點總是完全一致的,而且對于HA來說,數據在整個集群上至少要存儲兩次。不同于共享式存儲,CPU和內存,ClustrixDB是非共享的。每個節點都有自己的編譯器,查詢執行引擎,數據,和反映集群中所有數據位置的數據映射。傳入的查詢會分配至工作負載最低的節點,而編譯查詢片段則分配至駐存有數據的位置,從而實現數據移動最小化和并行處理最大化的目的。擴展是非常簡單的,通過添加線性擴展的讀寫節點即可。這稱之為‘Flex-Up’,而多個節點的添加刪除可以通過單個(非常)短暫的數據庫‘暫停’來實現。自動背景數據分配平衡可以處理高速攝取。可以認為在沒有任何DBA開銷和應用程序變更的情況下,它是‘透明自動分片的’ClustrixDB設計用于不間斷操作,它可以在沒有數據庫暫停或應用程序中斷的情況下處理在線模式變更和節點損失。總結
企業中非結構化數據的增加推動了NoSQL數據庫的應用,而且企業也正在要求他們的SQL數據庫具有和NoSQL類似的功能,比如:
可擴展,部署及可用性bursting/flexing增量定價大規模并行分布/無共享
擴展SQL數據庫所滿足的那些需求是無法從諸如Oracle,SQLServer,IBM等‘大型數據庫’廠商獲得支持的。