前言
看完了 Vertica 白皮書,帶著興趣就看起了官方文檔,發(fā)現(xiàn) Vertica 有兩種模式,本文就來了解下!
讀白皮書有感,感興趣的朋友可以一讀:
?? 作者寫的 《Vertica 技術(shù)文章合集》,歡迎閱讀 ????!
介紹
Vertica 支持兩種模式來創(chuàng)建數(shù)據(jù)庫:Eon 或者 Enterprise。
模式?jīng)Q定了數(shù)據(jù)庫的底層架構(gòu),比如 Vertica 存儲數(shù)據(jù)的方式、數(shù)據(jù)庫集群的伸縮方式、數(shù)據(jù)的加載方式等;
創(chuàng)建數(shù)據(jù)庫后無法更改模式,但是支持模式間的數(shù)據(jù)遷移。數(shù)據(jù)庫模式不會影響您在使用數(shù)據(jù)庫時運行查詢和其他日常任務(wù)的方式。
一、Vertica 架構(gòu)
在 Eon 和 Enterprise 模式下運行的 Vertica 數(shù)據(jù)庫以不同方式存儲其數(shù)據(jù):
Enterprise:將數(shù)據(jù)本地存儲在構(gòu)成數(shù)據(jù)庫的節(jié)點的文件系統(tǒng)中Eon:使用公共存儲
不同的存儲方法導(dǎo)致了兩種模式之間的許多重要差異,但是如果配置正確,Eon 模式和企業(yè)模式數(shù)據(jù)庫在相同環(huán)境中的性能大致相同。
二、Eon 模式
Eon 模式將數(shù)據(jù)存儲在稱為公共存儲的共享對象存儲中,將計算過程與數(shù)據(jù)庫的公共存儲層分開,這種分離使您能夠?qū)?shù)據(jù)存儲在單個位置。

1、可擴展性
Eon 模式適合各種需求和數(shù)據(jù)量。由于計算和存儲是分開的,因此可以分別擴展:

2、共享存儲(communal Storage)
Eon 使用的是共享存儲來存儲所有數(shù)據(jù)和目錄(元數(shù)據(jù)),感覺跟 Oracle RAC 有點相似。
共享存儲具有以下特性:
- 與存儲在單個機器的磁盤上相比,云中的公共存儲更具彈性,并且更不容易因存儲故障而導(dǎo)致數(shù)據(jù)丟失。
- 任何節(jié)點都可以使用相同的路徑讀取任何數(shù)據(jù)。
- 容量不受節(jié)點磁盤空間的限制。
- 由于數(shù)據(jù)是公共存儲的,您可以彈性擴展集群以滿足不斷變化的需求。如果數(shù)據(jù)本地存儲在節(jié)點上,添加或刪除節(jié)點將需要在節(jié)點之間移動大量數(shù)據(jù),以將其從被刪除的節(jié)點移出,或移到新創(chuàng)建的節(jié)點上。
共享存儲位置列在 STORAGE_LOCATIONS 系統(tǒng)表中可以查詢,SHARING_TYPE 為 COMMUNAL。
3、倉庫存儲(Depot)
共享存儲的一個潛在缺點是它的 速度,尤其是在云環(huán)境中。從共享云位置訪問數(shù)據(jù)比從本地磁盤讀取數(shù)據(jù)慢。此外,如果許多節(jié)點同時從中讀取數(shù)據(jù),則與共享存儲的連接可能會成為瓶頸。
為了提高數(shù)據(jù)訪問速度,Eon 模式數(shù)據(jù)庫中的節(jié)點維護(hù)一個本地磁盤數(shù)據(jù)緩存,稱為倉庫。執(zhí)行查詢時,節(jié)點首先檢查它需要的數(shù)據(jù)是否在倉庫中。如果是,則節(jié)點使用數(shù)據(jù)的本地副本完成查詢。如果數(shù)據(jù)不在倉庫中,則節(jié)點從公共存儲中獲取數(shù)據(jù),并將副本保存在倉庫中。
- 節(jié)點在將新加載的數(shù)據(jù)發(fā)送到公共存儲之前將其存儲在庫中。
- 倉庫的大小默認(rèn)為本地磁盤空間的 60%,可以手動設(shè)置
ALTER_LOCATION_SIZE,區(qū)間在 60%~80% 之間。 - 每個節(jié)點還存儲數(shù)據(jù)庫目錄的本地副本。
每個節(jié)點還存儲數(shù)據(jù)庫目錄的本地副本。
4、加載數(shù)據(jù)
在 Eon 模式下,COPY 語句通常寫入讀取節(jié)點倉庫中的優(yōu)化存儲 (ROS) 文件以提高性能。COPY 語句分段、排序和壓縮以實現(xiàn)高度優(yōu)化。在語句提交之前,Vertica將 ROS 文件發(fā)送到公共存儲。
下圖顯示了 COPY 語句期間的數(shù)據(jù)流。

