Airflowのデバッグとトラブルシューティング

Python で学ぶ Apache Airflow 入門

Mike Metzger

Data Engineer

よくある問題

  • Dagがスケジュール通りに実行されない
  • Dagが読み込まれない
  • 構文エラー

Airflowの一般的なトラブルシューティング課題を表すイラスト

Python で学ぶ Apache Airflow 入門

Dagがスケジュール通りに実行されない

  • schedule期間が少なくとも1回経過していない
    • 要件に合わせて属性を変更する
  • 実行するリソースが不足している
    • システムリソースを追加する
    • システムを追加する
    • DAGスケジューリングを変更する
Python で学ぶ Apache Airflow 入門

Dagが読み込まれない

  • DagがWeb UIに表示されない
  • Dagがairflow dags listに表示されない

考えられる解決策

  • Dagファイルが正しいフォルダーにあることを確認する(DAGsフォルダー外のファイルは解析されない)
  • airflow infoでDAGsフォルダーを確認する

dags_folderパスが強調表示されたairflow infoのターミナル出力

Python で学ぶ Apache Airflow 入門

構文エラー

  • DAGファイルが表示されない最も一般的な原因
  • DAG内のエラーは発見しにくい場合がある
  • 3つの簡単な方法:

    • Airflow UIのエラーポップアップを確認する

    • airflow dags list-import-errorsを実行する

    • python3 <dagfile.py>を実行する

Python で学ぶ Apache Airflow 入門

Airflow UIのインポートエラー

DAGインポートエラーアラートが表示されたAirflowウェルカムページ

DAGトレースバックメッセージを示すAirflowインポートエラー詳細

Python で学ぶ Apache Airflow 入門

airflow dags list-import-errors

airflow dags list-import-errorsのターミナル出力にエラーが表示されている

Python で学ぶ Apache Airflow 入門

airflow dags reserialize

  • Dagの変更はすぐに反映されない場合がある
  • デフォルトでは、AirflowはDAGの更新を5分ごとに確認する
  • airflow dags reserializeで強制的に再確認できる

airflow dags reserializeを実行してDAGを強制更新するターミナル

Python で学ぶ Apache Airflow 入門

Pythonインタープリターの実行

python3 dagfile.py:

  • エラーあり

python3でDAGファイルを実行したときのPython構文エラーのターミナル表示

  • エラーなし

python3でDAGファイルを実行してエラーなしでプロンプトに戻るターミナル表示

Python で学ぶ Apache Airflow 入門

練習しましょう!

Python で学ぶ Apache Airflow 入門

Preparing Video For Download...