Snowflake - 資料架構



Snowflake 資料架構重新發明了一種新的 SQL 查詢引擎。它專為雲而設計。Snowflake 不會利用或構建在任何現有的資料庫技術之上。它甚至不使用 Hadoop 等大資料軟體平臺。Snowflake 提供了分析型資料庫的所有功能,以及許多其他獨特的特性和功能供使用者使用。

Snowflake 擁有用於儲存結構化和半結構化資料的中央資料儲存庫。可以從 Snowflake 平臺中所有可用的計算節點訪問這些資料。它使用虛擬倉庫作為計算環境來處理查詢。在處理查詢時,它利用多叢集、微分割槽和高階快取概念。Snowflake 的雲服務負責為使用者提供端到端解決方案,例如使用者登入驗證到選擇查詢的結果。

Snowflake 的資料架構主要包含三個層

  • 資料庫儲存
  • 查詢處理
  • 雲服務

以下是 Snowflake 的資料架構圖:

Snowflake Data Architecture

資料庫儲存

Snowflake 支援 Amazon S3、Azure 和 Google Cloud 使用檔案系統將資料載入到 Snowflake 中。使用者應將檔案(.csv、.txt、.xlsx 等)上傳到雲端,並在 Snowflake 中建立連線以獲取資料。資料大小沒有限制,但根據雲服務,檔案大小最多為 5GB。一旦資料載入到 Snowflake 中,它就會利用其內部最佳化和壓縮技術以列式格式將資料儲存到中央儲存庫中。中央儲存庫基於雲端儲存資料。

Snowflake 負責資料管理的各個方面,例如如何使用自動資料聚類儲存資料、資料的組織和結構、透過將資料儲存在許多微分割槽中進行壓縮技術、元資料、統計資訊等等。Snowflake 將資料儲存為資料物件,使用者無法直接檢視或訪問它們。使用者可以透過 SQL 查詢(在 Snowflake 的 UI 中或使用 Java、Python、PHP、Ruby 等程式語言)訪問這些資料。

查詢處理

查詢執行是處理層或計算層的一部分。為了處理查詢,Snowflake 需要計算環境,在 Snowflake 世界中稱為“虛擬倉庫”。虛擬倉庫是一個計算叢集。虛擬倉庫包含 CPU、記憶體和臨時儲存系統,以便它可以執行 SQL 執行和 DML(資料操作語言)操作。

  • SQL SELECT 執行

  • 使用 Update、Insert、Update 更新資料

  • 使用 COPY INTO <tables> 將資料載入到表中

  • 使用 COPY INTO <locations> 從表中解除安裝資料

但是,伺服器的數量取決於虛擬倉庫的大小。例如,XSmall 倉庫每個叢集有 1 臺伺服器,而 Small 倉庫每個叢集有 2 臺伺服器,並且隨著尺寸的增加(例如 Large、XLarge 等)而翻倍。

在執行查詢時,Snowflake 會分析請求的查詢並使用最新的微分割槽並在不同階段評估快取以提高效能並減少獲取資料的時間。減少時間意味著使用者使用的積分更少。

雲服務

雲服務是 Snowflake 的“大腦”。它協調和管理 Snowflake 中的活動。它將 Snowflake 的所有元件整合在一起,以處理從登入驗證到傳遞查詢響應的使用者請求。

以下服務在此層級管理:

  • 它是所有儲存的集中式管理。

  • 它管理與儲存一起工作的計算環境。

  • 它負責雲端 Snowflake 的升級、更新、修補和配置。

  • 它對 SQL 查詢執行基於成本的最佳化。

  • 它自動收集統計資訊,例如使用的積分、儲存容量利用率

  • 安全性,例如基於角色和使用者的身份驗證、訪問控制

  • 它執行加密以及金鑰管理服務。

  • 它在資料載入到系統時儲存元資料。

以及更多...

廣告

© . All rights reserved.