使用 ACCOUNT_USAGE 进行监控

Snowflake 管理、治理与协作

Emily Melhuish

Technical Curriculum Developer, Snowflake

监控问题

  • 上月哪些仓库成本最高?
  • 是否有应被拦截的失控查询?
  • 存储是否在预算内?
  • 是否出现异常登录模式?

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

  • 回答哪些仓库消耗了最多的 credit
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 管理、治理与协作

Passons à la pratique !

Snowflake 管理、治理与协作

Preparing Video For Download...