作為一個(gè)快速簡便的數(shù)據(jù)倉庫,Snowflake可以動(dòng)態(tài)擴(kuò)展,以便在企業(yè)需要時(shí)為其提供所需的性能。
數(shù)據(jù)倉庫,也稱為企業(yè)數(shù)據(jù)倉庫(EDW),是用于分析的高度并行的SQL或NoSQL數(shù)據(jù)庫。它們?cè)试S企業(yè)從多個(gè)源導(dǎo)入數(shù)據(jù),并從數(shù)PB的數(shù)據(jù)中快速生成復(fù)雜的報(bào)告。
數(shù)據(jù)倉庫和數(shù)據(jù)集市之間的區(qū)別在于,數(shù)據(jù)集市通常僅限于單個(gè)主題和單個(gè)部門。數(shù)據(jù)倉庫和數(shù)據(jù)湖之間的區(qū)別在于數(shù)據(jù)湖以其自然格式(通常是blob或文件)存儲(chǔ)數(shù)據(jù),而數(shù)據(jù)倉庫將數(shù)據(jù)存儲(chǔ)為數(shù)據(jù)庫。
Snowflake簡介
Snowflake是一個(gè)完全關(guān)聯(lián)的ANSI SQL數(shù)據(jù)倉庫,它是從頭開始為云計(jì)算而構(gòu)建的。它的架構(gòu)將計(jì)算與存儲(chǔ)分開,這樣即使在查詢運(yùn)行時(shí),用戶也可以在不延遲或中斷的情況下動(dòng)態(tài)地?cái)U(kuò)展。當(dāng)用戶需要的時(shí)候,就能得到其所需要的性能,而且只需要為其所使用的計(jì)算資源支付費(fèi)用。Snowflake目前運(yùn)行在亞馬遜網(wǎng)絡(luò)服務(wù)和微軟Azure云平臺(tái)上。
Snowflake是一個(gè)具有矢量化執(zhí)行的全列數(shù)據(jù)庫,使它能夠處理最苛刻的分析工作負(fù)載。Snowflake的自適應(yīng)優(yōu)化可以確保查詢自動(dòng)獲得最佳性能,而無需管理索引、分發(fā)鍵或優(yōu)化參數(shù)。
Snowflake憑借其獨(dú)特的多集群共享數(shù)據(jù)架構(gòu)可以支持無限制的并發(fā)性。這允許多個(gè)計(jì)算集群在同一數(shù)據(jù)上同時(shí)運(yùn)行,而不會(huì)降低性能。Snowflake甚至可以自動(dòng)擴(kuò)展以通過其多集群虛擬倉庫功能處理不同的并發(fā)需求,在峰值負(fù)載期間透明地添加計(jì)算資源,并在負(fù)載減少時(shí)縮小規(guī)模。
Snowflake的競(jìng)爭(zhēng)對(duì)手
Snowflake在云端的競(jìng)爭(zhēng)對(duì)手包括Amazon Redshif、Google BigQuery和Microsoft Azure SQL數(shù)據(jù)倉庫。其他主要競(jìng)爭(zhēng)對(duì)手,如Teradata、Oracle Exadata,MarkLogic和SAP BW/4HANA,可以安裝在云端、內(nèi)部部署和設(shè)備上。
Amazon Redshift
Amazon Redshift是一個(gè)快速可擴(kuò)展的數(shù)據(jù)倉庫,可讓用戶分析數(shù)據(jù)倉庫和Amazon S3數(shù)據(jù)湖中的所有數(shù)據(jù)。用戶使用SQL查詢Redshift。Redshift數(shù)據(jù)倉庫是一個(gè)可以使用并發(fā)查詢負(fù)載自動(dòng)部署和刪除容量的集群。但是,所有集群節(jié)點(diǎn)都在同一可用區(qū)中進(jìn)行配置。
Microsoft Azure SQL數(shù)據(jù)倉庫
Microsoft Azure SQL數(shù)據(jù)倉庫是一個(gè)基于云計(jì)算的數(shù)據(jù)倉庫,它使用Microsoft SQL引擎和MPP(大規(guī)模并行處理)快速運(yùn)行跨PB數(shù)據(jù)的復(fù)雜查詢。通過使用簡單的PolyBase T-SQL查詢將大數(shù)據(jù)導(dǎo)入SQL數(shù)據(jù)倉庫,然后使用大規(guī)模并行處理(MPP)的強(qiáng)大功能運(yùn)行高性能分析,用戶可以將Azure SQL數(shù)據(jù)倉庫用作大數(shù)據(jù)解決方案的關(guān)鍵組件。
Azure SQL數(shù)據(jù)倉庫在全球40個(gè)Azure云區(qū)域中可用,但給定的倉庫服務(wù)器僅存在于單個(gè)云區(qū)域中。用戶可以按需擴(kuò)展數(shù)據(jù)倉庫性能,但任何正在運(yùn)行的查詢都將被取消并回滾。
Google BigQuery
Google BigQuery是一個(gè)無服務(wù)器,高度可擴(kuò)展且經(jīng)濟(jì)高效的云計(jì)算數(shù)據(jù)倉庫,內(nèi)置GIS查詢、內(nèi)置BI引擎和內(nèi)置的機(jī)器學(xué)習(xí)功能。BigQuery可以快速運(yùn)行數(shù)PB的SQL查詢,并且可以直接加入公共或包含數(shù)據(jù)的商業(yè)數(shù)據(jù)集。
用戶只能在創(chuàng)建時(shí)設(shè)置BigQuery數(shù)據(jù)集的地理位置。查詢中引用的所有表必須存儲(chǔ)在同一位置的數(shù)據(jù)集中。這也適用于外部數(shù)據(jù)集和存儲(chǔ)桶。外部Google Cloud Bigtable數(shù)據(jù)的位置還有其他限制。在默認(rèn)情況下,查詢與數(shù)據(jù)在同一區(qū)域中運(yùn)行。
其運(yùn)行的地點(diǎn)可以是特定的地方,如弗吉尼亞州北部,也可以是更大的地理區(qū)域,如歐盟或美國。要將BigQuery數(shù)據(jù)集從一個(gè)區(qū)域移動(dòng)到另一個(gè)區(qū)域,用戶必須將其導(dǎo)出到與數(shù)據(jù)集位于同一位置的Google云存儲(chǔ)桶,將存儲(chǔ)桶復(fù)制到新位置,然后將其加載到新位置的BigQuery中。
Snowflake架構(gòu)
Snowflake使用虛擬計(jì)算實(shí)例來滿足其計(jì)算需求,并使用存儲(chǔ)服務(wù)來持久存儲(chǔ)數(shù)據(jù)。 Snowflake無法在私有云基礎(chǔ)設(shè)施(內(nèi)部部署或托管)上運(yùn)行。
沒有要執(zhí)行的安裝,也沒有配置。所有維護(hù)和調(diào)整均由Snowflake處理。
Snowflake使用中央數(shù)據(jù)存儲(chǔ)庫來存儲(chǔ)可從數(shù)據(jù)倉庫中的所有計(jì)算節(jié)點(diǎn)訪問的持久數(shù)據(jù)。同時(shí),Snowflake使用大規(guī)模并行處理(MPP)計(jì)算集群處理查詢,其中集群中的每個(gè)節(jié)點(diǎn)在本地存儲(chǔ)整個(gè)數(shù)據(jù)集的一部分。
當(dāng)數(shù)據(jù)加載到Snowflake中時(shí),Snowflake會(huì)將該數(shù)據(jù)重新組織為其內(nèi)部壓縮的列式格式。內(nèi)部數(shù)據(jù)對(duì)象只能通過SQL查詢?cè)L問。用戶可以通過其Web UI、CLI(SnowSQL),來自Tableau等應(yīng)用程序的ODBC和JDBC驅(qū)動(dòng)程序,通過編程語言的本機(jī)連接器以及BI和ETL工具的第三方連接器連接到Snowflake。
Snowflake架構(gòu)圖。需要注意,虛擬倉庫的CPU資源可以獨(dú)立于數(shù)據(jù)庫存儲(chǔ)進(jìn)行擴(kuò)展。
Snowflake功能
安全和數(shù)據(jù)保護(hù)。Snowflake提供的安全功能因版本而異。甚至標(biāo)準(zhǔn)版也提供所有數(shù)據(jù)的自動(dòng)加密功能,并支持多因素身份驗(yàn)證和單點(diǎn)登錄。企業(yè)版增加了加密數(shù)據(jù)的定期重新密鑰,企業(yè)版增加了對(duì)HIPAA和PCI DSS的支持。用戶可以選擇數(shù)據(jù)的存儲(chǔ)位置,這有助于符合歐盟GDPR法規(guī)。
標(biāo)準(zhǔn)和擴(kuò)展SQL支持。Snowflake支持SQL:1999中定義的大多數(shù)DDL和DML,以及事務(wù),一些高級(jí)SQL功能以及SQL:2003分析擴(kuò)展(窗口函數(shù)和分組集)的部分內(nèi)容。它還支持橫向和物化視圖、聚合函數(shù)、存儲(chǔ)過程和用戶定義的函數(shù)。
工具和接口。值得注意的是,Snowflake允許用戶從GUI或命令行控制虛擬倉庫。這包括創(chuàng)建、調(diào)整大小(零停機(jī)時(shí)間)、暫停和刪除倉庫。在查詢運(yùn)行時(shí)調(diào)整倉庫大小非常方便,尤其是當(dāng)用戶需要加速花費(fèi)太多時(shí)間的查詢時(shí)。然而,任何其他EDW軟件都沒有實(shí)現(xiàn)。
連接Snowflake具有Python、Spark、Node.js、Go、.Net、JDBC、ODBC和dplyr-snowflakedb的連接器和/或驅(qū)動(dòng)程序,這是在GitHub上維護(hù)的開源dplyr包擴(kuò)展。
數(shù)據(jù)導(dǎo)入和導(dǎo)出。Snowflake可以加載各種數(shù)據(jù)和文件格式。那包括壓縮文件;分隔數(shù)據(jù)文件;JSON、Avro、ORC、Parquet和XML格式;Amazon S3數(shù)據(jù)源;本地文件。它可以批量加載和卸載表格,以及從文件中連續(xù)批量加載。
數(shù)據(jù)共享。Snowflake支持與其他Snowflake帳戶安全地共享數(shù)據(jù)。通過使用零拷貝表克隆簡化了這一過程。
Snowflake的價(jià)格因版本和地點(diǎn)而異。其功能因版本而異,VPS實(shí)例目前僅在AWS上可用。
Snowflake教程
Snowflake提供了不少教程和視頻。一些教程幫助用戶入門,一些教程探索特定主題,還有一些可以演示功能。
建議用戶完成《Snowflake免費(fèi)試用實(shí)踐實(shí)驗(yàn)室指南》中描述的實(shí)踐。這應(yīng)該足以導(dǎo)入一些真實(shí)數(shù)據(jù),并測(cè)試一些查詢。
這個(gè)教程大量使用Snowflake工作表,這是在Web UI中運(yùn)行命令和SQL的便捷方式。除其他外,其中包括數(shù)據(jù)加載、查詢、結(jié)果緩存和克隆、半結(jié)構(gòu)化數(shù)據(jù)以及恢復(fù)數(shù)據(jù)庫對(duì)象的時(shí)間旅行。
實(shí)踐教程中的Snowflake工作表(右上角)。模式信息位于左上角,查詢結(jié)果位于左下角,帶有時(shí)序的查詢歷史記錄位于右下角。
總的來說,發(fā)現(xiàn)Snowflake令人印象深刻。原以為它會(huì)很笨重,但事實(shí)并非如此。實(shí)際上,它的許多數(shù)據(jù)倉庫操作都比人們預(yù)期的要快得多,當(dāng)有一個(gè)數(shù)據(jù)倉庫似乎在緩步前行時(shí),可以在不中斷正在發(fā)生的事情的情況下進(jìn)行干預(yù),并增加數(shù)據(jù)倉庫的大小。
Snowflake數(shù)據(jù)倉庫配置對(duì)話框。有各種各樣的大小,有幾種選項(xiàng)可以自動(dòng)進(jìn)行集群擴(kuò)展。
大部分?jǐn)U展都可以自動(dòng)化。在創(chuàng)建數(shù)據(jù)倉庫時(shí)(參見上面的屏幕截圖),可以選擇允許多個(gè)集群,設(shè)置擴(kuò)展策略的選項(xiàng)、自動(dòng)掛起的選項(xiàng),以及自動(dòng)恢復(fù)選項(xiàng)。默認(rèn)的自動(dòng)掛起時(shí)間為10分鐘,這使得數(shù)據(jù)倉庫在空閑時(shí)間超過該時(shí)間時(shí)不會(huì)消耗資源。自動(dòng)恢復(fù)幾乎是即時(shí)的,只要對(duì)數(shù)據(jù)倉庫進(jìn)行查詢就會(huì)發(fā)生。
考慮到Snowflake提供30天的免費(fèi)試用期,有400美元的信用額度,而且不需要安裝任何軟件,用戶應(yīng)該能夠確定Snowflake是否適合其目的,而無需任何現(xiàn)金支出。
費(fèi)用:2美元/信用額外加上23美元/TB/月的存儲(chǔ)空間,并且存儲(chǔ)空間需要預(yù)付費(fèi)。一個(gè)信用額度等于一個(gè)節(jié)點(diǎn)*小時(shí),按秒計(jì)費(fèi)。更高級(jí)別的計(jì)劃成本更加昂貴。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7035瀏覽量
89045 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24704
原文標(biāo)題:Snowflake將成為在云中變得更好的數(shù)據(jù)倉庫
文章出處:【微信號(hào):D1Net11,微信公眾號(hào):存儲(chǔ)D1net】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論