Frameworks de agendamento de workflows

Introdução à Engenharia de Dados

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Um pipeline de exemplo

 

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

Ferramentas para o trabalho

 

  • cron do Linux
  • Luigi (Spotify)
  • Apache Airflow
Introdução à Engenharia de Dados

Logo do Apache Airflow

  • Criado no Airbnb
  • Usa DAGs
  • Em 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

# Create the DAG object
dag = DAG(dag_id="example_dag", ..., schedule_interval="0 * * * *")

# Define operations start_cluster = StartClusterOperator(task_id="start_cluster", dag=dag) ingest_customer_data = SparkJobOperator(task_id="ingest_customer_data", dag=dag) ingest_product_data = SparkJobOperator(task_id="ingest_product_data", dag=dag) enrich_customer_data = PythonOperator(task_id="enrich_customer_data", ..., dag = dag)
# Set up dependency flow start_cluster.set_downstream(ingest_customer_data) ingest_customer_data.set_downstream(enrich_customer_data) ingest_product_data.set_downstream(enrich_customer_data)
Introdução à Engenharia de Dados

Vamos praticar!

Introdução à Engenharia de Dados

Preparing Video For Download...