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