Tablas dinámicas

Automatización de canalizaciones de datos en Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Tablas dinámicas vs Streams y Tasks

Tablas dinámicas:

Captura de pantalla 11/5/2026 11:14:23

  • Simplifican la transformación del pipeline con SQL declarativo
  • Proceso de refresh automático
  • Snowflake detecta, programa y hace merge

Streams y tasks:

Captura de pantalla 11/5/2026 11:14:13

1 * Snowflake Learning Material
Automatización de canalizaciones de datos en Snowflake

¿Qué son las tablas dinámicas?

Automatización declarativa del pipeline

  • Contenido definido por una consulta SELECT — describes el resultado y Snowflake gestiona el refresh
  • Sin configurar streams ni programar tasks
CREATE DYNAMIC TABLE logistics.delivery_summary
  TARGET_LAG = '1 hour'
  WAREHOUSE = harbr_wh
AS
  SELECT region, COUNT(*) AS shipments,
         AVG(delivery_days) AS avg_days
  FROM logistics.shipments GROUP BY region;
Automatización de canalizaciones de datos en Snowflake

TARGET_LAG: reduce la obsolescencia

El contrato de frescura entre tú y Snowflake

Valor de TARGET_LAG Efecto
'5 minutes' La tabla nunca tiene más de 5 min de antigüedad; refrescos frecuentes
'1 hour' Refresca menos; menor consumo de cómputo
DOWNSTREAM Infiera el lag desde los dependientes; ideal para tablas encadenadas
Automatización de canalizaciones de datos en Snowflake

Refresh completo vs incremental

Refresh incremental

  • Rastrea exactamente qué filas fuente cambiaron
  • Refresca solo las afectadas — más rápido y barato a escala
-- Apto para incremental: 
SELECT region, COUNT(*) AS shipments
FROM logistics.shipments 
GROUP BY region;

Refresh completo

  • Reprocesa toda la consulta
  • Requerido para ciertas agregaciones y operaciones de conjuntos
Automatización de canalizaciones de datos en Snowflake

Encadenar tablas dinámicas

Diagrama de pipeline — delivery_events (origen) → cleaned_events (target_lag = DOWNSTREAM) → delivery_summary (target_lag = 1 HOUR)

  • Cada transformación es una tabla dinámica con su propia query
  • Las actualizaciones se propagan automáticamente en la cadena
  • El lag DOWNSTREAM se ajusta a la siguiente tabla: evita refrescos de más
Automatización de canalizaciones de datos en Snowflake

Tablas dinámicas vs Streams y Tasks

Tablas dinámicas: declarativas

  • Describe la salida; Snowflake gestiona el refresh, fácil de mantener
  • Ideales para capas de analítica/reporting
-- Declara el resultado para Snowflake 
CREATE DYNAMIC TABLE logistics.summary
  TARGET_LAG = '1 hour' 
  WAREHOUSE = harbr_wh
AS SELECT region, COUNT(*) 
FROM shipments 
GROUP BY 1;

Streams + Tasks: imperativas

  • Controlas qué se ejecuta y cuándo
  • Mejores para lógica compleja ramificada y pipelines operativos
-- Tú controlas cada paso
CREATE TASK process_events 
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA
  ('events_stream')
AS CALL logistics.process_new_events();
Automatización de canalizaciones de datos en Snowflake

DYNAMIC_TABLE_REFRESH_HISTORY

SELECT name, state, refresh_start_time, refresh_end_time
FROM TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY (
      NAME_PREFIX => 'HARBR_DB.DELIVERY_SUMMARY.', ERROR_ONLY => TRUE
    )
  )
ORDER BY name, data_timestamp;
NAME TRIGGER STATE START END
DELIVERY_SUMMARY SCHEDULED SUCCEEDED 2026-03-01 05:00:00 2024-03-01 05:00:08
DELIVERY_SUMMARY SCHEDULED FAILED 2026-03-01 04:00:00 2024-03-01 04:00:03
Automatización de canalizaciones de datos en Snowflake

¡Vamos a practicar!

Automatización de canalizaciones de datos en Snowflake

Preparing Video For Download...