什么是Snowflake數(shù)據(jù)云平臺?體系結(jié)構(gòu)和關(guān)鍵概念
譯文在本文中,我們將討論什么是Snowflake數(shù)據(jù)倉庫,Snowflake架構(gòu),如何創(chuàng)建免費(fèi)試用帳戶以進(jìn)行試用,最后如何訪問 Snowflake WebUI。
1.什么是Snowflake數(shù)據(jù)云倉庫?
Snowflake 是在 Cloud 之上開發(fā)的基于云的數(shù)據(jù)倉庫平臺。截至目前,亞馬遜網(wǎng)絡(luò)服務(wù) (AWS)微軟 Azure 和谷歌云等常見的云供應(yīng)商都支持 Snowflake。
Snowflake 是一個真正的 SaaS 產(chǎn)品。因?yàn)樗耆诠苍苹A(chǔ)架構(gòu)上運(yùn)行,無需安裝、配置或維護(hù)任何硬件(虛擬或真實(shí))或軟件。
Snowflake 提供的數(shù)據(jù)倉庫模型比典型的數(shù)據(jù)倉庫系統(tǒng)更快、更容易設(shè)置并且適應(yīng)性更強(qiáng)。
由于其獨(dú)特的特性,它迅速成為分析市場數(shù)據(jù)管理解決方案的佼佼者。
2.Snowflake架構(gòu)
Snowflake 數(shù)據(jù)庫設(shè)計是共享磁盤(shared-disk)和無共享(shared-nothing)數(shù)據(jù)庫系統(tǒng)的組合。 Snowflake 與共享磁盤系統(tǒng)一樣,使用中央數(shù)據(jù)存儲來存儲數(shù)據(jù),并且可以從平臺中的所有計算節(jié)點(diǎn)訪問。
Snowflake 使用 MPP(大規(guī)模并行處理)計算集群執(zhí)行計算,其中集群里的每個節(jié)點(diǎn)在本地維護(hù)完整數(shù)據(jù)集的一部分,類似于無共享系統(tǒng)。
這種方法結(jié)合了共享磁盤設(shè)計的數(shù)據(jù)管理便利性與無共享架構(gòu)的速度和橫向擴(kuò)展優(yōu)勢。
Snowflake架構(gòu)有三層:
1. 存儲層
2. 計算層
3. 云服務(wù)層
我們來詳細(xì)討論下每一層。
2.1 存儲層
Snowflake 將數(shù)據(jù)劃分為無數(shù)個微分區(qū),每個微分區(qū)都在內(nèi)部進(jìn)行了優(yōu)化和壓縮。它以列方式存儲數(shù)據(jù)。
數(shù)據(jù)保存在云中,并使用shared-disk方式進(jìn)行管理,使數(shù)據(jù)管理變得簡單。在 shared-nothing 架構(gòu)中,這確保了用戶不必?fù)?dān)心數(shù)據(jù)在多個節(jié)點(diǎn)上的分布。
為了獲取數(shù)據(jù)以進(jìn)行查詢處理,計算節(jié)點(diǎn)鏈接到存儲層。由于存儲層是獨(dú)立的,我們只需為每月平均使用的存儲付費(fèi)。
Snowflake 的存儲是彈性的,因?yàn)樗窃谠浦刑峁┑?,并且根?jù)每 TB 的消耗量按月支付。
存儲的定價由云提供商根據(jù)每月的存儲利用率收取,這意味著存儲成本是使用壓縮后每月使用的平均存儲量確定的。
2.2 計算層
該層由可擴(kuò)展計算單元的虛擬倉庫組成。
計算層從存儲層獲取數(shù)據(jù)并將其緩存在本地以增強(qiáng)將來的查詢結(jié)果,即每個虛擬倉庫都有自己的緩存。
多個虛擬倉庫可以同時運(yùn)行,維護(hù)ACID,對數(shù)據(jù)執(zhí)行多個并發(fā)處理。
在 Snowflake 中,可以根據(jù)工作負(fù)載構(gòu)建多個虛擬倉庫以滿足不同的需求。
這些倉庫本質(zhì)上是 MPP(大規(guī)模并行處理)。每個虛擬倉庫都可以使用一個存儲層。
虛擬倉庫有自己的計算集群,不與其他虛擬倉庫交互,即無共享架構(gòu)。
該倉庫的定價將采用動態(tài)方式,即,費(fèi)用將根據(jù)您消耗了多少計算單位來計算,按照學(xué)分(Credit)進(jìn)行計算。
因此,每當(dāng)數(shù)據(jù)倉庫進(jìn)行計算時,那時只有計費(fèi)時鐘會運(yùn)行。以下是不同數(shù)據(jù)倉庫規(guī)模的計費(fèi)計量。
此計費(fèi)將按每秒使用次數(shù)進(jìn)行。最低收費(fèi)為一分鐘,即一旦數(shù)據(jù)倉庫開始計算,最低收費(fèi)將從一分鐘使用開始計算。例如,如果您只使用 30 秒,則計費(fèi)時間為一分鐘。
2.3 云服務(wù)層
該層包含在整個 Snowflake 中協(xié)調(diào)的所有操作,例如身份驗(yàn)證、安全性、加載數(shù)據(jù)的元數(shù)據(jù)管理和查詢優(yōu)化器。
服務(wù)層為DDL、DML等數(shù)據(jù)操作提供SQL客戶端接口。這種云服務(wù)也可以像其他層一樣進(jìn)行擴(kuò)展。
此云服務(wù)的定價不會直接收取。默認(rèn)情況下,將為云服務(wù)分配一些積分,因?yàn)檫@些服務(wù)也需要計算能力才能運(yùn)行。
當(dāng)使用率超過每天使用的總計算量的 10% 時,將開始對云服務(wù)收費(fèi)。例如,如果操作計算使用了 100 個積分,而云服務(wù)使用了 15 個積分,那么云服務(wù)的收費(fèi)將是 15 - (10% of 100) = 15。
3.什么是學(xué)分?
學(xué)分是Snowflake中的收費(fèi)單位。每個學(xué)分的金額將根據(jù)版本和云提供商計算。你可以在此鏈接中查看和估算價格。
你可以選擇云提供商、地區(qū)和貨幣;你將得到每個學(xué)分的估計費(fèi)用。
4.創(chuàng)建Snowflake賬號
Snowflake 提供免費(fèi)試駕賬號;它的使用價值為 400 美元。你可以在下面的鏈接中創(chuàng)建一個免費(fèi)試用帳戶。
??https://signup.snowflake.com/??
在注冊頁面中,輸入您的基本詳細(xì)信息,然后單擊繼續(xù)。
選擇 Snowflake 版本、云提供商和區(qū)域。確保你已選中許可協(xié)議框,然后單擊開始。
一封確認(rèn)郵件將發(fā)送到你注冊的郵箱。
轉(zhuǎn)到你的電子郵件收件箱,打開來自 Snowflake support的激活郵件,然后單擊“點(diǎn)擊激活”鏈接。你將被重定向到新的頁面,你可以在其中設(shè)置用戶名和密碼。
設(shè)置用戶名和密碼。單擊“開始”繼續(xù)。
開始后,你將收到確認(rèn)郵件,說明你的帳戶已被激活。單擊“登錄到Snowflake”鏈接。
你現(xiàn)在將被重定向到Snowflake WebUI的登錄頁面。
總結(jié)
在本文中,我們了解了 Snowflake 的概念、架構(gòu),并開設(shè)了一個免費(fèi)試用帳戶,用于 POC 和測試目的。我們還討論了如何訪問 Snowflake WebUl。
在接下來的文章中,我們將看到如何安裝 SnowSQL,使用 SnowSQL (CLI) 訪問 Snowflake,并將學(xué)習(xí)各種數(shù)據(jù)庫管理活動。
譯者介紹
楊曉娟,51CTO社區(qū)編輯,西安電子科技大學(xué)計算機(jī)專業(yè)碩士研究生,資深研發(fā)工程師,信息系統(tǒng)項(xiàng)目管理師,擁有近20年Java開發(fā)經(jīng)驗(yàn)。分別在NEC、甲骨文、英方從事數(shù)據(jù)存儲、Oracle數(shù)據(jù)庫的數(shù)據(jù)遷移以及同構(gòu)/異構(gòu)數(shù)據(jù)庫復(fù)制等研發(fā)工作,尤其在數(shù)據(jù)庫、數(shù)據(jù)編碼等方面有深入鉆研和了解。
原文標(biāo)題:An Introduction To Snowflake Data Warehouse,作者:M.S.M. Sivam