[Apache Airflow] date 정리
date 정리
- start_date & execution_date 정리
- end_date 정리
start_date & execution_date 정리
- default_args에 있는 start_date는 dag가 실행되는 시점이 아닌, 읽어야 하는 첫번째 데이터의 날짜를 가리킴
- 아래 예시의 경우(daily job)
- 읽어야 하는 데이터의 날짜: 2022-03-29
- Dag 실행 시점: 2022-03-30
- 이때, execution_date라는 변수는 2022-03-29가 됨
- 🔗 schedule 시간 설정 시 유용한 사이트
- 🔗 airflow 버전 참고
- default_args의 catchup의 default는 True임
- 따라서, 별다른 설정 없이 dag를 enable한다면 scheduler는 start_date으로부터 오늘까지 실행할 횟수를 계산 후 실행하게 됨
...
default_args = {
...
'start_date': datetime(2022, 3, 29),
...
}
"""
오늘이 2022년 3월 29일 오후 11시인 경우 아래 dag는 3번 실행됨
아래는 딕셔너리 형태로 실제 실행 시점 & 실행시 execution_date(variable)의 값을 표현
실제 실행 시점: execution_date = {
'2022-03-27 02:00': '2022-03-26 02:00',
'2022-03-28 02:00': '2022-03-27 02:00',
'2022-03-29 02:00': '2022-03-28 02:00'
}
"""
...
default_args = {
...
'start_date': datetime(2022, 3, 26),
'catchup': True
...
}
...
with DAG(
...
schedule_interval="00 02 * * *",
...
end_date 정리
- backfill 해야되는 경우 사용하게 됨
- 아래의 경우 2022-03-26부터 2022-03-30의 데이터를 다시 가져와야하는 경우
...
default_args = {
...
'start_date': datetime(2022, 3, 26),
'end_date': datetime(2022, 3, 30)
...
}