Curso
Parece que cada vez que abres LinkedIn aparece una herramienta nueva en un panorama de datos ya saturado. A medida que los equipos de datos amplían los componentes de su "data stack", necesitan una forma de gestionar y conectar estas herramientas dispersas.
La orquestación de datos es el proceso de desarrollar, ejecutar y supervisar procesos que combinan, transforman y organizan datos en todo un ecosistema de datos. Para ello, los ingenieros de datos utilizan herramientas de orquestación de datos. Aquí vamos a explorar dos de las más populares: Apache Airflow y Dagster. ¡Vamos allá!
¿Qué es Airflow?
Airflow es el estándar del sector para crear, ejecutar y monitorizar canalizaciones de datos como código. Se desarrolló originalmente en 2014 por el equipo de Data Engineering de Airbnb. Desde entonces, el proyecto fue adoptado por la Apache Software Foundation y se ha convertido en su oferta más popular.
Cada mes, Airflow se descarga más de treinta millones de veces y cuenta con una comunidad vibrante de colaboradores y usuarios. En Airflow, las canalizaciones de datos se denominan DAGs, siglas de grafos acíclicos dirigidos.
Puedes aprender más sobre Airflow en nuestro tutorial de primeros pasos con Apache Airflow.
¿Qué es Dagster?
Al igual que Airflow, Dagster es una herramienta de orquestación que permite definir canalizaciones de datos como código. Es de código abierto y se lanzó por primera vez en 2019. Dagster utiliza Python para definir "assets" (activos), que son los componentes básicos de una canalización de datos.
Dagster ha surgido como competidor de Airflow en un espacio relativamente poco poblado. El proyecto lo mantiene su comunidad open-source y cuenta con el respaldo comercial de Dagster Labs.
Conectar un data stack moderno
Entonces, ¿dónde encajan Airflow y Dagster en un data stack moderno? Empecemos con el diagrama de arquitectura de abajo.

