0
0

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資料抄訳(8):データ区間(Data Interval)

Last updated at Posted at 2022-07-12

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

8回目の今回はデータ区間(Data Interval)。
バージョン2.3.3時点のものです。


データ区間(Data Interval)

各DAG Runはそれが処理する範囲を表す「データ区間」を充てがわれています。例えばschedule_interval引数で@daily0 0 * * * と同義)というスケジュールを指定されたDAGの場合、そのデータ区間は各日の同日00時に始まり翌日の00時に終わるといった具合です。

DAG Runはふつう紐づけられたデータ区間が終わった後にスケジュール実行されます。これは当該の実行中にデータ区間の範囲のデータを漏れなく処理対象にするためです。別の言い方をすれば、2020-01-01 のデータ期間を処理対象とするDAG Runは2020-01-01が終わり2020-01-02 00:00:00以降となるまでは起動しないということです。

Airflowで使用する各種の日時情報はすべて何らかのかたちでこのデータ区間の概念に結び付けられています。例えばDAG Runの「論理日付」(logical date。Airflow バージョン2.2以前はexecution_dateと呼ばれていました)は、DAGが実際に実行された日時ではなくデータ区間のスタートの日時を示します。

これと同様に、DAGとそのタスク群のstart_dateは皆同じ論理日付を指します。この値はDAGのタスクが実行され始めた日時ではなく、DAGの一連のデータ区間の中でも最初のものの開始日時を示します。別の言い方をすれば、DAG Runはstart_dateのあと1データ区間分の時間が経過したあとにスケジュール実行されるわけです。

Tip
schedule_interval引数がDAGのスケジュール、論理日付、あるいはデータ区間の定義に役不足な場合は、Timetablesをご覧ください。logical dateについてより詳しくは「DAGを実行する」や 「execution_dateが意味するもの」をご覧ください。


1つ前の記事「DAGを実行する(Running DAGs)」に続いてDAG実行の理解に欠かせない日付概念について見てきました。
データ区間(Data Interval)は日時を示す概念の中で中核に位置するもので、ドキュメントの中でもそこら中に登場するので、ここをきちんと理解しておかないといけません。。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?