在最近的一篇文章中,我們討論了NoSQL和新聞生活的基本區(qū)別?,F(xiàn)在讓我們通過觀察開發(fā)人員真正關(guān)心的東西來分析差異:
我們可以用NoSQL解決什么問題?
同樣重要的是,NoSQL在哪些方面不適合使用?
不同的方法(NoSQL和NewSQL)可以在哪些方面顯示出它們的優(yōu)勢?
讓我們回顧一下NoSQL和NewSQL之間的四個明顯區(qū)別,并回顧一些使用NoSQL技術(shù)但可能不是最佳選擇的用例。
NoSQL數(shù)據(jù)庫的四個缺點
別誤會,NoSQL數(shù)據(jù)庫對于許多工作負載和應(yīng)用程序非常有利,但它的缺點在四個方面很明顯。
擴展性
當(dāng)實施NoSQL產(chǎn)品以滿足谷歌、臉書和推特等互聯(lián)網(wǎng)公司的可擴展性要求時,它們開始吸引注意力。這些公司不得不處理來自無數(shù)來源的大量非結(jié)構(gòu)化數(shù)據(jù):網(wǎng)絡(luò)搜索、移動設(shè)備、用戶狀態(tài)更新、評論流等等。
在這些用例中,最重要的考慮是可伸縮性:數(shù)據(jù)庫必須大規(guī)模擴展。SQL數(shù)據(jù)庫的僵化模式和交互性被視為桎梏,在傳統(tǒng)RDBMS上擴展的成本也被認為是不可行的。
向外擴展廉價硬件產(chǎn)品的能力至關(guān)重要。如果您的用例需要擴展無限的數(shù)據(jù)源,NoSQL可能是正確的選擇——除非您想要實時操作數(shù)據(jù)。
盡管傳統(tǒng)的關(guān)系數(shù)據(jù)庫系統(tǒng)提供了擴展選項,但成本非常高,許多NewSQL系統(tǒng)都是為了解決可伸縮性挑戰(zhàn)而設(shè)計的,這些挑戰(zhàn)首先通過使用NoSQL來解決,同時保留了傳統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)的事務(wù)性和交互性。
一個很好的替代方案是內(nèi)存中的大規(guī)模并行SQL關(guān)系數(shù)據(jù)庫,它在廉價的硬件產(chǎn)品上線性擴展。數(shù)據(jù)庫應(yīng)該是云友好的,并且可以擴展以滿足云操作的需要。它應(yīng)該設(shè)計為高性能、低延遲、無共享、本地集群和云友好的架構(gòu),以實現(xiàn)高可用性、冗余性和容錯性。
可用
大多數(shù)NoSQL系統(tǒng)都是為可用性而設(shè)計的。
Apache Cassandra做出的這一著名設(shè)計決策是基于這樣一種觀點,即數(shù)據(jù)始終可訪問比數(shù)據(jù)立即正確更重要。畢竟原因是,誰真的在乎一條Tweet是不是按照發(fā)布的順序?qū)崟r顯示?最終,它會以正確的順序顯示,但不必立即顯示。
在一些用例中,最終的一致性是可以接受的。但是在很多情況下,比如你需要馬上做決定的時候…
讓移動用戶的訪問通過。
分配有限和稀缺的資源。
處理財務(wù)。
……歐共體(和NoSQL)不是一個好的選擇。
一些NewSQL系統(tǒng)允許用戶降低一致性級別。例如,MemSQL支持弱隔離(ACID中的“I”)來提高查詢延遲。為了可用性而犧牲正確答案對于分析型(OLAP)工作負載可能是有意義的,但是對于事務(wù)型(OLTP)工作負載就變得無關(guān)緊要了。
一致性(例如,與ACID兼容的事務(wù)、正確答案)
NoSQL系統(tǒng)是為可用性而設(shè)計的(見上文)。這個選擇意味著他們不能提供CAP定理>:
因此,NoSQL系統(tǒng)選擇應(yīng)用程序——它們是可用性和分區(qū)容錯。這使得NoSQL不適合要求高度一致性的應(yīng)用程序或用例:
計費。
權(quán)限管理,運營支持(電信公司)。
最后一塊錢(廣告技術(shù),游戲)。
SLA(譯者注:Service Level Agreement)管理,即會話管理,是提供服務(wù)的企業(yè)與客戶之間就服務(wù)的質(zhì)量、標(biāo)準(zhǔn)和性能達成的協(xié)議或合同。
交易驗證、欺詐檢測、投標(biāo)和報價管理。
傳感器管理。
一個典型的CAP定義說:你不可能同時滿足這三個特征。
一個更實際的思考CAP的方法:面對網(wǎng)絡(luò)分區(qū),你不可能一直擁有完美的一致性和100%的可用性。你要有相應(yīng)的規(guī)劃。
快速請求-響應(yīng)應(yīng)用程序
現(xiàn)代請求和響應(yīng)式應(yīng)用大量出現(xiàn):
驗證用戶余額時允許手機連接。
以最好的價格交易。
向成千上萬的潛在用戶展示移動廣告,而不影響廣告商的廣告預(yù)算。
為電信運營商管理嚴(yán)格的SLa。
交易審批前檢測欺詐性刷卡。
這些事件每天在世界各地發(fā)生數(shù)百萬次。電信、金融服務(wù)、網(wǎng)絡(luò)游戲、廣告技術(shù)等行業(yè)的供應(yīng)商需要適應(yīng)這些事件的變化和速度。他們需要一個可擴展的、事務(wù)一致的解決方案。
結(jié)束。
相關(guān)建議:
1.《nosql數(shù)據(jù)庫有哪些 4種不適合用NoSQL數(shù)據(jù)庫的場景》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《nosql數(shù)據(jù)庫有哪些 4種不適合用NoSQL數(shù)據(jù)庫的場景》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/shehui/1472203.html