Что такое Snowflake

Коротко

Snowflake — облачное хранилище данных (DWH) для аналитики. Один из мировых лидеров наряду с BigQuery и Redshift. В РФ официально недоступен (санкции), но используется в международных командах.

Зачем нужен

Для компаний, у которых:

  • Миллиарды строк данных.
  • Нужно аналитика на них — дашборды, ML, BI.
  • Не хотят содержать свой кластер.

Snowflake решает это облачно: вы платите за запросы, данные хранятся и обрабатываются в его инфраструктуре.

Ключевые особенности

1. Separation of storage and compute

Обычные БД: данные и вычисления на одном сервере. Ресурсы связаны.

Snowflake: данные — отдельно (в cloud storage), compute — отдельно (виртуальные warehouses). Можно поднять мощный warehouse на час, потом выключить — платите только за час.

2. Zero-copy cloning

Можно клонировать таблицу без физического копирования. Полезно для dev/test.

CREATE TABLE prod_orders_clone CLONE prod.orders;
-- Мгновенно, без затрат места

3. Time travel

Можно запросить состояние таблицы в прошлом:

SELECT * FROM orders AT(TIMESTAMP => '2026-04-14 10:00');
-- Увидеть, какими были данные вчера в 10:00

4. Auto-scaling

Warehouse автоматически подбирает размер под нагрузку. При пиках — добавляет воркеров.

5. Multi-cluster shared data

Несколько команд могут работать с одними данными без конфликтов. У каждой свой warehouse.

Архитектура

Данные в S3 / Azure Blob / GCS
         ↓
  Cloud Services (metadata, optimizer)
         ↓
  Virtual Warehouses (compute, scale отдельно)
         ↓
  Пользователи / BI / Apps

Прокачать тему на реальных задачах удобно в боте @kariernik_bot — база вопросов собрана с собеседований в Яндексе, Авито, Ozon, Тинькофф.

SQL в Snowflake

Стандартный ANSI SQL + расширения:

-- Создать warehouse
CREATE WAREHOUSE analytics_wh WITH WAREHOUSE_SIZE = 'MEDIUM';

-- Использовать warehouse
USE WAREHOUSE analytics_wh;

-- Обычные запросы
SELECT DATE_TRUNC('month', created_at), SUM(amount)
FROM orders
GROUP BY 1;

Для аналитика — почти идентично PostgreSQL / BigQuery.

Snowflake vs BigQuery vs Redshift

Критерий Snowflake BigQuery Redshift
Cloud Multi-cloud (AWS/Azure/GCP) Google AWS
Billing Per compute time Per query (scanned data) Per node
Scaling Manual (warehouses) Auto Manual
Сложность Средне Легко Сложно
Цена на масштабе Высокая Средняя Средняя

Когда использовать

Хорошо

  • Enterprise с легальным доступом к облакам.
  • Большие аналитические нагрузки.
  • Команды, работающие на разных континентах.
  • Data sharing между компаниями (secure data sharing).

Плохо

  • Российские компании без доступа к западным облакам.
  • Маленькие команды без больших объёмов.
  • Real-time системы с нагрузкой < 1 сек.

Альтернативы для РФ

Поскольку Snowflake в РФ недоступен, используют:

  • ClickHouse — open-source, отличная производительность.
  • Yandex DataLens + YDB / Greenplum — отечественные аналоги.
  • Self-hosted Postgres + ClickHouse — гибрид для маленьких команд.

Подробнее про ClickHouse.

Нужно ли аналитику знать Snowflake

В РФ — не критично

В большинстве вакансий требуют PostgreSQL или ClickHouse. Snowflake — опция для международных ролей.

Международный рынок — да

В США, ЕС Snowflake — стандарт. На LinkedIn «Snowflake» в описании вакансии очень часто.

Порог входа низкий

Если знаете стандартный SQL — переход на Snowflake занимает 1–2 недели. Специфика минимальна.

На собесе такие штуки часто спрашивают. Быстрый способ довести до автоматизма — тренажёр в Telegram с задачами из реальных интервью.

Частые команды

-- Загрузка из файла
COPY INTO orders FROM @s3_stage/orders.csv;

-- Массивы и JSON
SELECT
    data:user_id::int AS user_id,
    data:amount::decimal AS amount
FROM events;

-- UDF
CREATE FUNCTION fahrenheit_to_celsius(f FLOAT)
RETURNS FLOAT AS
$$ (f - 32) * 5 / 9 $$;

Типичные ошибки новичков

1. Держать warehouse включённым 24/7

Стоит денег. В идеале — auto-suspend после нескольких минут idle.

2. Query scan всей таблицы

Snowflake billing per compute, но запросы на большие сканы могут тормозить из-за нескольких gigs. Используйте partitioning и cluster keys.

3. Не использовать materialized views

На частых дашбордах MV дают 10-100x ускорение. Нужно включать.

Читайте также

FAQ

Snowflake дорогой?

Зависит от использования. Мелкая команда — $500–2000/мес. Крупная — $10k+/мес. Обычно дешевле, чем содержать свой Hadoop-кластер.

Нужен ли для работы в РФ?

Нет, обычно. Но упоминание в резюме — плюс для международных ролей.

Как учить?

У Snowflake бесплатный trial (30 дней). Пройдите их курс Snowflake University — бесплатно.

Чем Snowflake-компания отличается от Google-компании (BigQuery)?

На уровне аналитика — почти ничем. SQL стандартный. Отличия в billing, administration — это для DBA.