Автоматизация конвейеров данных в Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake
Сценарий:
Решение: Snowpipe

COPY INTO выполняется в полночь — задержка 24 часа-- 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
COPY INTO — тот же синтаксис и форматы файловCREATE PIPE harbr_events_pipe AS
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');

AUTO_INGEST — событийный режим; облачное хранилище отправляет уведомлениеinsertFiles или insertReport из кода оркестрации
| Snowpipe | Snowpipe Streaming | |
|---|---|---|
| Триггер | Файл попадает в стейдж | Строка записывается приложением |
| Задержка | Минуты | Секунды |
| Сценарий | Файловые потоки событий | GPS, IoT, данные приложений в реальном времени |
Граница файла полностью устраняется
# 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()}
])

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