Ladění a odstraňování problémů v Airflow

Úvod do Apache Airflow v Pythonu

Mike Metzger

Data Engineer

Časté problémy

  • DAG se nespouští podle plánu
  • DAG se nenačte
  • Syntaktické chyby

Ilustrace znázorňující běžné problémy při odstraňování závad v Airflow

Úvod do Apache Airflow v Pythonu

DAG se nespouští podle plánu

  • Neuplynulo alespoň jedno období schedule
    • Upravte atributy podle svých požadavků
  • Nedostatek zdrojů ke spuštění
    • Přidejte systémové zdroje
    • Přidejte další systémy
    • Změňte plánování DAG
Úvod do Apache Airflow v Pythonu

DAG se nenačte

  • DAG se nezobrazí ve webovém rozhraní
  • DAG se nezobrazí v airflow dags list

Možná řešení

  • Ověřte, že soubor DAG je ve správné složce (soubory mimo složku DAG se nezpracovávají)
  • Složku DAG zjistíte příkazem airflow info

Výstup terminálu příkazu airflow info se zvýrazněnou cestou dags_folder

Úvod do Apache Airflow v Pythonu

Syntaktické chyby

  • Nejčastější důvod, proč se soubor DAG nezobrazí
  • Chyby v DAG mohou být obtížně dohledatelné
  • Tři rychlé metody:

    • Zkontrolujte chybová hlášení v rozhraní Airflow

    • Spusťte airflow dags list-import-errors

    • Spusťte python3 <dagfile.py>

Úvod do Apache Airflow v Pythonu

Chyby importu v rozhraní Airflow

Úvodní stránka Airflow zobrazující upozornění na chybu při importu DAG

Detail chyby importu v Airflow se zprávou traceback pro DAG

Úvod do Apache Airflow v Pythonu

airflow dags list-import-errors

Výstup terminálu příkazu airflow dags list-import-errors zobrazující chybu

Úvod do Apache Airflow v Pythonu

airflow dags reserialize

  • Změny DAG se nemusí projevit okamžitě
  • Ve výchozím nastavení Airflow kontroluje aktualizace každých 5 minut
  • Opětovnou kontrolu lze vynutit příkazem airflow dags reserialize

Terminál spouštějící příkaz airflow dags reserialize pro vynucení aktualizace DAG

Úvod do Apache Airflow v Pythonu

Spuštění interpretu Pythonu

python3 dagfile.py:

  • S chybami

Terminál zobrazující syntaktickou chybu Pythonu při spuštění souboru DAG příkazem python3

  • Bez chyb

Terminál se vrátí na příkazový řádek po spuštění souboru DAG příkazem python3 bez chyb

Úvod do Apache Airflow v Pythonu

Pojďme procvičovat!

Úvod do Apache Airflow v Pythonu

Preparing Video For Download...