Diagrama de arquitectura con una muestra de herramientas habituales en un data stack moderno.
Este diagrama muestra lo que muchos consideran un data stack estándar. Se compone de sistemas origen, herramientas de data warehousing y de transformación, y "destinos" aguas abajo como Tableau y Looker.
Aquí, Airflow y Dagster son las flechas que conectan este ecosistema de datos. Sin una herramienta de orquestación, mover datos de una herramienta a otra se vuelve complicado.
Las herramientas de orquestación, como Airflow y Dagster, también aportan una capa de observabilidad que facilita entender dónde, cómo y cuándo se canalizan los datos del origen al destino, y cómo se transforman por el camino.
Dagster vs Airflow: características y funcionalidades clave
Como ya habrás intuido, Airflow y Dagster comparten varias similitudes en su propósito y el papel que desempeñan en el data stack moderno. Entre ellas:
- Posibilidad de definir canalizaciones como código
- Integraciones nativas con el data stack moderno
- Experiencia de desarrollo local
Ahora bien, cada una ofrece un conjunto único de características y funciones que las hacen destacar por sí mismas.
Airflow
Veamos algunas de las funciones principales de Airflow:
Entender Airflow y los DAGs
En Airflow, las canalizaciones de datos se llaman DAGs (de directed-acyclic graphs). Piensa en un DAG como un conjunto de tareas conectadas en un orden específico. El bloque más básico de un DAG es una tarea. Por ejemplo, en una canalización que realiza extracción, transformación y carga (ETL), el paso de "transformación" sería su propia tarea.
Estas tareas se definen generalmente con operadores de Airflow. Pero, como verás enseguida, también hay otra forma de definir tareas usando la TaskFlow API.
Planificar DAGs en Airflow
La planificación de canalizaciones en Airflow es tremendamente flexible. ¿Necesitas ejecutar una canalización a diario? Sin problema. ¿Quieres que se ejecute el primer viernes de cada mes? También es fácil. ¿Y si tu responsable te pide disparar un DAG cuando se actualice un dataset? Airflow también puede con eso.
Airflow ofrece muchísimas opciones de personalización para planificar tus DAGs. Con funciones como CRON, Timetables y la planificación basada en datos, puedes hacer que se ejecuten cuando lo necesites.
TaskFlow API
Para facilitar la escritura de DAGs a los profesionales de datos, la comunidad de Airflow introdujo la TaskFlow API. En lugar del enfoque tradicional basado en operadores, la TaskFlow API te permite definir tareas simplemente decorando funciones. Esto hace mucho más sencillo e intuitivo compartir datos entre tareas y establecer dependencias.
Además, herramientas como Astro SDK se han construido encima de la TaskFlow API, ampliando aún más sus capacidades.
Dagster
Veamos cómo se compara Dagster:
El enfoque basado en assets de Dagster
Dagster adopta un enfoque basado en assets para construir canalizaciones. En Dagster, cualquier objeto de datos almacenado en un sistema persistente —como un archivo o una tabla— se denomina asset.
Estos assets se definen en código con funciones de Python. Cuando se ejecutan, Dagster crea automáticamente dependencias y materializa el asset. Este enfoque centrado en assets hace que sea fácil seguir cómo se producen y consumen los datos dentro de una canalización.
Entender los ops en Dagster
Otro concepto clave en Dagster son los "ops", que son algo similares a las tareas en Airflow. Los ops representan pasos individuales de una canalización, y cada op tiene entradas y salidas que pueden ser assets. Además, estas entradas y salidas pueden tiparse para definir con claridad los datos que se procesan.
Entonces, ¿cuál es la relación entre ops y assets? Los ops son los pasos (como extraer, transformar, cargar) que operan sobre los assets, que son los propios objetos de datos.
El sistema de tipos de Dagster
Para aportar claridad al flujo de datos en una canalización, Dagster utiliza un sólido sistema de tipos para validar las entradas y salidas de cada op. Aunque Airflow admite definiciones de tipos de Python, Dagster ha hecho del tipado una parte central de la experiencia de autoría.
No solo puedes tipar los ops; las definiciones de assets también pueden tiparse, garantizando que los datos que produce un asset sean correctos y estén validados.
Airflow vs Dagster: experiencia del desarrollador
Al elegir una herramienta de orquestación, factores como la densidad de funciones, el coste total de propiedad y la escalabilidad pueden formar parte de tus criterios. Dicho esto, es clave tener en cuenta la experiencia del desarrollador. Una experiencia intuitiva, eficiente y robusta permite iterar rápido y abordar de forma proactiva retos como ejecutar tests unitarios y gestionar dependencias.
Airflow
Comunidad de Airflow
¿Tienes una duda o un bug de Airflow que no consigues resolver? Lo más probable es que ya exista la solución. Airflow tiene una de las comunidades de Slack más grandes de cualquier proyecto Apache y cuenta con más de tres mil contribuidores. Se han creado miles de blogs, tutoriales y cursos alrededor de Airflow. Además de ayudar a los usuarios, la comunidad se encarga de construir y mantener el propio proyecto.
Astronomer, el desarrollador comercial detrás de Apache Airflow, ha llevado la experiencia de desarrollo a otro nivel. La CLI astro aporta una capa adicional de abstracción y funcionalidades para utilidades de Airflow. Astronomer también ofrece su registry y el chatbot "Ask Astro" para resolver cualquier pregunta que pueda tener un desarrollador sobre Airflow.
Desarrolla y prueba en local
Una de las funciones que hacen a Airflow tan atractivo es la posibilidad de desarrollar y probar en local. Con la CLI de airflow, un desarrollador puede levantar una instancia en cuestión de segundos. Luego, puedes modificar el código en local y probar por la UI o la CLI. Esto permite iterar rápido y acortar los ciclos de entrega, especialmente en equipos que usan Airflow intensivamente.
Nuevas herramientas para crear DAGs
Durante un tiempo, la única forma de definir un DAG en Airflow era con operadores tradicionales. La TaskFlow API cambió esto rápido y ofreció una alternativa. Ahora, herramientas como dag-factory y gusty facilitan como nunca empezar a escribir y ejecutar DAGs.
Dagster
Gran parte de la experiencia de desarrollo local de Dagster se parece a la de Airflow, incluida la posibilidad de desarrollar, probar y ejecutar canalizaciones en local. Ambas herramientas admiten prácticas de SDLC de nivel enterprise habituales, como CI/CD.
Sin embargo, es difícil comparar la magnitud de la comunidad de Airflow con la de Dagster. Donde Airflow tiene miles de recursos generados por la comunidad, Dagster aún está alcanzando ese ritmo. Al desarrollar y depurar canalizaciones con Dagster, puede que te cueste más encontrar rápidamente los recursos necesarios para implementar una solución.
Fácil de testear
El enfoque basado en assets de Dagster hace que las canalizaciones sean bastante fáciles de testear. De hecho, el testing es uno de los pilares de su propuesta de valor. Junto con el sistema de tipos mencionado, Dagster prioriza que las canalizaciones se testen de forma similar a un producto software.
La documentación de Dagster enfatiza el reto de la lógica de negocio enmarañada en cualquier definición de canalización y las técnicas comunes para abordarlo en los tests. Este es un punto donde muchos sienten que la experiencia de desarrollo con Airflow flojea.
Dagster vs Airflow: puntos fuertes y débiles
¿Empiezas a hacerte una idea de qué supone trabajar con Airflow y Dagster? Ahora veremos dónde destaca cada una y algunas carencias conocidas.
Airflow
Extensibilidad sin límites
Suena a tópico, pero con Airflow, el límite es el cielo. La extensibilidad del proyecto es incomparable. Los desarrolladores pueden crear sus propios operators, sensors, executors e incluso timetables. Para equipos con casos de uso únicos, esto resulta muy atractivo. ¿No quieres crear integraciones a medida?
No te preocupes, probablemente no te haga falta. Hay más de 1.600 integraciones listas para usar tras un simple pip install. Ser el estándar del sector en orquestación de datos significa que Airflow se beneficia de una innovación continua, creando una especie de "círculo virtuoso".
Ejecuta Airflow en producción
Al ser un producto verdaderamente open-source, hay multitud de formas de ejecutar Airflow en producción. Desde clústeres de Kubernetes on-prem hasta servicios totalmente gestionados, miles de empresas ejecutan Airflow en entornos productivos.
Regulaciones gubernamentales y de reporte, compromisos de privacidad y seguridad de datos y un ecosistema de redes complejo obligan a configurar las herramientas de formas a veces inimaginables. Para estos equipos, necesitan toda la flexibilidad y personalización posibles al ejecutar Airflow en producción. Otros tal vez prefieran que un proveedor gestionado se encargue de todo. Con Airflow, ambos extremos (y todas las opciones intermedias) son viables.
Curva de aprendizaje
Airflow es extensible y cuenta con miles de plugins. Los DAGs pueden definirse con distintas técnicas, las canalizaciones pueden dispararse con planificación basada en datos y se puede configurar un backend de secretos personalizado.
Todo esto implica que, para aprovechar Airflow al máximo, hay una cierta curva de aprendizaje.
Para ingenieros de datos que quieran definir y ejecutar canalizaciones rápidamente, Airflow presenta una barrera de entrada. A menudo, esto les lleva a decantarse por una opción más directa, como Dagster.
Dagster
Autoría intuitiva de canalizaciones
Construir canalizaciones con Dagster es intuitivo. Su enfoque basado en assets resulta atractivo para quienes quieren llevar una canalización a producción con el menor overhead posible.
Dagster presenta una curva de aprendizaje mucho menor que trabajar con operadores tradicionales de Airflow, sobre todo para usuarios habituados a escribir funciones de Python para construir sus canalizaciones. Esta es una de sus grandes fortalezas y, a menudo, un motivo clave para que un equipo confíe en Dagster para sus canalizaciones.
Comunidad en crecimiento
Competir con la comunidad de Airflow es complicado, incluso para Dagster. Desde contribuir al proyecto open source hasta construir conectores para las últimas incorporaciones al data stack, pasando por resolver dudas y curar documentación, la comunidad de Airflow lo ofrece casi todo. Aun así, la comunidad de Dagster está creciendo, y rápido. A nivel enterprise, esta comunidad emergente es tanto un riesgo como una oportunidad para aportar influencia al proyecto.
Airflow vs. Dagster: ¿cuál elegir?
Entonces, después de comparar ambas herramientas, ¿cuál te conviene? En la tabla siguiente, recopilamos una comparativa de cada una:
|
Función/aspecto |
Airflow |
Dagster |
|
Concepto de canalización |
Usa grafos acíclicos dirigidos (DAGs) para representar canalizaciones, con tareas como unidades básicas. |
Usa un enfoque basado en assets, donde cualquier objeto de datos almacenado es un asset, y las operaciones se llaman "ops". |
|
Representación de tareas |
Las tareas se definen con operadores o con la TaskFlow API para una definición basada en funciones. |
Los ops representan pasos de la canalización, con entradas y salidas tipadas para mayor claridad. |
|
Planificación |
Planificación muy flexible con CRON, timetables y disparadores basados en datos. |
La planificación tiene menos protagonismo y se vincula a los assets y sus dependencias. |
|
Desarrollo local |
Admite desarrollo local mediante la CLI de Airflow para iterar y probar rápidamente. |
También admite desarrollo y pruebas en local, pero con menos recursos de comunidad disponibles. |
|
Sistema de tipos |
Admite type hints de Python, pero no es una función central. |
Sistema de tipos sólido para validar entradas y salidas en cada paso, central en el diseño de la canalización. |
|
Extensibilidad |
Muy extensible con más de 1.600 integraciones, operadores, sensores y más personalizados. |
Extensibilidad más limitada, pero intuitiva para usuarios de funciones en Python. |
|
Soporte de la comunidad |
Comunidad grande y madura, con miles de contribuidores y abundantes recursos (blogs, tutoriales). |
Comunidad más pequeña pero en rápido crecimiento, con posibilidad de influir y contribuir. |
|
Facilidad de aprendizaje |
Curva de aprendizaje más pronunciada por su extensibilidad y funciones personalizadas. |
Curva de aprendizaje menor gracias a una autoría intuitiva y al enfoque basado en assets. |
|
Testing |
El testing es posible, pero no es el foco principal. |
Fuerte énfasis en el testing; el enfoque basado en assets facilita probar las canalizaciones. |
|
Despliegue en producción |
Puede ejecutarse en diversos entornos, desde Kubernetes on-prem hasta servicios totalmente gestionados. |
Menos maduro en opciones de despliegue productivo, pero aún flexible para casos enterprise. |
|
Integraciones personalizadas |
Extensibilidad prácticamente infinita con miles de integraciones y posibilidad de crear componentes a medida. |
Más limitado que Airflow, aunque crece con la expansión de su comunidad. |
|
Experiencia del desarrollador |
TaskFlow API y herramientas como dag-factory mejoran la experiencia del desarrollador. |
Más intuitivo, con énfasis en la sencillez y el despliegue rápido, pero con menos herramientas disponibles. |
En el siguiente gráfico se resumen las similitudes y diferencias clave en las características y funcionalidades de Airflow y Dagster.

