Skip to main content
Data

Snowflake Tasks: automatizando procesos de datos

By septiembre 15, 2023septiembre 9th, 2026No Comments

En cualquier arquitectura de datos moderna, muchas operaciones deben ejecutarse de forma periódica o automática. Por ejemplo:

  • actualizar tablas agregadas
  • ejecutar procesos de transformación
  • limpiar datasets
  • generar reportes diarios

Para automatizar este tipo de tareas, Snowflake ofrece una funcionalidad llamada Tasks.

Las Tasks permiten programar la ejecución automática de consultas SQL o procedimientos almacenados dentro de Snowflake, facilitando la automatización de pipelines de datos.

Qué es una Task en Snowflake

Una Task es un objeto de Snowflake que permite ejecutar una instrucción SQL o un procedimiento almacenado de forma programada.

Las Tasks funcionan de forma similar a un scheduler, permitiendo definir cuándo y con qué frecuencia debe ejecutarse una operación.

Esto permite automatizar procesos sin necesidad de utilizar herramientas externas.

Para qué se utilizan las Tasks

Las Tasks son útiles en muchos escenarios dentro de una arquitectura de datos.

Algunos ejemplos incluyen:

  • actualizar tablas de agregación
  • ejecutar transformaciones de datos
  • programar procesos ETL
  • mantener datasets actualizados
  • ejecutar procesos de mantenimiento

Esto permite reducir intervenciones manuales en los pipelines de datos.

Crear una Task básica

Una Task puede crearse utilizando una instrucción SQL.

Ejemplo:

CREATE TASK daily_sales_summary

WAREHOUSE = analytics_wh

SCHEDULE = ‘USING CRON 0 2 * * * UTC’

AS

INSERT INTO sales_summary

SELECT

    order_date,

    SUM(order_amount)

FROM orders

GROUP BY order_date;

En este ejemplo:

  • la Task se ejecuta automáticamente cada día
  • utiliza un warehouse específico
  • ejecuta una consulta SQL

Programación mediante cron

Las Tasks pueden programarse utilizando expresiones CRON, lo que permite definir horarios muy flexibles.

Por ejemplo:

Ejecutar cada día a las 2:00 AM:

USING CRON 0 2 * * * UTC

Ejecutar cada hora:

USING CRON 0 * * * * UTC

Este tipo de programación permite automatizar procesos recurrentes.

Activar una Task

Después de crear una Task, es necesario activarla para que comience a ejecutarse.

ALTER TASK daily_sales_summary RESUME;

Una vez activada, Snowflake ejecutará la tarea según el horario definido.

Suspender una Task

Si es necesario detener temporalmente una Task, puede suspenderse.

ALTER TASK daily_sales_summary SUSPEND;

Esto evita que la tarea continúe ejecutándose.

Dependencias entre Tasks

Snowflake permite crear árboles de Tasks donde una tarea depende de la ejecución de otra.

Esto permite construir pipelines de datos con múltiples etapas.

Ejemplo:

  1. cargar datos crudos
  2. limpiar datos
  3. generar tablas agregadas

Cada Task puede activarse después de que la anterior haya terminado.

Ventajas de utilizar Tasks

El uso de Tasks en Snowflake ofrece varias ventajas.

Automatización

Permite ejecutar procesos de forma automática sin intervención manual.

Integración directa

Las Tasks forman parte del propio entorno Snowflake.

Simplicidad

Permiten automatizar consultas SQL sin necesidad de herramientas externas.

Orquestación básica

Es posible construir pipelines simples utilizando dependencias entre Tasks.

Monitorización de Tasks

Snowflake ofrece herramientas para revisar el estado y ejecución de las Tasks.

Se puede consultar el historial mediante:

SHOW TASKS;

También es posible revisar el historial de ejecuciones para analizar posibles errores o fallos.

Buenas prácticas al utilizar Tasks

Para trabajar correctamente con Tasks es recomendable:

  • utilizar warehouses adecuados para cada tarea
  • monitorizar ejecuciones periódicamente
  • evitar tareas demasiado complejas en una sola Task
  • organizar pipelines en múltiples etapas

Esto facilita el mantenimiento de los pipelines.

Tasks en arquitecturas modernas de datos

Las Tasks pueden formar parte de pipelines más amplios que incluyen:

  • ingestión de datos
  • transformaciones analíticas
  • generación de datasets agregados
  • actualización de dashboards

En arquitecturas modernas, estas tareas pueden combinarse con otras funcionalidades de Snowflake como:

  • Streams
  • Dynamic Tables
  • Stored Procedures

Esto permite construir pipelines de datos completamente dentro de Snowflake.

Conclusión

Las Tasks de Snowflake ofrecen una forma sencilla y eficiente de automatizar procesos de datos dentro de la plataforma. Permiten programar la ejecución de consultas o procedimientos almacenados, facilitando la creación de pipelines automatizados sin depender de herramientas externas.

Comprender cómo utilizar Tasks correctamente permite simplificar la gestión de procesos de datos y mejorar la eficiencia de las arquitecturas analíticas.

Leave a Reply