在云環(huán)境中部署時,Vertica 將其數(shù)據(jù)存儲在基于云的存儲容器中,例如 AWS S3 存儲桶。在本地部署時,Vertica將數(shù)據(jù)存儲在本地部署的對象存儲中,例如 Pure Storage FlashBlade 設(shè)備。將持久數(shù)據(jù)存儲與計算資源(加載數(shù)據(jù)和處理查詢的節(jié)點)分開提供了靈活性。
三、企業(yè)模式
在企業(yè)模式 Vertica 數(shù)據(jù)庫中,物理架構(gòu)旨在將數(shù)據(jù)盡可能靠近計算資源。
企業(yè)模式數(shù)據(jù)庫中的數(shù)據(jù)分布在數(shù)據(jù)庫中的節(jié)點之間。理想情況下,數(shù)據(jù)是均勻分布的,以確保每個節(jié)點具有等量的分析工作負(fù)載。

每個節(jié)點負(fù)責(zé)存儲和處理一部分?jǐn)?shù)據(jù)。數(shù)據(jù)位于基于云和本地數(shù)據(jù)庫的節(jié)點上。讓數(shù)據(jù)靠近計算能力提供了一系列不同的優(yōu)勢。
1、混合數(shù)據(jù)存儲
在企業(yè)模式下運行時,Vertica 將數(shù)據(jù)庫中的數(shù)據(jù)存儲在讀取優(yōu)化存儲 (ROS) 容器中。ROS 數(shù)據(jù)經(jīng)過分段、排序和壓縮以實現(xiàn)高度優(yōu)化。為避免多個小型 ROS 容器之間的數(shù)據(jù)碎片化,Vertica 會定期執(zhí)行合并操作,將 ROS 數(shù)據(jù)合并到更少和更大的容器中。
2、數(shù)據(jù)冗余
在企業(yè)模式下,Vertica 數(shù)據(jù)庫的每個節(jié)點都在本地存儲和操作數(shù)據(jù)。如果沒有某種形式的冗余,節(jié)點的丟失將迫使您的數(shù)據(jù)庫關(guān)閉,因為它的某些數(shù)據(jù)將無法用于服務(wù)查詢。
所以,通常選擇讓企業(yè)模式數(shù)據(jù)庫冗余存儲數(shù)據(jù),以防止節(jié)點關(guān)閉時數(shù)據(jù)丟失和服務(wù)中斷。
四、優(yōu)勢對比
Eon 模式和企業(yè)模式存儲數(shù)據(jù)的不同方式使每種模式在不同的環(huán)境中都具有優(yōu)勢。
| 特點 | 優(yōu)勢 | |
|---|---|---|
| 環(huán)境 | Eon | 企業(yè) |
| 云 | 1、輕松擴展或縮減以滿足不斷變化的工作負(fù)載并降低成本。 2、工作負(fù)載可以隔離到節(jié)點的子集群。 3、對數(shù)據(jù)庫大小幾乎沒有限制。大多數(shù)云提供商提供基本上無限制的數(shù)據(jù)存儲(收費)。 |
適用于大多數(shù)云平臺。Eon 模式適用于特定的云提供商。 |
| 本地 | 1、可以將工作負(fù)載隔離到稱為子集群的節(jié)點子集。 2、可以在不添加節(jié)點的情況下增加存儲(并且,如果對象存儲支持熱插拔,則無需停機)。 |
除了構(gòu)成數(shù)據(jù)庫集群的服務(wù)器之外,不需要額外的硬件。 |
?? 注意: 當(dāng)然了,模式間數(shù)據(jù)是可以切換遷移的,可以使用元函數(shù) MIGRATE_ENTERPRISE_TO_EON 將企業(yè)模式數(shù)據(jù)庫遷移到 Eon,為上云提供了良好的支持!
寫在最后
本文講解了 Vertica 架構(gòu)的兩種數(shù)據(jù)庫模式,在了解了各自的特點和優(yōu)勢后,相信大家對架構(gòu)的選型應(yīng)該有了自己的想法。