Similitudes entre Airflow y Dagster.
Y ahora la pregunta del millón: ¿qué herramienta de orquestación deberías elegir para el trabajo?
¿Por qué elegir Airflow?
Simple y claro: Airflow es el estándar de facto para escribir y ejecutar canalizaciones de datos en producción. Sí, hay patrones de diseño de Dagster que pueden ser técnicamente superiores a Airflow. Pero la extensibilidad de Airflow y la comunidad que lo respalda lo convierten en una elección sencilla para equipos de datos consolidados. Airflow ofrece lo mejor de ambos mundos: una enorme biblioteca de herramientas existentes más la capacidad de crear cualquier operator, sensor o hook que imagines. Airflow ha encontrado su nicho y no va a desaparecer.
¿Por qué elegir Dagster?
Para equipos pequeños acostumbrados a escribir canalizaciones caseras, Dagster puede ser la herramienta adecuada. Aunque Dagster no tenga todos los "adornos" que admite Airflow, ofrece un camino rápido de la idea a producción. Dagster brinda un soporte excelente para lo que importa (piensa en desarrollo local, tests unitarios robustos y un marco modular), junto con un buen número de integraciones. A medida que el proyecto madura y la comunidad crece, Dagster sigue acortando distancias con Airflow manteniendo una baja barrera de entrada.
Conclusión
Comparar herramientas siempre es complicado. Es difícil decir que una es "mejor" que otra o forzar una en un caso de uso concreto. La verdad es que el armazón subyacente de Airflow y Dagster es sorprendentemente similar. Los mejores profesionales de datos no se dejan llevar solo por las funciones al elegir una herramienta; se centran en cómo impacta en el proceso dentro de su ecosistema.
¿Airflow permite a mis equipos iterar más rápido? ¿Una herramienta como Dagster ayudará a los ingenieros a testear mejor el código antes de enviarlo a producción? ¿Esta herramienta de orquestación encaja en la visión global de nuestra plataforma de datos? Preguntas como estas ayudan a generar valor para los equipos y sus stakeholders.
Si estás listo para empezar con Apache Airflow, echa un vistazo al curso de DataCamp Introduction to Airflow in Python. Aquí aprenderás lo básico sobre tareas, sensores y todo lo que necesitas para construir tus primeros DAGs en Airflow.
Soy ingeniero de datos en Delaware North, y me especializo en crear infraestructuras de datos resistentes y escalables utilizando Airflow, Databricks y AWS. Jake también es el instructor del curso Introducción a las canalizaciones de datos e Introducción a NoSQL de DataCamp.


