Airflow task context

1. Task context

작업 실행시 값을 할당하기 위한 변수

예를 들면, 다음과 같은 코드는

{{ ds_nodash }}

작업 실행시 다음과 같이 값이 치환된다.

20220807

2. Task context list

Python operator를 사용하여 Task context를 출력할 수 있다.

import pendulum
from airflow import DAG
from airflow.operators.python import PythonOperator

dag = DAG(
    dag_id="13_task_context_list",
    start_date=pendulum.today('Asia/Seoul').add(days=-3),
    schedule_interval="@daily",
    catchup=True,
    tags=['igkim', 'test'],
)


def _print_context(**kwargs):
    print(kwargs)


print_context = PythonOperator(
    task_id="print_context",
    python_callable=_print_context,
    dag=dag,
)

print_context

Task context list는 다음과 같다.

KeyDescValue e.g.
confAirflow 구성 정보airflow.configuration.AirflowConfigParser object
dagDAG ObjectDAG: 13_task_context_list
dag_runDagRun ObjectDagRun 13_task_context_list @ 2022-08-07 15:00:00+00:00: scheduled__2022-08-07T15:00:00+00:00, externally triggered: False
ds%Y-%m-%d 형식의 execution_date“2022-08-07”
ds_nodash%Y%m%d 형식의 execution_date“20220807”
execution_dateTask Schedule 간격의 시작 날짜/시간pendulum.datetime.DateTime(2022, 8, 7, 15, 0, 0, tzinfo=Timezone(‘UTC’))
next_ds%Y-%m-%d 형식의 다음 Schedule execution_date“2022-08-08”
next_ds_nodash%Y%m%d 형식의 다음 Schedule execution_date“20220808”
next_execution_dateTask의 다음 Schedule 시간pendulum.datetime.DateTime(2022, 8, 8, 15, 0, 0, tzinfo=Timezone(‘UTC’))
prev_ds%Y-%m-%d 형식의 이전 Schedule execution_date“2022-08-06”
prev_ds_nodash%Y%m%d 형식의 이전 Schedule execution_date“20220806”
prev_execution_dateTask의 이전 Schedule 시간pendulum.datetime.DateTime(2022, 8, 6, 15, 0, 0, tzinfo=Timezone(‘UTC’))
prev_execution_date_success동일한 Task중 성공적으로 완료된 가장 최근 execution_datependulum.datetime.DateTime(2022, 8, 6, 15, 0, 0, tzinfo=Timezone(‘UTC’))
prev_start_date_success동일한 Task중 성공적으로 시작된 가장 최근 실제 시작 시간pendulum.datetime.DateTime(2022, 8, 9, 4, 53, 50, 778836, tzinfo=Timezone(‘UTC’))
run_idDagRun의 run_id“scheduled__2022-08-07T15:00:00+00:00”
task현재 OperatorTask(PythonOperator): print_context
task_instance현재 Task instanceTaskInstance: 13_task_context_list.print_context scheduled__2022-08-07T15:00:00+00:00 [running]
task_instance_key_str현재 Task instance의 고유 식별자13_task_context_list__print_context__20220807
titask_instance와 동일한 현재 Task instance 객체TaskInstance: 13_task_context_list.print_context scheduled__2022-08-07T15:00:00+00:00 [running]
tomorrow_dsds + 1 days“2022-08-08”
tomorrow_ds_nodashds_nodash + 1 days“20220808”
tsISO8601 포맷의 execution_date“2022-08-07T15:00:00+00:00”
ts_nodash%Y%m%dT%H%M%S 형식의 execution_date“20220807T150000”
ts_nodash_with_tz시간 정보가 있는 ts_nodash“20220807T150000+0000”
yesterday_dsds - 1 days“2022-08-06”
yesterday_ds_nodashds_nodash - 1 days“20220806

오류 또는 틀린 부분 피드백 환영합니다.

Reply


© 2022. igkim. All rights reserved.

Powered by igkim89