Introductie tot Apache Airflow

Introductie tot Apache Airflow in Python

Mike Metzger

Data Engineer

Wat is data engineering?

Data engineering is:

  • Acties met data omzetten in een betrouwbaar, herhaalbaar en onderhoudbaar proces.
Introductie tot Apache Airflow in Python

Wat is een workflow?

Een workflow is:

  • Een reeks stappen om een data-engineeringtaak uit te voeren
    • Zoals: bestanden downloaden, data kopiëren, filteren, naar een database schrijven, enz.
  • Met uiteenlopende complexiteit
  • Een term met verschillende betekenissen per context

Voorbeeldworkflow

Introductie tot Apache Airflow in Python

Wat is Airflow?

Airflow is een platform om workflows te programmeren, waaronder:

  • Maken
  • Inplannen
  • Monitoren

Airflow-logo

Introductie tot Apache Airflow in Python

Airflow (vervolg)

  • Kan programma's uit elke taal uitvoeren, maar workflows worden in Python geschreven
  • Implementeert workflows als DAG's: Directed Acyclic Graphs
  • Toegang via code, commandline of webinterface/REST API

Airflow-logo

1 https://airflow.apache.org/docs/stable/
Introductie tot Apache Airflow in Python

Andere workflowtools

Andere tools:

  • Luigi
  • SSIS
  • Bash-scripting

Luigi-logo

Bash-logo

SSIS-logo

Introductie tot Apache Airflow in Python

Korte intro tot DAG's

Een DAG staat voor Directed Acyclic Graph

  • In Airflow: de set taken die je workflow vormen.
  • Bestaat uit taken en afhankelijkheden ertussen.
  • Aangemaakt met details zoals naam, startdatum, eigenaar, enz.
  • Meer diepgang in de volgende les.

DAG-voorbeeld

Introductie tot Apache Airflow in Python

DAG-codevoorbeeld

Eenvoudige DAG-definitie:

etl_dag = DAG(
    dag_id='etl_pipeline',
    default_args={"start_date": "2024-01-08"}
)
Introductie tot Apache Airflow in Python

Een workflow draaien in Airflow

Een eenvoudige Airflow-taak uitvoeren

airflow tasks test <dag_id> <task_id> [execution_date]

Met een DAG example-etl, een taak download-file op 2024-01-10:

airflow tasks test example-etl download-file 2024-01-10
Introductie tot Apache Airflow in Python

Laten we oefenen!

Introductie tot Apache Airflow in Python

Preparing Video For Download...