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


咨詢
建站咨詢
