IT Orkiestrator przepływów

Apache Airflow

Znany też jako:AirflowApache Airflowworkflow orchestration

Definicja #

Apache Airflow to platforma do programowego tworzenia, harmonogramowania i monitorowania przepływów pracy (workflow). Stworzona przez Maxime Beauchemin w Airbnb w 2014 roku, przekazana do Apache Software Foundation w 2016 roku. Jest jednym z najszerzej stosowanych narzędzi w data engineering.

Kluczowe koncepcje Airflow:

  • DAG (Directed Acyclic Graph) — skierowany graf acykliczny definiujący przepływ zadań: kolejność, zależności i harmonogram. Każdy DAG to plik Python.
  • Task — pojedyncze zadanie w DAG (np. ekstrakcja danych, transformacja, ładowanie)
  • Operator — szablon zadania; wbudowane operatory: PythonOperator, BashOperator, KubernetesPodOperator; operatory SQL dostępne przez dostawcę apache-airflow-providers-common-sql; operatory cloud (AWS, GCP, Azure)
  • Sensor — specjalny operator czekający na spełnienie warunku (np. pojawienie się pliku, zakończenie innego DAG-a)
  • Scheduler — komponent planujący uruchomienie DAG-ów według harmonogramu (cron expression)
  • Executor — warstwa wykonywania zadań: LocalExecutor, CeleryExecutor (skalowanie poziome), KubernetesExecutor
  • Web UI — interfejs do monitorowania, uruchamiania i debugowania DAG-ów i zadań
  • XCom — mechanizm wymiany małych porcji danych między zadaniami

Airflow 2.x (TaskFlow API) pozwala definiować DAG-i w dekoratorowym stylu Pythona (@dag, @task), co znacznie upraszcza kod.

Zastosowania #

Apache Airflow stosuje się do:

  • Orkiestracji pipeline'ów ETL/ELT — koordynacja ekstrakcji z wielu źródeł, transformacji (dbt, Spark) i ładowania do data warehouse
  • Harmonogramowania zadań ML — trenowanie modeli, walidacja, deployment i monitorowanie driftu modeli
  • Procesów data engineering w chmurze — koordynacja zadań AWS Glue, Databricks, BigQuery, Snowflake
  • Raportowania i alertów — cykliczne generowanie raportów, wysyłanie emaili, odświeżanie dashboardów
  • Monitorowania jakości danych — sprawdzanie poprawności, kompletności i świeżości danych przed dalszym przetwarzaniem

Ścieżka nauki #

Airflow wymaga znajomości Pythona — to absolutne minimum. DAG-i to pliki Python, więc programowanie jest niezbędne.

Zacznij od:

  • Instalacja lokalnie: pip install apache-airflow lub przez Docker Compose (oficjalny docker-compose.yaml)
  • Pierwsze DAG-i: @dag i @task dekoratory (TaskFlow API), PythonOperator, BashOperator
  • Harmonogramowanie: cron expressions (schedule="0 6 * * *"), catchup, backfill
  • Zależności: task_a >> task_b — definiowanie kolejności zadań
  • Web UI: monitorowanie DAG-ów, Graph View, Gantt, logi zadań

Następnie poznaj:

  • SensorsFileSensor, HttpSensor, ExternalTaskSensor
  • Connections i Variables — konfiguracja połączeń z bazami i API przez UI lub env
  • KubernetesPodOperator — uruchamianie zadań w kontenerach Kubernetes
  • Operatory chmurowe: BigQueryOperator, S3ToRedshiftOperator, DatabricksRunNowOperator
  • Testowanie DAG-ów — pytest, dag.test(), airflow dags test

FAQ #

Czym różni się Airflow od Cron?
Cron to prosty harmonogram systemu operacyjnego bez zależności, retry, monitorowania i interfejsu. Airflow oferuje wizualne DAG-i z zależnościami między zadaniami, automatyczne ponawianie po błędach, logowanie, alerty i centralny UI do monitorowania setek pipeline'ów. Airflow to orkiestrator, Cron to prosty scheduler.
Czy Airflow nadaje się do pipeline'ów real-time?
Nie — Airflow jest zaprojektowany do batch processing i harmonogramowania (minimum co kilka minut). Do pipeline'ów strumieniowych w czasie rzeczywistym używaj Apache Kafka, Apache Flink lub Spark Streaming. Airflow i Kafka często współistnieją — Airflow orkiestruje batch, Kafka obsługuje streaming.
Jakie są alternatywy dla Airflow?
Popularne alternatywy: Prefect i Dagster (nowsze, Python-native, lepszy DX), Argo Workflows (Kubernetes-native), Luigi (prostszy, starszy). W chmurze: AWS Step Functions, Google Cloud Composer (managed Airflow), Azure Data Factory. Prefect i Dagster zyskują popularność w nowych projektach.
Ile zarabia Data Engineer znający Airflow?
Data Engineer z Airflow, SQL i Python zarabia w Polsce od 12 000 do 22 000 zł brutto. Senior z doświadczeniem w cloud data stack (Airflow + Spark/dbt + Snowflake/BigQuery) zarabia od 20 000 do 35 000 zł. Data engineering jest jedną z najlepiej płatnych specjalizacji IT.
Ostatnia aktualizacja:

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.