# Orquestación de datos

> Correr los procesos de datos en el orden y el momento justos, y reaccionar cuando fallan.

- Nivel: Avanzado
- Temas: Datos
- URL: https://tidbit.legios.com.ar/es/data-orchestration/
- En inglés: [Data orchestration](https://tidbit.legios.com.ar/data-orchestration/)

Una plataforma de datos real son decenas o cientos de procesos: traer los pedidos de la base de la tienda, traer los pagos del banco, limpiar los dos, cruzarlos, reconstruir el data mart, refrescar los dashboards. Cada paso depende de que otros terminen antes. La **orquestación de datos** es la capa que conoce esas dependencias, arranca cada proceso cuando sus insumos están listos y lleva la cuenta de qué corrió, qué falló y qué viene atrasado.

La mayoría de los orquestadores describe un pipeline como un DAG, un grafo dirigido acíclico: cajas para las tareas y flechas para "esto tiene que terminar antes de que arranque aquello", sin ciclos. Escribís el DAG como código y el orquestador lo programa (todas las noches a las 2, o cada vez que llega un archivo nuevo), corre en paralelo las tareas independientes, reintenta las que fallan y avisa a alguien cuando reintentar no alcanza. Si se rompe la extracción de pagos, nada de lo que sigue corre con la mitad de los datos.

**Apache Airflow** es la herramienta más conocida. Nació en Airbnb en 2014, pasó a ser un proyecto de Apache y los pipelines se escriben en Python. Herramientas más nuevas como Dagster y Prefect ponen el foco en los datos que produce cada tarea y no solo en las tareas, y las nubes ofrecen versiones administradas como Amazon MWAA. La orquestación no transforma los datos: llama a las herramientas que lo hacen, como dbt, Spark o SQL a secas, y se asegura de que corran en orden.

## Una analogía

Como el director de una orquesta. No toca ningún instrumento, pero decide quién entra cuándo, mantiene a todos a tempo y se da cuenta enseguida si falta una sección.

## Para quedarse

- Corre procesos de datos según sus dependencias, por horario o por eventos.
- Los pipelines suelen ser DAGs: tareas y flechas de "va después de", sin ciclos.
- Se encarga de reintentos, alertas, reprocesos y el historial de cada corrida.
- Apache Airflow es la herramienta clásica; Dagster y Prefect son opciones más nuevas.

## Para seguir leyendo

- [Apache Airflow en Wikipedia](https://es.wikipedia.org/wiki/Apache_Airflow)
- [Documentación de Apache Airflow (en inglés)](https://airflow.apache.org/docs/apache-airflow/stable/index.html)
- [Qué es la orquestación de datos (IBM, en inglés)](https://www.ibm.com/think/topics/data-orchestration)

## Términos relacionados

- [Data mart](https://tidbit.legios.com.ar/es/data-mart/): Una porción chica y enfocada de los datos de la empresa, armada para un equipo.
- [Dashboard](https://tidbit.legios.com.ar/es/dashboard/): Una pantalla con gráficos y números que muestra de un vistazo cómo viene algo.
- [Airbnb](https://tidbit.legios.com.ar/es/airbnb/): Un sitio y una app donde la gente le alquila su casa, o una habitación, a viajeros.
- [Python](https://tidbit.legios.com.ar/es/python/): Un lenguaje de programación muy usado, conocido por ser fácil de leer y de escribir.
- [Amazon](https://tidbit.legios.com.ar/es/amazon/): Una tienda online con su propia red de envíos, y la empresa que maneja AWS.
- [dbt](https://tidbit.legios.com.ar/es/dbt/): Una herramienta para escribir transformaciones de datos en SQL, con tests, como software.
- [Apache Spark](https://tidbit.legios.com.ar/es/apache-spark/): Un motor open source que reparte el trabajo con datos enormes entre muchas máquinas.
- [SQL](https://tidbit.legios.com.ar/es/sql/): El lenguaje para hacerle preguntas a una base de datos.
