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-airflowlub przez Docker Compose (oficjalny docker-compose.yaml) - Pierwsze DAG-i:
@dagi@taskdekoratory (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:
- Sensors —
FileSensor,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.