Мониторинг с помощью ACCOUNT_USAGE

Управление, управление данными и совместная работа в Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Проблема мониторинга

  • Какие хранилища были самыми дорогими в прошлом месяце?
  • Были ли запросы, которые следовало прервать?
  • Укладывается ли хранилище в бюджет?
  • Наблюдались ли необычные попытки входа?

ACCOUNT_USAGE отвечает на эти вопросы

Система контроля затрат.png

Управление, управление данными и совместная работа в Snowflake

Что такое ACCOUNT_USAGE?

  • Схема внутри системной базы данных SNOWFLAKE
  • Содержит представления с историческими данными аккаунта
  • Задержка обновления — до 3 часов
  • Большинство представлений хранят данные 365 дней

Обзор аккаунта.png

Управление, управление данными и совместная работа в Snowflake

ACCOUNT_USAGE vs INFORMATION_SCHEMA

 

Характеристика ACCOUNT_USAGE INFORMATION_SCHEMA
Охват История всего аккаунта, все базы данных Текущее состояние базы данных
Задержка данных До 3 часов Минимальная задержка
Хранение До 365 дней До 6 месяцев (зависит от представления)
Удалённые объекты Включены Не включены
Основное применение Аудит истории и анализ затрат Текущее состояние и метаданные
Управление, управление данными и совместная работа в Snowflake

WAREHOUSE_METERING_HISTORY

  • Показывает, какие хранилища потребили больше всего кредитов
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...