Airflow의 스케줄링에 대하여 알아본다
with DAG(
dag_id='dag-for-velog',
schedule_interval='@daily',
tags=['airflow'],
start_date = datetime(2022,1,1)
...
)
위의 예시코드의 경우, 2022-01-01 13:00에 실행하여도 그 다음날이 되기 전까지 DAG는 아무런 작업도 하지 않는다.
end_date
를 사용하지 않으면 영원히 설정한 주기마다 작업이 실행된다.- 0 * * * * : 매시간(정시에 실행)
- 0 0 * * * : 매일(자정에 실행)
- 0 0 * * 0 : 매주(일요일 자정에 실행)
- 0 0 1 * * : 매월 1일 자정
- 45 23 * * SAT : 매주 토요일 23시 45분
- 0 0 * * MON, WED, FRI : 매주 월, 화, 금요일 자정에 실행
- 0 0 * * MON-FRI : 매주 월요일~금요일 자정에 실행
- 0 0,12 * * * : 매일 자정 및 오후 12시에 실행
timedelta
인스턴스를 이용하여 빈도 기반 스케줄 사용with DAG(
dag_id="dag-for-velog",
schedule_interval=datetime.timedelta(days=3),
start_date=datetime.datetime(year=2022, month=1, day=1),
end_date=datetime.datetime(year=2022, month=1, day=5),
)
데이터 증분 처리 : 일정 시간마다 새롭게 추가된 데이터만 처리
catchup
을 false로 설정하여 비활성화할 수 있다