新聞中心
?在互聯(lián)網(wǎng)技術(shù)發(fā)展的今天,相信大家都對分布式數(shù)據(jù)庫表示出了濃厚的興趣,并且不約而同地問了我這樣一個問題:啥是分布式數(shù)據(jù)庫?更有“愛好學習”的朋友希望借此展現(xiàn)出“勤學好問”的品德,進而補充道:“這是哪個大廠出的產(chǎn)品?”

菏澤ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
好吧,我的朋友,你們真的戳中了我的笑點。但笑一笑后,我不禁陷入了思考:為什么分布式數(shù)據(jù)庫在大眾,甚至專業(yè)領(lǐng)域內(nèi)認知如此之低呢?
原因我大概可以總結(jié)為兩點:數(shù)據(jù)庫產(chǎn)品特點與商業(yè)氛圍。
首先,數(shù)據(jù)庫產(chǎn)品的特點是抽象度高。用戶一般僅僅從使用層面接觸數(shù)據(jù)庫,知道數(shù)據(jù)庫能實現(xiàn)哪些功能,而不關(guān)心或者很難關(guān)心其內(nèi)部原理。而一些類型的分布式數(shù)據(jù)庫的賣點正是這種抽象能力,從而使用戶覺得應用這種分布式化的數(shù)據(jù)庫與傳統(tǒng)單機數(shù)據(jù)庫沒有明顯的差別,甚至更加簡單。
其次,數(shù)據(jù)庫的商業(yè)氛圍一直很濃厚。數(shù)據(jù)庫產(chǎn)品高度抽象且位置關(guān)鍵,這就天然成為資本追逐的領(lǐng)地。而商業(yè)化產(chǎn)品和服務(wù)的賣點就是其包含支撐服務(wù),而且許多商業(yè)數(shù)據(jù)庫最賺錢的部分就是提供該服務(wù)。因此這些產(chǎn)品有意無意地對終端用戶掩蓋了數(shù)據(jù)庫的技術(shù)細節(jié),而用戶有了這層商業(yè)保障,也很難有動力去主動了解內(nèi)部原理。
這就造成即使你工作中接觸了分布式數(shù)據(jù)庫,也沒有意識到它與過去的數(shù)據(jù)庫有什么不同。但“福報遲到,但不會缺席”——當由于對其原理缺乏必要認識,導致技術(shù)問題頻發(fā)時,用戶才會真正意識到它們好像類似,但本質(zhì)卻截然不同。
而隨著分布式數(shù)據(jù)庫逐步滲透到各個領(lǐng)域,用戶再也不能“傻瓜式”地根據(jù)特性選擇數(shù)據(jù)庫產(chǎn)品了。新架構(gòu)催生出來的新特性,促使使用者需要深入?yún)⑴c其中,并需要他們認真評估數(shù)據(jù)庫技術(shù)特點,甚至要重新設(shè)計自己的產(chǎn)品來與之更好地結(jié)合。
我是“歷史決定論”的忠實簇擁者,我會沿著分布式數(shù)據(jù)庫的發(fā)展脈絡(luò)來介紹它。相信你在讀完后,會對一開始的那個問題有自己的答案。那么現(xiàn)在我們從基本概念開始說起。
基本概念
分布式數(shù)據(jù)庫,從名字上可以拆解為:分布式+數(shù)據(jù)庫。用一句話總結(jié)為:由多個獨立實體組成,并且彼此通過網(wǎng)絡(luò)進行互聯(lián)的數(shù)據(jù)庫。
理解新概念最好的方式就是通過已經(jīng)掌握的知識來學習,下表對比了大家熟悉的分布式數(shù)據(jù)庫與集中式數(shù)據(jù)庫之間主要的 5 個差異點。
從表中,我們可以總結(jié)出分布式數(shù)據(jù)庫的核心——數(shù)據(jù)分片、數(shù)據(jù)同步。
1. 數(shù)據(jù)分片
該特性是分布式數(shù)據(jù)庫的技術(shù)創(chuàng)新。它可以突破中心化數(shù)據(jù)庫單機的容量限制,從而將數(shù)據(jù)分散到多節(jié)點,以更靈活、高效的方式來處理數(shù)據(jù)。這是分布式理論帶給數(shù)據(jù)庫的一份禮物。
分片方式包括兩種。
水平分片:按行進行數(shù)據(jù)分割,數(shù)據(jù)被切割為一個個數(shù)據(jù)組,分散到不同節(jié)點上。
垂直分片:按列進行數(shù)據(jù)切割,一個數(shù)據(jù)表的模式(Schema)被切割為多個小的模式。
2. 數(shù)據(jù)同步
它是分布式數(shù)據(jù)庫的底線。由于數(shù)據(jù)庫理論傳統(tǒng)上是建立在單機數(shù)據(jù)庫基礎(chǔ)上,而引入分布式理論后,一致性原則被打破。因此需要引入數(shù)據(jù)庫同步技術(shù)來幫助數(shù)據(jù)庫恢復一致性。
簡而言之,就是使分布式數(shù)據(jù)庫用起來像“正常的數(shù)據(jù)庫”。所以數(shù)據(jù)同步背后的推動力,就是人們對數(shù)據(jù)“一致性”的追求。這兩個概念相輔相成,互相作用。
當然分布式數(shù)據(jù)庫還有其他特點,但把握住以上兩點,已經(jīng)足夠我們理解它了。下面我將從這兩個特性出發(fā),探求技術(shù)史上分布式數(shù)據(jù)庫的發(fā)展脈絡(luò)。我會以互聯(lián)網(wǎng)、云計算等較新的時間節(jié)點來進行斷代劃分,畢竟我們的核心還是著眼現(xiàn)在、面向未來。
商業(yè)數(shù)據(jù)庫
互聯(lián)網(wǎng)浪潮之前的數(shù)據(jù)庫,特別是前大數(shù)據(jù)時代。談到分布式數(shù)據(jù)庫繞不開的就是 Oracle RAC。
Oracle RAC 是典型的大型商業(yè)解決方案,且為軟硬件一體化解決方案。我在早年入職國內(nèi)頂級電信行業(yè)解決方案公司的時候,就被其強大的性能所震撼,又為它高昂的價格所深深折服。它是那個時代數(shù)據(jù)庫性能的標桿和極限,是完美方案與商業(yè)成就的體現(xiàn)。
我們試著用上面談到的兩個特性來簡單分析一下 RAC:它確實是做到了數(shù)據(jù)分片與同步。每一層都是離散化的,特別在底層存儲使用了 ASM 鏡像存儲技術(shù),使其看起來像一塊完整的大磁盤。
這樣做的好處是實現(xiàn)了極致的使用體驗,即使用單例數(shù)據(jù)庫與 RAC 集群數(shù)據(jù)庫,在使用上沒有明顯的區(qū)別。它的分布式存儲層提供了完整的磁盤功能,使其對應用透明,從而達到擴展性與其他性能之間的平衡。甚至在應對特定規(guī)模的數(shù)據(jù)下,其經(jīng)濟性又有不錯的表現(xiàn)。
這種分布式數(shù)據(jù)庫設(shè)計被稱為“共享存儲架構(gòu)”(share disk architecture)。它既是 RAC 強大的關(guān)鍵,又是其“阿喀琉斯之踵”,DBA 坊間流傳的 8 節(jié)點的最大集群限制可以被認為是 RAC 的極限規(guī)模。
該規(guī)模在當時的環(huán)境下是完全夠用的,但是隨著互聯(lián)網(wǎng)的崛起,一場轟轟烈烈的“運動”將會打破 Oracle RAC 的不敗金身。
大數(shù)據(jù)
我們知道 Oracle、DB2 等商業(yè)數(shù)據(jù)庫均為 OLTP 與 OLAP 融合數(shù)據(jù)庫。而首先在分布式道路上尋求突破的是 OLAP 領(lǐng)域。在 2000 年伊始,以 Hadoop 為代表的大數(shù)據(jù)庫技術(shù)憑借其“無共享”(share nothing)的技術(shù)體系,開始向以 Oracle 為代表的關(guān)系型數(shù)據(jù)庫發(fā)起沖擊。
這是一次水平擴展與垂直擴展,通用經(jīng)濟設(shè)備與專用昂貴服務(wù),開源與商業(yè)這幾組概念的首次大規(guī)模碰撞。拉開了真正意義上分布式數(shù)據(jù)庫的帷幕。
當然從一般的觀點出發(fā),Hadoop 一類的大數(shù)據(jù)處理平臺不應稱為數(shù)據(jù)庫。但是從前面我們歸納的兩點特性看,它們又確實非常滿足。因此我們可以將它們歸納為早期面向商業(yè)分析場景的分布式數(shù)據(jù)庫。從此 OLAP 型數(shù)據(jù)庫開始了自己獨立演化的道路。
除了 Hadoop,另一種被稱為 MPP(大規(guī)模并行處理)類型的數(shù)據(jù)庫在此段時間也經(jīng)歷了高速的發(fā)展。MPP 數(shù)據(jù)庫的架構(gòu)圖如下:
我們可以看到這種數(shù)據(jù)庫與大數(shù)據(jù)常用的 Hadoop 在架構(gòu)層面上非常類似,但理念不同。簡而言之,它是對 SMP(對稱多處理器結(jié)構(gòu))、NUMA(非一致性存儲訪問結(jié)構(gòu))這類硬件體系的創(chuàng)新,采用 shared-nothing 架構(gòu),通過網(wǎng)絡(luò)將多個 SMP 節(jié)點互聯(lián),使它們協(xié)同工作。
MPP 數(shù)據(jù)庫的特點是首先支持 PB 級的數(shù)據(jù)處理,同時支持比較豐富的 SQL 分析查詢語句。同時,該領(lǐng)域是商業(yè)產(chǎn)品的戰(zhàn)場,其中不僅僅包含獨立廠商,如 Teradata,還包含一些巨頭玩家,如 HP 的 Vertica、EMC 的 Greenplum 等。
大數(shù)據(jù)技術(shù)的發(fā)展使 OLAP 分析型數(shù)據(jù)庫,從原來的關(guān)系型數(shù)據(jù)庫之中獨立出來,形成了完整的發(fā)展分支路徑。而隨著互聯(lián)網(wǎng)浪潮的發(fā)展,OLTP 領(lǐng)域迎來了發(fā)展的機遇。
互聯(lián)網(wǎng)化
國內(nèi)數(shù)據(jù)庫領(lǐng)域進入互聯(lián)網(wǎng)時代第一個重大事件就是“去 IOE”。
其中尤以“去 Oracle 數(shù)據(jù)庫”產(chǎn)生的影響深遠。十年前,阿里巴巴喊出的這個口號深深影響了國內(nèi)數(shù)據(jù)庫領(lǐng)域,這里我們不去探討其中細節(jié),也不去評價它正面或負面的影響。但從對于分布式數(shù)據(jù)庫的影響來說,它至少帶來兩種觀念的轉(zhuǎn)變。
應用成為核心:去 O 后,開源數(shù)據(jù)庫需要配合數(shù)據(jù)庫中間件(proxy)去使用,但這種組合無法實現(xiàn)傳統(tǒng)商業(yè)庫提供的一些關(guān)鍵功能,如豐富的 SQL 支持和 ACID 級別的事務(wù)。因此應用軟件需要進行精心設(shè)計,從而保障與新數(shù)據(jù)庫平臺的配合。應用架構(gòu)設(shè)計變得非常關(guān)鍵,整個技術(shù)架構(gòu)開始脫離那種具有調(diào)侃意味的“面向數(shù)據(jù)庫” 編程,轉(zhuǎn)而變?yōu)橐詰孟到y(tǒng)為核心。
弱一致性理念普及:雖然強一致性仍然需求旺盛,但人們慢慢接受了特定場景下可以嘗試弱一致性來解決系統(tǒng)的吞吐量問題。而這帶來了另外一個益處,一線研發(fā)與設(shè)計人員開始認真考慮業(yè)務(wù)需要什么樣的一致性,而不是簡單依靠數(shù)據(jù)庫提供的特性。
以上兩個觀念都是在破除了對于 Oracle 的迷信后產(chǎn)生的,它們本身是正面的,但是如果沒有這場運動,其想要在普通用戶之中普及確實有很大困難。而這兩種觀念也為日后分布式數(shù)據(jù)庫,特別是國產(chǎn)分布式數(shù)據(jù)的發(fā)展帶來了積極的影響。
而與此同期,全球范圍內(nèi)又上演著 NoSQL 化浪潮,它與國內(nèi)去 IOE 運動一起推動著數(shù)據(jù)庫朝著橫向分布的方向一路狂奔。關(guān)于 NoSQL 的內(nèi)容,將會在下一講詳細介紹。
與上一部分中提到的大數(shù)據(jù)技術(shù)類似,隨著互聯(lián)網(wǎng)的發(fā)展,去 IOE 運動將 OLTP 型數(shù)據(jù)庫從原來的關(guān)系型數(shù)據(jù)庫之中分離出來,但這里需要注意的是,這種分離并不是從基礎(chǔ)上構(gòu)建一個完整的數(shù)據(jù)庫,而是融合了舊有的開源型數(shù)據(jù)庫,同時結(jié)合先進的分布式技術(shù),共同構(gòu)造了一種融合性的“準”數(shù)據(jù)庫。它是面向具體的應用場景的,所以閹割掉了傳統(tǒng)的 OLTP 數(shù)據(jù)庫的一些特性,甚至是一些關(guān)鍵的特性,如子查詢與 ACID 事務(wù)等。
而 NoSQL 數(shù)據(jù)庫的重點是支持非結(jié)構(gòu)化數(shù)據(jù),如互聯(lián)網(wǎng)索引,GIS 地理數(shù)據(jù)和時空數(shù)據(jù)等。這種數(shù)據(jù)在傳統(tǒng)上會使用關(guān)系型數(shù)據(jù)庫存儲,但需要將此種數(shù)據(jù)強行轉(zhuǎn)換為關(guān)系型結(jié)構(gòu),不僅設(shè)計煩瑣,而且使用效率也比較低下。故NoSQL 數(shù)據(jù)庫被認為是對整個數(shù)據(jù)庫領(lǐng)域的補充,從而人們意識到數(shù)據(jù)庫不應該僅僅支持一種數(shù)據(jù)模式。
隨著分布式數(shù)據(jù)庫的發(fā)展,一種從基礎(chǔ)上全新設(shè)計的分布式 OLTP 數(shù)據(jù)庫變得越來越重要,而云計算更是為這種數(shù)據(jù)庫注入新的靈魂,兩者的結(jié)合將會給分布式數(shù)據(jù)庫帶來美妙的化學反應。
云原生是未來
從上文可以看到人們真正具有廣泛認知的分布式數(shù)據(jù)庫,即 OLTP 型交易式分布式數(shù)據(jù)庫,依然是分布式數(shù)據(jù)庫領(lǐng)域一個缺失的片段,且是一個重要的片段。一個真正的 OLTP 數(shù)據(jù)庫應該具備什么特點呢?
實際上人們需要的是它既具有一個單機的關(guān)系型數(shù)據(jù)庫的特性,又有分布式的分片與同步特性。 DistributedSQL 和 NewSQL 正是為了這個目的而生的 。它們至少具有如下兩點引人注目的特性:
- SQL 的完整支持
- 可靠的分布式事務(wù)。
典型的代表有 Spanner、NuoDB、TiDB 和 Oceanbase 等。并且本課程會重點圍繞 DistributedSQL 的關(guān)鍵特性展開研究,這些特性是現(xiàn)代分布式數(shù)據(jù)庫的基石。這里我就不占用過多篇幅介紹了,在 02 | SQL vs NoSQL:一次搞清楚五花八門的各種“SQL”中我們再一起詳細學習。
與此同時,隨著云計算的縱向深入發(fā)展,分布式數(shù)據(jù)庫又迎來新的革命浪潮——云原生數(shù)據(jù)庫。
首先,由于云服務(wù)天生的“超賣”特性,造成其采購成本較低,從而使終端用戶嘗試分布式數(shù)據(jù)庫的門檻大大降低。
其次,來自云服務(wù)廠商的支撐人員可以與用戶可以進行深度的合作,形成了高效的反饋機制。這種反饋機制促使云原生的分布式數(shù)據(jù)庫有機會進行快速的迭代,從而可以積極響應客戶的需求。
這就是云原生帶給分布式數(shù)據(jù)庫的變化,它是通過生態(tài)系統(tǒng)的優(yōu)化完成了對傳統(tǒng)商業(yè)數(shù)據(jù)庫的超越。以下來自 DB-Engines 的分析數(shù)據(jù)說明了未來的數(shù)據(jù)庫市場屬于分布式數(shù)據(jù)庫,屬于云原生數(shù)據(jù)庫。
隨著分布式數(shù)據(jù)庫的發(fā)展,我們又迎來了新的一次融合:那就是 OLTP 與 OLAP 將再一次合并為 HTAP(融合交易分析處理)數(shù)據(jù)庫。
該趨勢的產(chǎn)生主要來源于云原生 OLTP 型分布式數(shù)據(jù)庫的日趨成熟。同時由于整個行業(yè)的發(fā)展,客戶與廠商對于實時分析型數(shù)據(jù)庫的需求越來越旺盛,但傳統(tǒng)上大數(shù)據(jù)技術(shù)包括開源與 MPP 類數(shù)據(jù)庫,強調(diào)的是離線分析。
如果要進行秒級的數(shù)據(jù)處理,那么必須將交易數(shù)據(jù)與分析數(shù)據(jù)盡可能地貼近,并減少非實時 ELT 的引入,這就促使了 OLTP 與 OLAP 融合為 HTAP。下圖就是阿里云 PolarDB 的 HTAP 架構(gòu)。
總結(jié)
用《三國演義》的第一句話來說:“天下大勢,分久必合,合久必分?!倍覀冇^察到的分布式數(shù)據(jù)庫,乃至數(shù)據(jù)庫本身的發(fā)展正暗合了這句話。
分布式數(shù)據(jù)庫發(fā)展就是一個由合到分,再到合的過程:
早期的關(guān)系型商業(yè)數(shù)據(jù)庫的分布式能力可以滿足大部分用戶的場景,因此產(chǎn)生了如 Oracle 等幾種巨無霸數(shù)據(jù)庫產(chǎn)品;
OLAP 領(lǐng)域首先尋求突破,演化出了大數(shù)據(jù)技術(shù)與 MPP 類型數(shù)據(jù)庫,提供功能更強的數(shù)據(jù)分析能力;
去 IOE 引入數(shù)據(jù)庫中間件,并結(jié)合應用平臺與開源單機數(shù)據(jù)庫形成新一代解決方案,讓商業(yè)關(guān)系型數(shù)據(jù)庫走下神壇,NoSQL 數(shù)據(jù)庫更進一步打破了關(guān)系型數(shù)據(jù)庫唯我獨尊的江湖地位;
新一代分布式 OLTP 數(shù)據(jù)庫正式完成了分布式領(lǐng)域?qū)?shù)據(jù)庫核心特性的完整支持,它代表了分布式數(shù)據(jù)庫從此走向了成熟,也表明了 OLAP 與 OLTP 分布式場景下,分別在各自領(lǐng)域內(nèi)取得了勝利;
HTAP 和多模式數(shù)據(jù)處理的引入,再一次將 OLAP 與 OLTP 融合,從而將分布式數(shù)據(jù)庫推向如傳統(tǒng)商業(yè)關(guān)系型數(shù)據(jù)庫數(shù)十年前那般的盛況,而其產(chǎn)生的影響要比后者更為深遠。
我們回顧歷史,目的是更好地掌握未來。而分布式數(shù)據(jù)庫的歷史同時體現(xiàn)了實用主義的特色,其演化是需求與技術(shù)博弈的結(jié)果,而不是精心設(shè)計出來的。?
網(wǎng)站標題:什么是分布式數(shù)據(jù)庫?聊聊它的前世今生
新聞來源:http://m.fisionsoft.com.cn/article/cdddoeg.html


咨詢
建站咨詢
