Recientemente, se produjo el lanzamiento oficial de la versión 3.0.0 de Airflow y, con ella, llegan varias novedades en las funcionalidades implementadas y la interfaz gráfica. En este post, abordaremos los cambios más interesantes.
Versionamiento de DAGs
Una de las nuevas características de Airflow 3.0 es el versionamiento de los DAGs. Para observar esta funcionalidad, creamos un DAG simple, lo ejecutamos y veremos lo siguiente:

En la información de los DAG ejecutados, observamos la versión del DAG que se utilizó para ese DAG run. Si ahora modificásemos ese DAG simple, lo guardamos y lo volvemos a ejecutar, obtendremos:

Tal y como se puede observar, tenemos un nuevo DAG run pero con una versión diferente. Además, una vez se lanza un DAG run, Airflow reparsea el DAG y crea una nueva versión. No altera el DAG run, ejecutando la versión con la que empezó. De esta forma, el control de versiones se simplifica considerablemente y añade una capa de auditoría que antes no se podía obtener de forma nativa.
Backfills en Airflow 3.0
Ahora es posible ejecutar backfills desde la CLI y la interfaz gráfica. Los backfills se comportan como si fueran también DAGs y permiten re-ejecutar periodos pasados con facilidad.

En este caso, tenemos un DAG con un periodo de errores y queremos reprocesar dichos fallos. Para ello, hacemos uso del backfill.

Indicamos el intervalo de tiempo que queremos que el backfill procese y añadimos la configuración que únicamente procese los DAG runs que fallaron.

Una vez ejecutado el backfill, podemos ver que los DAGs ahora están reprocesados sin fallos.

Además, el backfill queda guardado, facilitando así su auditoría.
DAG sin logical_date
En la versión 3.0 de Airflow es posible tener DAGs sin una logical_date. Esta opción permite apoyar cargas de trabajo que no usan intervalos más fácilmente, ya que logical_date era parte de la ID de un DAG run, haciendo que múltiples DAG runs con una misma fecha fueran considerados como diferentes intentos del mismo. Ahora, pudiendo indicar esta fecha en nulo, son DAG runs separados.
Como ejemplo, aquí podemos ver un DAG ejecutado con una logical_date:

Aquí podemos ver el mismo DAG sin logical_date:

Como podemos ver, la Run ID ahora tiene una string aleatoria al final para hacerla única, y no tiene Data Interval Start o Data Interval End.
Conclusión
En este espacio hemos abordado algunos de los cambios que se han introducido en Airflow 3.0 y cómo nos permiten agilizar varios procesos, especialmente, de auditoría y control de ejecución. Teniendo en cuenta esta serie de tips y aplicando estas nuevas funcionalidades en futuros procesos de Airflow, conseguiremos sacar el máximo partido a la herramienta.
¡Eso es todo! Si este artículo te ha resultado interesante, te animamos a visitar la etiqueta Airflow para ver todos los posts relacionados y a compartirlo en redes. ¡Hasta pronto!