Automatización de canalizaciones de datos en Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake
Caso de uso:
Solución: Snowpipe

COPY INTO programado a medianoche: retraso de 24 h-- Lote nocturno: corre a las 00:00, datos llegan todo el día
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
-- Una excepción a las 9 a. m. no aparecerá hasta mañana
COPY INTO: misma sintaxis y formatos de archivoCREATE PIPE harbr_events_pipe AS
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');

AUTO_INGEST: por eventos; el almacenamiento en la nube publica una notificacióninsertFiles o insertReport desde la orquestación
| Snowpipe | Snowpipe Streaming | |
|---|---|---|
| Disparador | Archivo llega al stage | Fila escrita por la app |
| Latencia | Minutos | Segundos |
| Caso de uso | Feeds basados en archivos | GPS, IoT, datos en tiempo real |
Elimina por completo el límite del archivo
# Snowpipe Streaming: la aplicación escribe filas directamente
channel = client.openChannel('GPS_CHANNEL', 'LOGISTICS', 'GPS_EVENTS')
channel.insertRows(rows=[
{'vehicle_id': 'V001', 'lat': 51.5, 'lng': -0.12, 'ts': now()}
])

| Método | Cuándo usar |
|---|---|
| COPY INTO | Cargas por lotes programadas: archivos nocturnos, exportaciones semanales; horas de latencia aceptables |
| Snowpipe | Llegadas continuas de archivos; cargas en minutos tras su llegada |
| Snowpipe Streaming | Datos generados por apps: GPS, IoT, mercados financieros; datos en segundos |
Automatización de canalizaciones de datos en Snowflake