Моніторинг через ACCOUNT_USAGE

Керування, врядування й співпраця в Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

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

  • Які склади коштували найдорожче минулого місяця?
  • Чи були «runaway» запити, які мали б зупинити?
  • Чи вкладається сховище в бюджет?
  • Чи були нетипові спроби входу?

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

Passons à la pratique !

Керування, врядування й співпраця в Snowflake

Preparing Video For Download...