資料保護與分享

Snowflake 架構

Emily Melhuish

Technical Curriculum Developer, Snowflake

出錯時怎麼辦

之前

  • subscription 資料表有 847 列
DELETE FROM subscriptions
WHERE status = 'inactive';

糟了的畫面

之後

  • subscription 資料表有 0 列
  • Snowflake 在每次變更前都會保留資料狀態
  • 可設定保留時間視窗

時間旅程示意

Snowflake 架構

Time Travel(時間旅程)

  • 在保留視窗內的任一時間點查詢資料
  • DATA_RETENTION_TIME_IN_DAYS 可設在 account、database、schema、table(以最低層級為準)
  • Standard:最多保留 1 天
  • Enterprise:最長 90 天(依版本與物件規則)
  • 不僅限於 SELECT 查詢

時間軸顯示現在與 90 天前

Snowflake 架構

瀏覽歷史:Timestamp 與 Offset

  • AT BEFORE(STATEMENT)/BEFORE(STATEMENT)

    • 依查詢 ID 進行復原
    • 你會回到該語句執行前的資料狀態
  • UNDROP

    • 例如,UNDROP TABLE t
    • 僅在仍可復原期間有效
Snowflake 架構

瀏覽歷史:Statement 與 Undrop

  • AT BEFORE(STATEMENT)/BEFORE(STATEMENT)

    • 依查詢 ID 進行復原
    • 你會回到該語句執行前的資料狀態
  • UNDROP

    • 例如,UNDROP TABLE t
    • 僅在仍可復原期間有效
Snowflake 架構

Fail-Safe(安全保留)

  • 於 Time Travel 之外再自動保留 7 天(Fail-safe)
  • 預設啟用,無需設定
  • 需由 Snowflake 支援協助復原
  • Fail-safe 中的資料會計入費用

時間軸與選項示意

Snowflake 架構

Zero-Copy Cloning(零拷貝複製)

SQL

CREATE TABLE SUBSCRIPTIONS_BACKUP 
  CLONE subscriptions;

Output

Table SUBSCRIPTIONS_BACKUP 
successfully created.
  • 複製會共用底層儲存體
  • 只有當表開始產生差異時才會計費

顯示 clone 與零拷貝儲存

Snowflake 架構

Snowflake Marketplace

Snowflake marketplace 截圖

Snowflake 架構

一起來練習吧!

Snowflake 架構

Preparing Video For Download...