前回Cloud Composerを利用して、BigQueryへのデータの取り込みについて記事を書きましたが、DAG実装の詳細(特に各パラメータの役割)については、記事が長くなりすぎるので割愛しました。なので今回から複数回に渡って、以下の内容を深堀りしていこうと思います。
- DAGの設定値について(今回分)
- テンプレート内で利用可能な変数について
DAGとオペレータについて
細々した話をする前に、まずはDAGとオペレータの概略からまとめてみました。
構成要素 | 概要 |
---|---|
オペレータ | 処理を定義するための関数。クラウド操作毎に細かく用意されているため、自身がやりたい処理のオペレータの利用方法を調べる必要がある。前回BigQueryへのデータ取り込みで使用したオペレータは、「GoogleCloudStoragePrefixSensor」、「GoogleCloudStorageToBigQueryOperator」、「DummyOperator」です。 |
DAG | オペレータから定義された処理+処理同士の前後関係の情報をもった処理のグループのことです。 |
下の画面を例にすると、実行完了している濃い緑で囲われた部分がオペレータで定義された処理、赤枠で囲われた処理全体(処理の前後関係を含む)がDAGとなります。
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:DAGの仕様
- オペレータ(default_args):BaseOperatorの仕様
設定値によってDAGの挙動が変わるので、自身がどのような設定をしたのかしっかり把握しておく必要があります。特に障害発生/対応時に、「思った動作と違う・・・」となりがちなので、そうならないようにしっかり理解しましょう!
最後に
次回は、テンプレートで利用するマクロの紹介をしていきたいと思います。特に、タスクの再実行時に便利なexecution_dateを中心にして説明します。