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