使用 ACCOUNT_USAGE 進行監控

Snowflake 管理、治理與協作

Emily Melhuish

Technical Curriculum Developer, Snowflake

監控的挑戰

  • 上個月哪些 warehouse 花費最高?
  • 是否有應該攔截的失控查詢?
  • 儲存用量是否在預算內?
  • 是否出現異常的登入模式?

ACCOUNT_USAGE 能回答這些問題。

成本控管架構.png

Snowflake 管理、治理與協作

什麼是 ACCOUNT_USAGE?

  • SNOWFLAKE 系統資料庫中的一個 schema
  • 包含揭露帳戶歷史資料的檢視表
  • 最多延遲 3 小時
  • 多數檢視表保留 365 天資料

帳戶總覽.png

Snowflake 管理、治理與協作

ACCOUNT_USAGE 與 INFORMATION_SCHEMA 比較

 

功能 ACCOUNT_USAGE INFORMATION_SCHEMA
範圍 整個帳戶與所有資料庫的歷史 你目前資料庫的即時狀態
資料延遲 最多 3 小時 低延遲
保留期 最長 365 天 最長 6 個月(依檢視表而異)
已刪除物件 會包含 不包含
主要用途 歷史稽核與成本分析 即時狀態與中介資料
Snowflake 管理、治理與協作

WAREHOUSE_METERING_HISTORY

  • 回答哪些 warehouse 消耗最多 credits
SELECT warehouse_name,
       SUM(credits_used) AS total_credits
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE start_time >= DATEADD('day', -30, CURRENT_TIMESTAMP())
GROUP BY warehouse_name
ORDER BY total_credits DESC;
Snowflake 管理、治理與協作

QUERY_HISTORY

  • 紀錄帳戶中的每個查詢
    SELECT query_text,
         warehouse_name,
         execution_time,
         bytes_scanned
    FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
    WHERE start_time >= DATEADD('day', -7, CURRENT_TIMESTAMP())
    ORDER BY execution_time DESC
    LIMIT 10;
    
Snowflake 管理、治理與協作

STORAGE_USAGE

  • 追蹤帳戶使用了多少儲存空間
    • 包含使用中與 Fail-safe 儲存
      SELECT usage_date,
         ROUND(storage_bytes / POWER(1024, 3), 2) AS storage_gb,
         ROUND(failsafe_bytes / POWER(1024, 3), 2) AS failsafe_gb
      FROM SNOWFLAKE.ACCOUNT_USAGE.STORAGE_USAGE
      ORDER BY usage_date DESC
      LIMIT 30;
      
Snowflake 管理、治理與協作

LOGIN_HISTORY

  • 紀錄針對帳戶的每次登入嘗試
    • 無論成功或失敗
SELECT user_name,
       event_timestamp,
       reported_client_type,
       error_code,
       error_message
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE error_code IS NOT NULL
  AND event_timestamp >= DATEADD('day', -7, CURRENT_TIMESTAMP())
ORDER BY event_timestamp DESC;
Snowflake 管理、治理與協作

一起來練習吧!

Snowflake 管理、治理與協作

Preparing Video For Download...