1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Airflow資料抄訳(7):DAGを実行する(Running DAGs)

Last updated at Posted at 2022-07-12

恥ずかしながら最近になって知ったワークフローエンジン Apache Airflow。日本語の紹介記事もちらほら出てきていますが、公式ドキュメントをちょっとずつ抄訳しながら読んでいこうと思います。

7回目の今回はDAGを実行する(Running DAGs)。
バージョン2.3.3時点のものです。


DAGの起動

DAGは次の2つのうちいずれかの方法で起動されます:

  • 人手もしくはWebAPI経由の操作に基づく起動
  • DAGの一部として定義されたスケジュールに基づく起動

DAG宣言にスケジュールは必須ではありません。しかしスケジュールがあるのがふつうです。スケジュールはschedule_interval 引数を使って次のようにして指定します:

with DAG("my_daily_dag", schedule_interval="@daily"):
    

schedule_interval引数は妥当な Crontab スケジュール値であれば何でも指定できます:

with DAG("my_daily_dag", schedule_interval="0 * * * *"):
    

Tip
schedule_interval の値についてより詳しくはDAG Runを御覧ください。
DAGのスケジュール指定にschedule_interval では役不足のときは、Timetables をご覧ください。logical dateについてより詳しくはデータ区間execution_dateが意味するものをご覧ください。

DAGを起動とはすなわちDAGの新しいインスタンスの生成です。このインスタンスのことをAirflowではDAG Runと呼びます。DAG Runは同じDAGについて多重(並列)で起動することができます。それぞれのDAG Runはデータ区間を持ちます。これは当該DAGのタスクが処理するデータの期間を指し示すものです。

なぜこれが便利なのでしょうか? 例えば今あなたは日次の実験データの集まりを処理するDAGを作成しているとしましょう。それらのデータが書き換えられて、過去3ヶ月分のデータを処理し直さないとならなくなったとします。問題ありません。AirflowならDAG Runのコピーを過去3ヶ月の各日分をまとめて作成しデータを埋め戻す(backfill)ことができます。

これらのDAG Runはすべて同一の日時に起動しますが、それぞれのDAG Runは過去3ヶ月間の各日を範囲とするデータ区間(data interval)を持ち、そのデータ区間は当該DAGに含まれるすべてのタスク、オペレーター、そしてセンサーから参照されます。

DAGの起動の都度DAG Runが生成されるのとほとんど同じ方法で、DAG内の個々のタスクについてもタスク・インスタンスが生成されます。

DAG Runは開始日と終了日を持ちます。これはDAGが実際に実行された期間を示します。この日付情報とは別に、論理日付(logical date)という別の日付情報もあります。これはスケジュールもしくは人手/WebAPI経由で要求されたDAGの起動時刻を示すものです。「論理~」という呼び名は、DAG Run自体のコンテキストに応じて、複数の意味を持ちうるというこの日付の性質に由来します。

例えば、あるDAG Runが人手で起動されたとき、論理日付はそのDAG Runが起動された日時となります。そしてこの値はDAGの開始日と一致します。一方、DAGが所定のschedule_intervalに基づき、スケジュール起動したとき、論理日付はデータ区間の開始日を指します。つまりDAG Runの開始日は論理日付+schedule_intervalとなります。


タイトルとは裏腹に、このセクションで一番注目すべきなのは各種の日付の概念だと思います。
logical dateは以前はexecution_dateと呼ばれていたそうで、Airflowについて学ぶときにはこの読み替えも知っておく必要があるでしょう。
このへんについてとくにデータ区間(data interval)を軸にまとめてくださっているこちらの記事がとても参考になります。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?