原標題:傳統(tǒng)關系型數(shù)據(jù)庫、NoSQL、NewSQL,三者如何在云時代共處?
數(shù)據(jù)已經(jīng)是當下及未來最重要的生產(chǎn)資料,而伴隨數(shù)據(jù)價值的不斷提升,以及數(shù)據(jù)的爆炸式增長,數(shù)據(jù)庫作為數(shù)據(jù)存儲的重要載體,正在迎來變化。傳統(tǒng)的關系型數(shù)據(jù)庫越來越積極地擁抱未來,新型云原生的數(shù)據(jù)庫架構備受關注。
那么,關系型數(shù)據(jù)庫的未來走向如何?新型數(shù)據(jù)庫架構又有哪些?誰才是未來?不要著急下一個結論,本文在深入探討每一種數(shù)據(jù)庫優(yōu)劣勢的基礎上,結合未來,做一個全面的梳理。
關系型數(shù)據(jù)庫老矣?
關系型數(shù)據(jù)庫從出現(xiàn)至今,幾十年時間里一直是數(shù)據(jù)庫領域的佼佼者。
根據(jù)全球較為權威的DB-Engines公布的數(shù)據(jù)庫統(tǒng)計排名,截至2018年6月,排名前6位的數(shù)據(jù)庫,僅有排名第5的MongoDB是文檔型數(shù)據(jù)庫,其余全部是關系型數(shù)據(jù)庫,且前3位所占有的比重遠領先于其它數(shù)據(jù)庫。 關系型數(shù)據(jù)庫在經(jīng)過大數(shù)據(jù)、NoSQL及NewSQL等新興技術的輪番轟炸后依然堅挺,這與其固有的優(yōu)勢密不可分。
總結起來,主要體現(xiàn)在對開發(fā)、運維、系統(tǒng)這三個方面上的重大影響上。
1、開發(fā)優(yōu)勢
對于開發(fā)人員來說,關系型數(shù)據(jù)庫的首要優(yōu)勢是面向SQL。
SQL是關系型數(shù)據(jù)庫的結構化查詢語言,雖然不同的關系型數(shù)據(jù)庫有不同的SQL方言,但基于ANSI標準的SQL是大部分數(shù)據(jù)庫支持的。SQL是面向數(shù)據(jù)庫的訪問語言,可以非常方便地對數(shù)據(jù)庫進行增、刪、改、查以及授權和管理。而且SQL的查詢靈活度非常高,可以十分便捷地在聯(lián)機事務處理(OLTP)與聯(lián)機分析處理(OLAP)之間轉換。 另外,SQL是應用開發(fā)工程師必須掌握的一門編程語言,流行度非常高,對于任何公司而言,招聘到一個完全不會寫SQL的應用開發(fā)工程師的概率非常小。因此,SQL極大地降低了招聘開發(fā)人員的成本。 除了SQL語言本身,各種開發(fā)語言對關系型數(shù)據(jù)庫的支持也十分完善。
以Java為例,JDBC是Java語言訪問數(shù)據(jù)庫的標準接口,各個關系型數(shù)據(jù)庫廠商均提供了實現(xiàn)JDBC接口的驅動程序。使用Java語言進行開發(fā)的工程師無需感知不同關系型數(shù)據(jù)庫間的差異,只要根據(jù)JDBC接口編程即可。
2、運維優(yōu)勢
關系型數(shù)據(jù)庫由于存在時間長久,因此針對每一種常見的關系型數(shù)據(jù)庫,都能比較容易地招聘到相應的數(shù)據(jù)庫管理員(DBA),以保證數(shù)據(jù)庫的穩(wěn)定性、完整性、安全性、并通過監(jiān)控和分析關系型數(shù)據(jù)庫的系統(tǒng)瓶頸提升設計的合理性。 成熟的關系型數(shù)據(jù)庫擁有完善的生態(tài)圈,可以保證用于實現(xiàn)數(shù)據(jù)備份、性能監(jiān)測分析等功能的配套工具能夠正常使用。規(guī)模較大的企業(yè)以及重要業(yè)務系統(tǒng)一般都需要專門的DBA進行運維工作。
3、系統(tǒng)優(yōu)勢
只有時間才是檢驗技術是否成熟與穩(wěn)定的標準。
關系型數(shù)據(jù)庫經(jīng)歷了幾十年的考驗,能夠應對超大規(guī)模的使用需求,其存儲引擎也十分成熟。基于MVCC的數(shù)據(jù)庫引擎在性能和正確性上能做到很好的平衡,并且能通過B+Tree索引大幅提升查詢的效率。面對數(shù)據(jù)庫這樣的關鍵組件,謹慎選用是架構師們需要十分注意的。 基于ACID的事務是關系型數(shù)據(jù)庫帶給應用系統(tǒng)的又一次強力保障。
ACIDACID是數(shù)據(jù)庫事務能夠正確執(zhí)行的四個基本要素的首字母,分別指代:原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持久性(Durability)。
只有支持事務的數(shù)據(jù)庫才能最大限度地保證數(shù)據(jù)的正確性和完整性。
不過,盡管關系型數(shù)據(jù)庫的性能和訪問承載能力在面向單一數(shù)據(jù)節(jié)點的企業(yè)級應用時代是無可挑剔的。但在訪問量和數(shù)據(jù)量急劇增長的今天,關系型數(shù)據(jù)庫已經(jīng)很難再像以前那樣作為大規(guī)模系統(tǒng)的底層支撐了,甚至成為了應用系統(tǒng)的瓶頸。
關系型數(shù)據(jù)庫的不足主要體現(xiàn)在:單節(jié)點并發(fā)訪問量受限、單節(jié)點數(shù)據(jù)承載量受限、分布式事務性能衰退嚴重。原因歸根結底是設計初衷有一定的問題。它并非分布式的產(chǎn)物,對分布式系統(tǒng)天生不友好,因此它很難適應互聯(lián)網(wǎng)的架構模型。面對可以隨時彈性擴容的無狀態(tài)服務,使用關系型數(shù)據(jù)庫已經(jīng)略顯笨重。
另辟蹊徑的NoSQL數(shù)據(jù)庫
隨著關系型數(shù)據(jù)庫的不足之處越來越明顯地被暴露出來,NoSQL數(shù)據(jù)庫出現(xiàn)了。
NoSQL數(shù)據(jù)庫的目的并不是取代SQL數(shù)據(jù)庫,而是實現(xiàn)“Not Only SQL”,提供SQL之外的另一種選擇。NoSQL 通常不保證ACID,同時采用分布式架構,具有很強的擴展性,這種特點使得NoSQL數(shù)據(jù)庫適應于許多需要支持大規(guī)模、高并發(fā)、海量數(shù)據(jù)存儲分析的新時代業(yè)務。
NoSQL數(shù)據(jù)庫有很多種分類,大致包括鍵值數(shù)據(jù)庫、文檔數(shù)據(jù)庫、列族數(shù)據(jù)庫以及圖數(shù)據(jù)庫等,可以應對各式各樣的場景。
鍵值數(shù)據(jù)庫的代表是Redis。Redis在很多場景下都作為緩存使用,但它也同樣提供了落盤功能。在面對通過主鍵進行查詢的場景,Redis的效率非常高。
文檔數(shù)據(jù)庫的代表是MongoDB。文檔模型與面向對象的數(shù)據(jù)表達方式更加接近,它擁有自由度極高的Schema模型,可以方便地與JSON數(shù)據(jù)進行映射。
列族數(shù)據(jù)庫的代表是Hadoop大數(shù)據(jù)體系中的HBase,它是專門用于處理海量數(shù)據(jù)的分布式數(shù)據(jù)庫。 圖數(shù)據(jù)庫是用于處理圖關系的數(shù)據(jù)庫,一般用于特殊場景。
NoSQL數(shù)據(jù)庫種類繁多,應用場景天差地別。不過有一個共性,那就是大多對分布式數(shù)據(jù)庫所需的分片和數(shù)據(jù)遷移功能支持得非常好,在海量數(shù)據(jù)和高并發(fā)支持方面,性能強于傳統(tǒng)的關系型數(shù)據(jù)庫。對于這樣的場景,NoSQL數(shù)據(jù)庫會是非常合適的選擇。
不過,NoSQL數(shù)據(jù)庫也存在一些不足。比如,不同的NoSQL數(shù)據(jù)庫都有自己的查詢語言,相比于SQL,制定應用程序標準接口會更加困難,并且大多數(shù)NoSQL數(shù)據(jù)庫不提供ACID事務操作,因此如果企業(yè)的核心業(yè)務對數(shù)據(jù)一致性要求嚴格,在選擇NoSQL數(shù)據(jù)庫時需要慎重。正如NoSQL數(shù)據(jù)庫的定義所說,它們是基于SQL的關系型數(shù)據(jù)庫的有益補充,兩者是相輔相成,而非相互替代關系。
NewSQL冉冉升起
由于SQL和ACID事務實在太深入人心,而對分布式數(shù)據(jù)庫的需求又前所未有的旺盛,因此另一種數(shù)據(jù)庫NewSQL就應運而生了。
NewSQL是各種具有分布式可擴展功能的數(shù)據(jù)庫的簡稱,NewSQL繼承了NoSQL對海量數(shù)據(jù)的處理能力,同時還保持了傳統(tǒng)關系型數(shù)據(jù)庫對SQL和ACID事務的支持。NewSQL的關注重點在于混合式(Hybird)數(shù)據(jù)庫,更傾向于找尋不再區(qū)分OLTP和OLAP查詢的多模式數(shù)據(jù)庫構建方案。
2016年,Andrew Pavlo與Matthew Aslett發(fā)表了論文《What’s Really New with NewSQL?》其中將NewSQL劃分為三個大類,分別是:
新架構(NewArchitecture)
透明化分片中間件(Transparent Sharding Middleware)
云數(shù)據(jù)庫(Database-as-a-Service)
下面詳細講講這三大類:
1.新架構立足分布式
新架構NewSQL是全新的面向分布式架構而設計的數(shù)據(jù)庫系統(tǒng)。 該系統(tǒng)一般使用share-nothing架構,具有多節(jié)點并發(fā)控制、高度容錯的自動化數(shù)據(jù)副本復制、流量控制及分布式查詢處理等特征。由于它們是天生面向分布式多節(jié)點而設計的系統(tǒng),因此處理查詢優(yōu)化和節(jié)點間通信協(xié)議的能力更加出色。
舉例來說,NewSQL數(shù)據(jù)庫的多數(shù)據(jù)節(jié)點間可以直接通信,無需依賴中心節(jié)點。 不過由于采用了全新的架構設計方式和存儲引擎,并未經(jīng)過實踐驗證,因此企業(yè)的技術選型者們格外謹慎。同時,具有運維新一代NewSQL經(jīng)驗的工程師也鳳毛麟角,相比于關系型數(shù)據(jù)庫,NewSQL當前的使用者數(shù)量非常少。很多企業(yè)都會嘗試跟進新架構NewSQL,但尚未遷移至核心系統(tǒng)。
2.透明化分片中間件兼容性強
透明化分片中間件允許應用將數(shù)據(jù)分片寫入多數(shù)據(jù)節(jié)點,但數(shù)據(jù)節(jié)點仍然采用面向單數(shù)據(jù)節(jié)點的關系型數(shù)據(jù)庫。透明化分片中間件使用中心組件來路由數(shù)據(jù)操作請求、協(xié)調事務、管理數(shù)據(jù)分布以及復制數(shù)據(jù)副本。整個集群對外是一個邏輯實例,應用往往無需改動即可平滑使用。
透明化分片中間件的核心優(yōu)勢是兼容性強,它可以低成本地在系統(tǒng)現(xiàn)有的單機關系型數(shù)據(jù)庫與分片中間件之間切換,而無須開發(fā)者進行任何代碼上的改動。
透明化分片中間件NewSQL能夠充分合理地在分布式場景下利用傳統(tǒng)關系型數(shù)據(jù)庫的計算和存儲能力,而非實現(xiàn)一個全新的關系型數(shù)據(jù)庫。
因此,其既可以利用傳統(tǒng)關系型數(shù)據(jù)庫的穩(wěn)定性和兼容性,又可以在其基礎之上增加分布式場景的處理方法。“在原有基礎上增加,而非顛覆”是這類NewSQL產(chǎn)品的核心功能。 由于基于單數(shù)據(jù)節(jié)點的傳統(tǒng)關系型數(shù)據(jù)庫是面向磁盤設計的,對于基于內存的存儲管理以及并發(fā)控制不如重新設計的面向分布式的新架構NewSQL高效。另外,SQL解析、查詢優(yōu)化等工作在中間件和數(shù)據(jù)庫中將會重復進行,也會使整體運行效率略遜于新架構NewSQL。
在國內的大中型互聯(lián)網(wǎng)企業(yè)中,這類NewSQL十分流行,每個公司基本都有自己的數(shù)據(jù)庫中間件。但由于和公司內部的業(yè)務系統(tǒng)耦合較重,因此成熟的開源產(chǎn)品較少。目前進入Apache基金會孵化器的Apache ShardingSphere是這類產(chǎn)品的代表。
3.云數(shù)據(jù)庫無需考慮細節(jié)
最后一種類型的NewSQL是由云計算公司所提供的云數(shù)據(jù)庫產(chǎn)品。
云數(shù)據(jù)庫的使用方無須自行維護數(shù)據(jù)庫及其硬件,而可以將全部數(shù)據(jù)托管至云平臺所提供的服務。使用方通過數(shù)據(jù)庫的URL連接至云端數(shù)據(jù)庫,并通過API或操作儀表盤去操作和監(jiān)控系統(tǒng)。 云數(shù)據(jù)庫使用成本最低,工程師無須考慮數(shù)據(jù)庫的任何細節(jié)問題,對中小企業(yè)來說是理想的解決方案,不過對于巨大數(shù)據(jù)體量的公司來說,采用前兩種NewSQL的開源或自研方案更加合適。 NewSQL雖然尚未成熟,但確實是面向未來的正確嘗試。三種NewSQL的關注點各不相同:
新架構數(shù)據(jù)庫的關注點是徹底革新;
透明化分片中間件數(shù)據(jù)庫的關注點是增量;
云數(shù)據(jù)庫的關注點是屏蔽用戶使用細節(jié)。
雖然不同類型的數(shù)據(jù)庫各有千秋,但它們的核心功能是類似的。 而無論對于哪一種NewSQL而言,混合式(Hybird)數(shù)據(jù)庫都將是其未來的發(fā)展方向,當不再區(qū)分OLTP和OLAP時,開發(fā)成本將會極大地降低。
百度智能云作為業(yè)內佼佼者,能夠提供從關系型數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫,到NewSQL,以及數(shù)據(jù)庫管理服務等一整套數(shù)據(jù)庫產(chǎn)品及相關服務,幾乎涵蓋各個領域,能夠幫助用戶從容應對已經(jīng)到來的數(shù)據(jù)智能時代。
總結全文,尺有所短寸有所長,在數(shù)據(jù)爆發(fā)式增長的今天,并不是誰取代誰的關系,而是要學會綜合運用各種技術,對癥下藥,讓最合適的技術應用在最匹配的場景中,這樣才能在新時代游刃有余。
- 世間將再無松下電視:松下官宣解散家電子公司并徹底放棄電視機業(yè)務
- 雅迪集團與南都電源簽署協(xié)議:攜手共繪固態(tài)電池未來藍圖
- 美媒聚焦比亞迪“副業(yè)”:電子代工助力蘋果,下個大計劃瞄準AI機器人
- 微信零錢通新政策:銀行卡轉入資金提現(xiàn)免手續(xù)費引熱議
- 消息稱塔塔集團將收購和碩印度iPhone代工廠60%股份 并接管日常運營
- 蘋果揭秘自研芯片成功之道:領先技術與深度整合是關鍵
- 英偉達新一代Blackwell GPU面臨過熱挑戰(zhàn),交付延期引發(fā)市場關注
- 馬斯克能否成為 AI 部部長?硅谷與白宮的聯(lián)系日益緊密
- 余承東:Mate70將在26號發(fā)布,意外泄露引發(fā)關注
- 無人機“黑科技”亮相航展:全球首臺低空重力測量系統(tǒng)引關注
免責聲明:本網(wǎng)站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內容可能涉嫌侵犯其知識產(chǎn)權或存在不實內容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。