0
Help us understand the problem. What are the problem?

posted at

Apache AirflowのDAG設定値についてまとめてみる

 前回Cloud Composerを利用して、BigQueryへのデータの取り込みについて記事を書きましたが、DAG実装の詳細(特に各パラメータの役割)については、記事が長くなりすぎるので割愛しました。なので今回から複数回に渡って、以下の内容を深堀りしていこうと思います。

  • DAGの設定値について(今回分)
  • テンプレート内で利用可能な変数について

DAGとオペレータについて

 細々した話をする前に、まずはDAGとオペレータの概略からまとめてみました。

構成要素 概要
オペレータ 処理を定義するための関数。クラウド操作毎に細かく用意されているため、自身がやりたい処理のオペレータの利用方法を調べる必要がある。前回BigQueryへのデータ取り込みで使用したオペレータは、「GoogleCloudStoragePrefixSensor」、「GoogleCloudStorageToBigQueryOperator」、「DummyOperator」です。
DAG オペレータから定義された処理+処理同士の前後関係の情報をもった処理のグループのことです。

 下の画面を例にすると、実行完了している濃い緑で囲われた部分がオペレータで定義された処理、赤枠で囲われた処理全体(処理の前後関係を含む)がDAGとなります。
Composer12.JPG

DAGの設定一覧

 よく使うものをピックアップしました。

パラメータ 概要
dag_id DAGをユニークに区別するID。
description Web管理画面などで表示するDAGの概要説明。
schedule_interval DAGの実行頻度を定義。最新のタスクインスタンスのexcecution_date(次回説明予定)に、schedule_intervalを足すと次回の実行スケジュールとなる。
start_date DAG実行を開始する日付。
end_date DAG実行を終了する日付。
default_args DAG内の演算子を初期化する時のパラメータとして利用される辞書型変数。DAGの初期化時に指定するが、設定対象はDAGではなく各オペレータであることに注意。
params DAG内で利用可能な辞書型変数。テンプレートからのアクセスも可能。
catchup 過去に遡ってスケジュールのキャッチアップを行うかどうか、最新のものだけスケジュールするか?(デフォルト値はTrueで、キャッチアップする)
on_failure_callback タスクの正常終了時に実行する関数を定義します。
on_success_callback タスクの異常終了時に実行する関数を定義します。

 他にも細かいものはたくさんありますが、ここでは省きたいと思います。詳細は、Apache Airflowのドキュメントの以下の部分を参照してください。

 設定値によってDAGの挙動が変わるので、自身がどのような設定をしたのかしっかり把握しておく必要があります。特に障害発生/対応時に、「思った動作と違う・・・」となりがちなので、そうならないようにしっかり理解しましょう!

最後に

 次回は、テンプレートで利用するマクロの紹介をしていきたいと思います。特に、タスクの再実行時に便利なexecution_dateを中心にして説明します。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?