Einführung in Apache Airflow

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

Was ist Data Engineering?

Data Engineering ist:

  • Aktionen mit Daten in einen zuverlässigen, wiederholbaren, wartbaren Prozess zu verwandeln.
Einführung in Apache Airflow mit Python

Was ist ein Workflow?

Ein Workflow ist:

  • Eine Abfolge von Schritten für eine Data-Engineering-Aufgabe
    • Z. B.: Dateien herunterladen, Daten kopieren, filtern, in eine Datenbank schreiben usw.
  • Unterschiedlich komplex
  • Ein Begriff mit je nach Kontext variierender Bedeutung

Beispiel-Workflow

Einführung in Apache Airflow mit Python

Was ist Airflow?

Airflow ist eine Plattform zum Programmieren von Workflows, inkl.:

  • Erstellung
  • Planung
  • Monitoring

Airflow-Logo

Einführung in Apache Airflow mit Python

Airflow (Fortsetzung)

  • Kann Programme in jeder Sprache ausführen, aber Workflows werden in Python geschrieben
  • Setzt Workflows als DAGs um: Directed Acyclic Graphs
  • Zugriff per Code, Kommandozeile oder Weboberfläche/REST-API

Airflow-Logo

1 https://airflow.apache.org/docs/stable/
Einführung in Apache Airflow mit Python

Weitere Workflow-Tools

Andere Tools:

  • Luigi
  • SSIS
  • Bash-Skripte

Luigi-Logo

Bash-Logo

SSIS-Logo

Einführung in Apache Airflow mit Python

Kurz zu DAGs

Ein DAG ist ein Directed Acyclic Graph

  • In Airflow: die Menge an Tasks, die deinen Workflow bilden.
  • Besteht aus Tasks und deren Abhängigkeiten.
  • Erstellt mit Details wie Name, Startdatum, Owner usw.
  • Mehr dazu in der nächsten Lektion.

DAG-Beispiel

Einführung in Apache Airflow mit Python

DAG-Codebeispiel

Einfache DAG-Definition:

etl_dag = DAG(
    dag_id='etl_pipeline',
    default_args={"start_date": "2024-01-08"}
)
Einführung in Apache Airflow mit Python

Einen Workflow in Airflow ausführen

Einen einfachen Airflow-Task ausführen

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

Mit einem DAG namens example-etl, einem Task download-file am 2024-01-10:

airflow tasks test example-etl download-file 2024-01-10
Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...