Snowflake - 表和檢視型別



表型別

Snowflake 根據表的用途和性質將其分為不同的型別。共有四種類型的表:

永久表

  • 永久表在資料庫中建立。

  • 這些表會一直存在,直到從資料庫中刪除丟棄

  • 這些表旨在儲存需要最高級別資料保護和恢復的資料。

  • 這些是預設的表型別。

  • 這些表支援時間旅行,最長可達 90 天,即使用者可以獲取最多 90 天前的​​資料。

  • 它是故障安全的,如果資料因故障丟失,可以恢復。

臨時表

  • 顧名思義,臨時表的存在時間較短。

  • 這些表在會話期間存在。

  • 如果使用者希望為其後續查詢和分析建立一個臨時表,則在會話完成後,它會自動刪除該臨時表。

  • 它主要用於瞬態資料,例如 ETL/ELT

  • 臨時表支援時間旅行,但僅限於 0 到 1 天。

  • 它不是故障安全的,這意味著資料無法自動恢復。

瞬態表

  • 這些表會一直存在,直到使用者刪除或丟棄它們。

  • 多個使用者可以訪問瞬態表。

  • 它用於需要“資料永續性”但不需要長期“資料保留”的情況。例如,網站訪客的詳細資訊、訪問並註冊網站的使用者詳細資訊,因此註冊後,可能不需要將詳細資訊儲存在兩個不同的表中。

  • 瞬態表支援時間旅行,但僅限於 0 到 1 天。

  • 它也不是故障安全的。

外部表

  • 這些表會一直存在,直到被移除。

  • 這裡使用“移除”一詞,因為外部表類似於 Snowflake 之外的東西,它們無法刪除或丟棄。它應該被移除。

  • 可以將其視為 Snowflake 在外部資料湖之上,即資料湖的主要來源指向 Snowflake 以根據使用者的需求利用資料。

  • 無法直接訪問資料。可以透過外部階段在 Snowflake 中訪問它。

  • 外部表僅用於讀取。

  • 外部表不支援時間旅行。

  • 它在 Snowflake 環境內部不是故障安全的。

檢視型別

Snowflake 中有三種主要的分類檢視:

標準檢視

  • 這是預設的檢視型別。

  • 選擇表以檢視資料的查詢。

  • 使用者可以根據角色和許可權執行查詢。

  • 任何有權訪問這些檢視的角色都可以訪問底層 DDL。

安全檢視

  • 安全檢視意味著只能由授權使用者訪問。

  • 授權使用者可以檢視定義和詳細資訊。

  • 擁有適當角色的授權使用者可以訪問這些表並執行查詢。

  • 在安全檢視中,Snowflake 查詢最佳化器會繞過用於常規檢視的最佳化。

物化檢視

  • 物化檢視更像是一個表。

  • 這些檢視使用篩選條件儲存來自主要來源的結果。例如,一家公司擁有從公司成立之初開始的所有活躍、不活躍或已故員工的記錄。現在,如果使用者只需要活躍員工的詳細資訊,則可以查詢主表並將其儲存為物化檢視以供進一步分析。

  • 物化檢視會自動重新整理,即只要主表獲得額外的/新的員工記錄,它也會重新整理物化檢視。

  • Snowflake 也支援安全物化檢視。

  • 物化檢視會自動維護,它可能會消耗大量的計算資源。

  • 物化檢視的總成本基於“資料儲存+計算+無伺服器服務”。

  • 每個物化檢視的計算費用根據資料變化量計算。

廣告