資料庫選型繞不開“CAP定理”是什麼

大雄45發表於2021-09-14
導讀 這兩年,不管是傳統資料庫廠商,還是雲端計算大廠,都在主推“雲資料庫”,對於雲資料庫概念,不同人有不同理解,可以說是眾說紛紜。那麼,到底什麼是雲資料庫?資料庫從本地遷移到雲上,就是雲資料庫嗎?

與80年代初期相比,今天的資料庫技術,可以說是取得了長足猛進的發展。不僅在硬體的選擇上,不再視大型機為唯一,還可以根據具體的業務需求,選擇更貼近業務場景需求的資料庫產品。

資料庫選型繞不開“CAP定理”是什麼資料庫選型繞不開“CAP定理”是什麼

如今,軟、硬體技術在不斷進步,使得資料庫的種類發生了翻天覆地的變化。除了過去常用的關係型資料庫,我們還可以選擇時序資料庫、圖資料庫、文字資料庫等等。有的資料庫只支援單一資料處理,有的資料庫可支援多種資料共用同一個例項。一些專門用於線上事務處理的資料庫,叫做 OLTP;一些專門用於分析型業務的資料庫叫做 OLAP。而能夠把兩者結合起來的,叫做HTAP。

總之,你可以把資料庫放在任意地方,可隨時隨地訪問你的資料,或者隨意遷移資料。比如:你可以把智慧手機上的資料遷移到本地的資料中心伺服器,還可以從本地伺服器遷移到雲資料庫上。

那麼,問題來啦,什麼是雲資料庫?

這兩年,不管是傳統資料庫廠商,還是雲端計算大廠,都在主推“雲資料庫”,對於雲資料庫概念,不同人有不同理解,可以說是眾說紛紜。那麼,到底什麼是雲資料庫?資料庫從本地遷移到雲上,就是雲資料庫嗎?

從定義來看,雲資料庫是指被最佳化或部署到一個虛擬計算環境中的資料庫,最顯著的優勢是可以獲得按需付費、按需擴充套件、高可用性以及儲存整合等能力。所以,雲資料庫即可以在本地執行,也可以透過專有云的方式執行,同時與本地資料庫相容。另外,有些雲端計算大廠推崇的是雲原生資料庫,這意味著整個資料架構都需要使用公有云廠商提供的服務。

不管大家如何看待雲資料庫,有一點可以確定,那就是資料庫不是一個簡單的軟體應用,而是涉及到應用程式的後端和儲存層。即資料從前端傳到後臺,後臺與資料庫直接關聯。同時,按照CAP定理,在一致性、可用性、分割槽容錯性三者之間,不可能三者兼顧,而是最多同時兼顧兩項。

也就是說,如何選擇一個理想資料庫,取決於應用程式需求。如果只用於顯示應用程式的目錄,那麼資料庫的讀取速度和延遲時間很重要,這時文件資料庫可能是理想型選擇,當然很多關係型資料庫和寬列資料庫也能適用。如果是金融交易式應用程式處理,那麼如何滿足資料庫的 ACID 屬性(原子性、一致性、隔離性和永續性)就變得非常重要,這時關係型資料庫顯然是最佳選擇。

隨著資料庫技術的不斷成熟,資料庫選型也在突破傳統技術架構的侷限。比如:在滿足現代化業務需求的分散式資料庫架構中,節點故障和分割槽容錯性可以透過使用 Paxos 或 Raft 共識演算法來解決。本質上,當一個節點退出叢集時,只要它有仲裁,叢集就能繼續工作。此外,這種分割槽的思想在私有云內部網路中很少見,類似於雲服務提供商提供的那種分散式架構服務,在本地資料中心是透過光纖冗餘來實現,並且不透過公網傳輸佔據內部流量。

所以,總的來看,雖然沒有任何技術可以繞過CAP 定理,但好的雲資料庫具有超過五個九 (99.999%) 的可用性,從一定程度上大大提高了資料庫的一致性和可用性水平。比如:針對多人遊戲場景,讀寫能力和延遲性都很重要,這時分散式資料庫架構,可以很好地解決這一問題。如果不是強一致性業務以及關係型業務,鍵值資料庫可能是理想選擇。如果是感測器之類的資料輸入輸出,可以快速大量寫入的時序資料庫,表現會更好。

另外,任何雲資料庫都可以處理少量以及大量資料。少的可以處理以千兆位元組或更少單位的資料。而具有大資料處理能力的雲資料庫,可以處理 TB級資料(數千 GB),包括少數資料庫可以容納 PB級(數百萬 GB)。

需要重點強調的是,大多數雲資料庫會按月向您收取儲存費用,SSD 儲存的費用要高於磁碟儲存。另外,過高的資料處理速度也會給其他指標帶來影響,例如資料庫寫入速度和網路容量受到限制。 如果資料量突增,資料庫或前端程式可能需要在寫入永久儲存時將其緩衝在 RAM 中,以避免資料丟失。

無論你選擇什麼樣的資料庫,都不要忘記在投入生產前進行大量測試。另外,也並不是所有的雲資料庫,都要需要你100%地把本地資料庫遷移到雲上。同時,一旦資料庫上雲,就要做好監控和防護措施,出現問題時要有預警機制,能夠快速遷移到備份方案中。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2792086/,如需轉載,請註明出處,否則將追究法律責任。

相關文章