Frameworks de planificación de flujos de trabajo

Introducción a la ingeniería de datos

Vincent Vankrunkelsven

Data Engineer, DataCamp

Un pipeline de ejemplo

 

Ejemplo de pipeline sencillo que extrae de csv usando Spark

¿Cómo planificar?

  • Manualmente
  • Herramienta de planificación cron
  • ¿Y las dependencias?
Introducción a la ingeniería de datos

DAGs

Grafo acíclico dirigido

  • Conjunto de nodos
  • Aristas dirigidas
  • Sin ciclos

Ejemplo de DAG

Introducción a la ingeniería de datos

Las herramientas adecuadas

 

  • cron de Linux
  • Prefect y Dagster
  • Apache Airflow
Introducción a la ingeniería de datos

Logo de Apache Airflow

  • Creado en Airbnb
  • DAGs
  • Python
Introducción a la ingeniería de datos

Airflow: un DAG de ejemplo

 

Ejemplo de DAG en Airflow

Introducción a la ingeniería de datos

Airflow: un ejemplo en código

@dag(dag_id="example_dag",
     start_date=datetime(2024, 1, 1),
     schedule="0 * * * *")
def example_dag():

@task def start_cluster(): ... @task def ingest_customer_data(): ... @task def ingest_product_data(): ... @task def enrich_customer_data(): ...
Introducción a la ingeniería de datos

Airflow: un ejemplo en código

@dag(dag_id="example_dag", ...)
def example_dag():
    ...
    # Configurar el flujo de dependencias
    cluster = start_cluster()
    customers = ingest_customer_data()
    products = ingest_product_data()
    cluster >> [customers, products]
    [customers, products] >> enrich_customer_data()
# Ejecutar el DAG
example_dag()
Introducción a la ingeniería de datos

¡Vamos a practicar!

Introducción a la ingeniería de datos

Preparing Video For Download...