Orchestrace
Apache Airflow — orchestrace datových pipeline v praxi
Apache Airflow je nejrozšířenější orchestrátor datových pipeline. Definujte workflow jako Python kód, plánujte spouštění a monitorujte průběh.
Co je Apache Airflow
Airflow definuje workflow jako DAG (Directed Acyclic Graph) — graf úloh s operátory a závislostmi.
Základní koncepty
- DAG — workflow jako Python kód
- Operator — jednotlivá úloha (Bash, Python, SQL)
- Scheduler — plánovač podle cron výrazů
- Executor — Local, Celery, Kubernetes
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime, timedelta
with DAG(
dag_id='daily_sales',
schedule_interval='0 6 * * *',
start_date=datetime(2026, 1, 1),
catchup=False,
) as dag:
extract = PythonOperator(task_id='extract', python_callable=extract_fn)
transform = PythonOperator(task_id='transform', python_callable=transform_fn)
load = PythonOperator(task_id='load', python_callable=load_fn)
extract >> transform >> load
TaskFlow API (Airflow 2.x)
from airflow.decorators import dag, task
@dag(schedule_interval='@daily', start_date=datetime(2026, 1, 1))
def sales_pipeline():
@task()
def extract(): return fetch_data()
@task()
def transform(data): return clean(data)
@task()
def load(data): save(data)
load(transform(extract()))
sales_pipeline()
Best practices
- Idempotence — bezpečné opakované spuštění
- Atomicita — task uspěje nebo selže kompletně
- XCom jen pro metadata — ne pro velké datasety
Shrnutí
Airflow je standard pro orchestraci. TaskFlow API zjednodušuje kód, klíčem je idempotence a správná správa credentials.