Skip to main content
Snowflake

Nuevas funcionalidades en Snowflake: Dynamic Tables y por qué deberías utilizarlas

By enero 25, 2024septiembre 2nd, 2026No Comments

En arquitecturas modernas de datos, uno de los mayores retos es mantener datasets transformados y actualizados de forma automática y eficiente.

Tradicionalmente, en Snowflake, esto se resolvía mediante:

  • Streams
  • Tasks
  • Procedimientos almacenados
  • Orquestadores externos

Con la introducción de Dynamic Tables, Snowflake simplifica este modelo y permite definir pipelines declarativos que se actualizan automáticamente.

¿Qué es una Dynamic Table?

Una Dynamic Table es una tabla que se actualiza automáticamente en función de una consulta declarativa y un objetivo de frescura (target lag).

En lugar de programar tareas manuales, simplemente definimos:

  • La consulta base
  • El tiempo máximo de retraso permitido

Snowflake se encarga de mantener la tabla actualizada.

Sintaxis básica

Ejemplo:

CREATE OR REPLACE DYNAMIC TABLE sales_summary

TARGET_LAG = ‘5 minutes’

WAREHOUSE = analytics_wh

AS

SELECT

    customer_id,

    SUM(total_amount) AS total_spent

FROM orders

GROUP BY customer_id;

En este ejemplo:

  • La tabla se actualiza automáticamente.
  • Se mantiene con un retraso máximo de 5 minutos.
  • Snowflake gestiona el refresco.

El problema que resuelven

Antes de Dynamic Tables, mantener transformaciones incrementales requería:

  • Crear un Stream
  • Crear un Task
  • Gestionar dependencias
  • Manejar fallos manualmente
  • Supervisar ejecución

Esto añadía complejidad operativa.

Dynamic Tables eliminan gran parte de esta fricción.

Diferencia frente a Streams + Tasks

Streams + Tasks

Dynamic Tables

Requiere lógica manual

Declarativo

Orquestación explícita

Orquestación automática

Mayor mantenimiento

Menor complejidad

Gestión de dependencias manual

Grafo gestionado por Snowflake

Dynamic Tables simplifican pipelines incrementales.

¿Cómo funcionan internamente?

Snowflake:

  • Analiza la consulta
  • Determina dependencias
  • Ejecuta actualizaciones incrementales
  • Mantiene el estado interno

Se construye automáticamente un DAG (grafo de dependencias).

El usuario define el “qué”, no el “cómo”.

Target Lag: el concepto clave

TARGET_LAG define la frescura deseada.

Ejemplo:

TARGET_LAG = ‘1 hour’

Esto significa que la tabla puede tener hasta una hora de retraso respecto a las tablas base.

No es ejecución en tiempo real estricto, sino actualización basada en SLA de frescura.

Casos de uso ideales

Dynamic Tables son especialmente útiles para:

  • Transformaciones agregadas recurrentes
  • Modelos analíticos intermedios
  • Data marts derivados
  • Pipelines declarativos
  • Sustitución de procesos batch simples

No son necesariamente la mejor opción para lógica extremadamente compleja.

Ejemplo más avanzado

CREATE OR REPLACE DYNAMIC TABLE customer_metrics

TARGET_LAG = ’10 minutes’

WAREHOUSE = analytics_wh

AS

SELECT

    c.customer_id,

    COUNT(o.order_id) AS total_orders,

    SUM(o.total_amount) AS lifetime_value

FROM customers c

LEFT JOIN orders o

    ON c.customer_id = o.customer_id

GROUP BY c.customer_id;

Snowflake mantiene esta tabla actualizada automáticamente.

Beneficios principales

🔹 Simplicidad

Se elimina la necesidad de múltiples objetos de orquestación.

🔹 Declarativo

El desarrollador define la transformación, no la ejecución.

🔹 Mantenimiento reducido

Menos código, menos dependencias manuales.

🔹 Integración nativa

Totalmente integrado en el ecosistema Snowflake.

Consideraciones importantes

Antes de usar Dynamic Tables:

  • Evaluar coste del warehouse asociado
  • Definir correctamente el target lag
  • Entender dependencias
  • Evaluar impacto en consumo
  • Revisar frecuencia de actualización necesaria

No todo necesita refresco frecuente.

Cuándo no usar Dynamic Tables

Puede no ser la mejor opción cuando:

  • Se requiere control muy específico de ejecución
  • La lógica es altamente procedural
  • Se necesita integración con sistemas externos
  • La transformación depende de eventos fuera de Snowflake

En esos casos, Streams + Tasks o herramientas externas pueden seguir siendo válidas.

Dynamic Tables y arquitectura moderna

Dynamic Tables refuerzan el enfoque:

  • ELT declarativo
  • Menos orquestación manual
  • Más automatización nativa
  • Arquitectura simplificada

Son un paso hacia pipelines más mantenibles y escalables.

Conclusión

Dynamic Tables representan una evolución significativa en Snowflake al simplificar la creación y mantenimiento de pipelines de transformación incrementales.

Al adoptar un enfoque declarativo basado en frescura objetivo, reducen complejidad operativa y permiten a los equipos centrarse en la lógica de negocio en lugar de la orquestación.

Para arquitecturas modernas basadas en Snowflake, Dynamic Tables son una herramienta poderosa que merece ser evaluada estratégicamente.

Leave a Reply