- 云原生數(shù)據(jù)庫:原理與實踐
- 李飛飛等
- 1426字
- 2024-01-25 18:25:18
1.1.4 云原生與分布式時代
在云原生時代,數(shù)據(jù)庫的處理能力如何隨著業(yè)務(wù)處理規(guī)模增加而擴展,有兩種不同的實踐方法。一種方法是垂直擴展(Scale up),提升數(shù)據(jù)庫各個組件的容量,使用更好的硬件,比如小型機、高端存儲,如著名的“IOE”解決方案,數(shù)據(jù)庫系統(tǒng)架構(gòu)使用多個計算節(jié)點共享一份存儲,稱為Shared-Storage架構(gòu),如圖1-1(a)所示。另一種方法是水平擴展(Scale out),還是保持原來單個數(shù)據(jù)庫實例的容量不變,用更多的數(shù)據(jù)庫節(jié)點組合為一個無共享(Shared-Nothing)分布式系統(tǒng)來解決問題,每個節(jié)點根據(jù)分布規(guī)則(Sharding Rule)存儲一部分數(shù)據(jù)(Shard),處理一部分請求,如圖1-1(b)所示。

圖1-1 數(shù)據(jù)庫的垂直擴展與水平擴展
兩種方法各有利弊,前者本質(zhì)上還是一個單機形態(tài),所有計算節(jié)點共享所有狀態(tài)、數(shù)據(jù)或元數(shù)據(jù),基本上所有功能都可以和單機版保持兼容。對于很多傳統(tǒng)企業(yè)來說,保證業(yè)務(wù)的平滑是很重要的,應(yīng)用盡量不做改動,便能獲得擴展功能,這種方式無疑是合適的。但是擴展性受限,計算節(jié)點不可能無限制地添加,計算節(jié)點越多,同步狀態(tài)的代價越大,包括存儲容量也受限于共享存儲的能力。如此一來,對處理互聯(lián)網(wǎng)業(yè)務(wù)的海量數(shù)據(jù)和請求來說就顯得力不從心了。因此,大部分互聯(lián)網(wǎng)企業(yè)更看重數(shù)據(jù)庫擴展能力,自然選擇了用廉價硬件水平擴展的方案,代價就是數(shù)據(jù)做了水平拆分。很多業(yè)務(wù)的查詢和事務(wù)變成了跨數(shù)據(jù)分片或跨節(jié)點,復(fù)雜度和開銷較大,因此大部分互聯(lián)網(wǎng)業(yè)務(wù)可以通過選擇拆分規(guī)則來避免。
互聯(lián)網(wǎng)業(yè)務(wù)的快速發(fā)展帶來的海量數(shù)據(jù)不僅對在線事務(wù)處理帶來擴展性需求,也使數(shù)據(jù)分析的形態(tài)發(fā)生了變化。21世紀初期,Google發(fā)表了著名的“三駕馬車”:分布式文件系統(tǒng)(Google File System)、分布式表格(BigTable)和分布式計算模型(MapReduce),催生了大數(shù)據(jù)的概念。隨后,開源社區(qū)積極跟進,實現(xiàn)了以Hadoop生態(tài)為主體的開源大數(shù)據(jù)處理技術(shù)體系,成為業(yè)界的事實標準。自2006年以來,對于大數(shù)據(jù)處理究竟是Hadoop體系更好還是傳統(tǒng)的數(shù)據(jù)倉庫技術(shù)路線更好,一直都是爭論的熱點。然而,無論選擇哪種技術(shù)路線,“更簡單的使用模式、更強勁的性能體驗、更大的數(shù)據(jù)處理規(guī)模、更實時的處理能力”一直都是學(xué)術(shù)界和工業(yè)界研究的熱點。隨著時間的推移,以Hadoop為代表的大數(shù)據(jù)生態(tài)和以傳統(tǒng)數(shù)據(jù)倉庫為代表的數(shù)據(jù)庫生態(tài),在大數(shù)據(jù)領(lǐng)域正在逐漸向彼此靠攏。“SQL on Hadoop”成為大數(shù)據(jù)領(lǐng)域一個非常重要的研究方向,而數(shù)據(jù)庫也逐漸向“數(shù)據(jù)庫的體驗,大數(shù)據(jù)的能力”方向發(fā)展,SQL逐漸成為被統(tǒng)一接受的通用查詢分析語言。
進入21世紀以來,隨著信息技術(shù)的不斷發(fā)展,產(chǎn)生的數(shù)據(jù)越來越多,種類也越來越豐富,傳統(tǒng)關(guān)系數(shù)據(jù)庫的關(guān)系模型是嚴格的結(jié)構(gòu)化數(shù)據(jù),在處理頻繁變化的業(yè)務(wù)和一些專用的特殊結(jié)構(gòu)時殊為不便。一些使用更靈活的數(shù)據(jù)模型定義(Schemaless)或特殊的數(shù)據(jù)模型的數(shù)據(jù)庫出現(xiàn)了,統(tǒng)稱為NoSQL系統(tǒng)。NoSQL數(shù)據(jù)庫主要包括鍵值(Key-Value,KV)數(shù)據(jù)庫、文檔(Document)數(shù)據(jù)庫、圖(Graph)數(shù)據(jù)庫三大類。鍵值數(shù)據(jù)庫的代表為Redis、HBase和Canssandra;文檔數(shù)據(jù)庫的代表為MongoDB;圖數(shù)據(jù)庫的代表為Neo4j等。這些數(shù)據(jù)庫都是為了滿足某些特定的要求,而在一些技術(shù)細節(jié)上做了取舍,滿足特定場景下數(shù)據(jù)規(guī)模、靈活性、并發(fā)或性能的極致要求。在特定的場景下,NoSQL比關(guān)系數(shù)據(jù)庫具有更優(yōu)異的表現(xiàn),包括性能、可擴展性、可用性及性價比等,然而關(guān)系數(shù)據(jù)庫依然憑借SQL強大的表達能力、普適成熟的規(guī)范和完整嚴格的ACID語義牢牢占據(jù)主流。
進入21世紀20年代,云計算漸成規(guī)模,各大云廠商也紛紛推出了自己的數(shù)據(jù)庫服務(wù),傳統(tǒng)的數(shù)據(jù)庫廠商也紛紛試水云計算領(lǐng)域,推出基于云形態(tài)的數(shù)據(jù)庫產(chǎn)品。數(shù)據(jù)庫自此進入云時代,開啟了新一輪波瀾壯闊的變革之旅。
- Greenplum:從大數(shù)據(jù)戰(zhàn)略到實現(xiàn)
- 數(shù)據(jù)可視化:從小白到數(shù)據(jù)工程師的成長之路
- 云計算環(huán)境下的信息資源集成與服務(wù)
- Oracle RAC 11g實戰(zhàn)指南
- 大數(shù)據(jù)可視化
- 揭秘云計算與大數(shù)據(jù)
- 區(qū)塊鏈通俗讀本
- Mockito Cookbook
- Microsoft Power BI數(shù)據(jù)可視化與數(shù)據(jù)分析
- 大數(shù)據(jù)技術(shù)入門
- 視覺大數(shù)據(jù)智能分析算法實戰(zhàn)
- 二進制分析實戰(zhàn)
- Mastering ROS for Robotics Programming(Second Edition)
- Oracle 11g+ASP.NET數(shù)據(jù)庫系統(tǒng)開發(fā)案例教程
- 數(shù)據(jù)賦能