No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
14 Hrs
37 Min
24 Seg

DAG

5/29
Recursos

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?


👉 Considero destacar que cada unos de los items dentro del DAG se llaman task y tienen un operador que es básicamente el tipo de tarea

✨ Los estados de nuestra tarea pueden tener los siguientes estados

✨ Los tipos de operador basicos son

  • SimpleHttpOperator
  • MySqlOperator
  • PostgresOperator
  • MsSqlOperator
  • OracleOperator
  • JdbcOperator
  • DockerOperator
  • HiveOperator
  • S3FileTransformOperator
  • PrestoToMySqlOperator
  • SlackAPIOperator

Mas operadores
https://airflow.apache.org/docs/apache-airflow-providers/operators-and-hooks-ref/index.html

DAG( Directed Acyclic Graph)

  • Los Workflow los Podemos realizar a través de los DAG. Viene del concepto de los grafos y debe tener 2 cualidades.
    En primer lugar una dirección. Todas las aristas fluyen hacia una dirección.
    La segunda cualidad es que no pueden tener ciclos. Una arista que sale de un nodo no puede volver a ese nodo.

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** 1. **Dirigido**: * Cada tarea en un DAG tiene una dirección específica, indicando el flujo lógico de las dependencias. * Por ejemplo, si `Task A → Task B`, significa que `Task B` se ejecutará después de que `Task A` haya finalizado correctamente. 2. **Acíclico**: * No puede haber bucles o ciclos en el flujo de trabajo. * Esto asegura que las tareas no entren en un estado de ejecución infinita. 3. **Configuración programática**: * Los DAGs se definen en código Python, lo que brinda flexibilidad para agregar lógica personalizada en la definición de tareas o dependencias. ### **Estructura de un DAG** Un DAG en Airflow se configura definiendo: * **Nombre del DAG**: Identificador único del flujo. * **Programación (Schedule)**: Frecuencia con la que debe ejecutarse el flujo (diario, semanal, cada hora, etc.). * **Conjunto de tareas**: Tareas individuales que conforman el flujo. * **Dependencias entre tareas**: Relaciones que determinan el orden de ejecución. 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** 1. **Tareas (Tasks)**: * Componentes individuales del flujo. * Pueden ser operadores predefinidos, como `BashOperator`, `PythonOperator`, o tareas personalizadas. 2. **Dependencias**: * Se especifican usando `>>` (dependencia directa) o `<<` (dependencia inversa). * Ejemplo:tarea1 >> \[tarea2, tarea3] 3. **Programación (Schedule)**: * Define cuándo se debe ejecutar el DAG. * Puede ser con expresiones cron (`0 12 * * *`) o intervalos predefinidos como `@daily`, `@hourly`. 4. **Fecha de inicio y fin**: * El `start_date` marca cuándo comienza el DAG. * Opcionalmente, un `end_date` puede limitar su ejecución. 5. **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** 1. **Visualización clara**: * Airflow proporciona una interfaz gráfica para observar la estructura del DAG y el estado de las tareas. 2. **Escalabilidad**: * Los DAGs permiten manejar flujos complejos con dependencias múltiples. 3. **Reutilización**: * Los DAGs definidos en código son fáciles de modificar, mantener y reutilizar. ### **Usos comunes de los DAGs** 1. **Pipelines de ETL/ELT**: * Extracción, transformación y carga de datos de sistemas fuente a un Data Warehouse o Data Lake. 2. **Procesos de Machine Learning**: * Automatización de entrenamientos, evaluaciones y despliegues de modelos. 3. **Reportes automatizados**: * Generación y envío de reportes periódicos. 4. **Integraciones de sistemas**: * Orquestar sincronización de datos entre APIs o bases de datos. 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.