Frameworks de agendamento de workflows

Introdução à Engenharia de Dados

Vincent Vankrunkelsven

Data Engineer, DataCamp

Um pipeline de exemplo

 

Exemplo de pipeline simples que extrai de CSV usando Spark

Como agendar?

  • Manualmente
  • Ferramenta cron
  • E as dependências?
Introdução à Engenharia de Dados

DAGs

Grafo acíclico direcionado

  • Conjunto de nós
  • Arestas direcionadas
  • Sem ciclos

Exemplo de DAG

Introdução à Engenharia de Dados

As ferramentas certas

 

  • cron do Linux
  • Prefect e Dagster
  • Apache Airflow
Introdução à Engenharia de Dados

Logo do Apache Airflow

  • Criado no Airbnb
  • DAGs
  • Python
Introdução à Engenharia de Dados

Airflow: um DAG de exemplo

 

Exemplo de DAG do Airflow

Introdução à Engenharia de Dados

Airflow: um exemplo em 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(): ...
Introdução à Engenharia de Dados

Airflow: um exemplo em código

@dag(dag_id="example_dag", ...)
def example_dag():
    ...
    # Set up dependency flow
    cluster = start_cluster()
    customers = ingest_customer_data()
    products = ingest_product_data()
    cluster >> [customers, products]
    [customers, products] >> enrich_customer_data()
# Run the DAG
example_dag()
Introdução à Engenharia de Dados

Vamos praticar!

Introdução à Engenharia de Dados

Preparing Video For Download...