Snowpipe и Snowpipe Streaming

Автоматизация конвейеров данных в Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowpipe

Сценарий:

  • События доставки поступают непрерывно

Решение: Snowpipe

  • Snowpipe загружает данные из файлов сразу после их появления в стейдже.

Screenshot 2026-05-11 at 12.24.14 pm.png

1 * Snowflake Learning Material
Автоматизация конвейеров данных в Snowflake

Проблема пакетной загрузки

  • Файлы поступают в S3 каждые несколько минут в течение дня
  • Запланированный COPY INTO выполняется в полночь — задержка 24 часа
  • Задержки отправлений не появятся до следующего дня.
  • Snowpipe устраняет этот разрыв
-- Nightly batch: runs at 00:00, data arrives all day
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
-- A 9am exception won't appear until tomorrow
Автоматизация конвейеров данных в Snowflake

Что такое Snowpipe?

  • Оборачивает оператор COPY INTO — тот же синтаксис и форматы файлов
  • Запускается автоматически при появлении новых файлов в стейдже
  • Загружает данные микропакетами, как правило, в течение нескольких минут
  • Serverless — виртуальный склад не требуется
CREATE PIPE harbr_events_pipe AS
  COPY INTO logistics.delivery_events
  FROM @harbr_s3_stage/events/
  FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
Автоматизация конвейеров данных в Snowflake

Как работает Snowpipe

Рабочий процесс Snowpipe

  • AUTO_INGEST — событийный режим; облачное хранилище отправляет уведомление
  • Amazon S3 | Azure Event Grid | GCP Pub/Sub
  • Триггер через REST API — прямой вызов эндпоинтов insertFiles или insertReport из кода оркестрации
Автоматизация конвейеров данных в Snowflake

Тарификация Snowpipe

Screenshot 2026-05-11 at 12.24.14 pm.png

  • Тарификация по фиксированному количеству кредитов за каждый ГБ
  • Текстовые файлы: расчёт по несжатому размеру
  • Бинарные файлы: расчёт по фактическому размеру
Автоматизация конвейеров данных в Snowflake

Snowpipe Streaming

Snowpipe Snowpipe Streaming
Триггер Файл попадает в стейдж Строка записывается приложением
Задержка Минуты Секунды
Сценарий Файловые потоки событий GPS, IoT, данные приложений в реальном времени

 

Граница файла полностью устраняется

  • Строки записываются напрямую из приложения через Streaming Ingest SDK
  • Нет файлов, нет стейджей — задержка в секунды
# Snowpipe Streaming: application writes rows directly
channel = client.openChannel('GPS_CHANNEL', 'LOGISTICS', 'GPS_EVENTS')
channel.insertRows(rows=[
    {'vehicle_id': 'V001', 'lat': 51.5, 'lng': -0.12, 'ts': now()}
])
Автоматизация конвейеров данных в Snowflake

Выбор метода загрузки данных

Методы загрузки данных

Метод Когда использовать
COPY INTO Плановая пакетная загрузка — ночные файлы, еженедельные выгрузки, допустима задержка в часы
Snowpipe Непрерывное поступление файлов, загрузка в течение нескольких минут
Snowpipe Streaming Данные от приложений — GPS, IoT, финансовые рынки — доступны в секунды
1 * Snowflake Learning Resource
Автоматизация конвейеров данных в Snowflake

Lass uns üben!

Автоматизация конвейеров данных в Snowflake

Preparing Video For Download...