Автоматизація конвеєрів даних у Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake
Випадок використання:
Рішення: Snowpipe

COPY INTO опівночі — затримка 24 години-- Нічний пакет: запускається о 00:00, дані прибувають увесь день
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
-- Випадок о 9:00 з’явиться лише завтра
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 | |
|---|---|---|
| Тригер | Файл потрапляє на stage | Рядок записує застосунок |
| Затримка | Хвилини | Секунди |
| Використання | Потоки подій із файлів | GPS, IoT, дані реального часу |
Повністю прибирає межу файлу
# Snowpipe Streaming: застосунок пише рядки безпосередньо
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