Contenido del curso
Conceptos básicos
Instalación y configuración
Implementando un DAG
Orquestar y monitorizar procesos
Sensores
Templates con Jinja
XComs
BranchPythonOperator
Proyecto
Cierre del curso
DAG
Contenido del curso
DAG
Royer Guerrero Pinilla
EstudianteLucas Gonzalez
EstudianteRafael Alejandro Belalcázar Burbano
EstudianteVíctor Mazo
EstudianteCarlos Eduardo Bracho Rosales
EstudianteMario Alexander Vargas Celis
EstudianteSantiago Andres Gelvez Camargo
Estudiante✨ Los estados de nuestra tarea pueden tener los siguientes estados
✨ Los tipos de operador basicos son
Mas operadores https://airflow.apache.org/docs/apache-airflow-providers/operators-and-hooks-ref/index.html
DAG( Directed Acyclic Graph)
Dejo por aquí la documentación oficial con la explicación de lo que es un DAG.
https://airflow.apache.org/docs/apache-airflow/stable/concepts/dags.html
En resumen, un DAG es la representación gráfica y estructural de un workflow, o en otras palabras, es una representación de las tareas que se van a ejecutar y la forma en la que se ejecutan.
👀 Aqui el DAG Automatizar las pipelines: Airflow
Un DAG (Directed Acyclic Graph) es un componente central en Apache Airflow que representa un flujo de trabajo. Este flujo está compuesto por tareas individuales y sus dependencias, organizadas de manera que sigan una estructura de grafo dirigido y acíclico.
Características principales de un DAG
Task A → Task B, significa que Task B se ejecutará después de que Task A haya finalizado correctamente.Estructura de un DAG
Un DAG en Airflow se configura definiendo:
from airflow import DAG from airflow.operators.dummy import DummyOperator from datetime import datetime
# Crear el DAG dag = DAG( 'mi_primer_dag', description='Un ejemplo básico de DAG', schedule_interval='@daily', # Se ejecutará diariamente start_date=datetime(2023, 1, 1), # Fecha de inicio del DAG catchup=False # Evita ejecutar tareas atrasadas )
# Definir las tareas inicio = DummyOperator(task_id='inicio', dag=dag) proceso = DummyOperator(task_id='proceso', dag=dag) fin = DummyOperator(task_id='fin', dag=dag)
# Definir dependencias inicio >> proceso >> fin
Elementos clave en un DAG
Tareas (Tasks):
BashOperator, PythonOperator, o tareas personalizadas.Dependencias:
>> (dependencia directa) o << (dependencia inversa).Programación (Schedule):
0 12 * * *) o intervalos predefinidos como @daily, @hourly.Fecha de inicio y fin:
start_date marca cuándo comienza el DAG.end_date puede limitar su ejecución.Propiedades adicionales:
Retries: Número de intentos en caso de fallo.Timeout: Límite de tiempo para ejecutar las tareas.Catchup: Permite ejecutar tareas atrasadas si el DAG se activa después de la fecha de inicio.Ventajas de los DAGs
Usos comunes de los DAGs
En resumen, un DAG es el núcleo de cualquier flujo de trabajo en Apache Airflow, proporcionando una estructura programable, visualizable y altamente escalable para ejecutar tareas dependientes.
En definitiva, la gran mayoría de job posts para Data Engineering que me he encontrado mencionan DAG de alguna forma. Y es que la herramienta resume mucho del trabajo que se hace en este rol y DAG brinda esa facilidad de asegurar que las cosas no se rompan porque si.