해결된 질문
작성
·
174
답변 1
1
안녕하세요 Hyeonghwan Kwon 님
좋은 질문 올려주셔서 감사합니다. 그리고 내용 중 설명이 부족한 부분이 있습니다.
우선 Airflow에서 Dag을 catchup=False로 설정한 상태에서 unpause로 활성화 했을 때, 기본적으로 가장 마지막으로 돌았어야 할 배치일자를 실행시키게 되어있습니다.
예를 들어 수업 내용에서와 같이
매월 첫째주 토요일에 수행되는 Monthly 작업
현재: 2023/03/19
이런 조건이라면 마지막으로 돌았어야 할 배치는 3월 첫째주 토요일인 2023/03/04 입니다. 하지만 강의에서 보다시피 unpause 했을 때 자동으로 시작되지 않았죠. 그 이유는 start_date 때문입니다.
마지막으로 돌았어야 할 배치의 data_interval_end는 2023/03/04 이고 배치의 data_interval_start는 2023/02/04 입니다.
그러나 start_date를 2023/03/01 로 주었습니다.
start_date가 2023/02/04 이후에 있기 때문에 해당 구간의 배치가 돌지 않은 것입니다.
만약 start_date를 2023/02/04 이전으로 주면 unpause 했을 때 자동적으로 한번 수행될 겁니다.
지금 설명한 것을 그림으로 나타내면 아래와 같습니다.
종합하자면 UI에서 보이는 Next Run보다 현재 날짜가 우측에 있다고 무조건 안 도는 것은 아니고 dag의 start_date가 지난 배치의 data_interval_start 보다 뒤에 있게 되면 안 돌게 됩니다.
강의 내용 전달에 미스가 있었던 것 같습니다. ^^
너그러이 양해 부탁드립니다.
새해 복 많이 받으세요!
혹시 섹션 3의 첫 번째 강의 보신건가요?
위에 설명드린 것은 섹션2의 4번째 강의를 보고 설명드렸습니다 ^^
섹션3 첫번째 강의의 dags_python_operator dag 실습을 보신게 맞다면 해당 dag은 daily job 입니다.
해당 실습일이 2023.03.19 이었으므로
마지막으로 돌았어야 할 배치는 2023.03.18 06:30 배치입니다.
이 배치의 data_interval_start는 2023.03.17 06:30이고 start_date 보다 크므로 unpause 시켰을 때 정상적으로 수행된 것입니다.
이해되셨을까요?
감사합니다. 이해가 잘되었습니다.
그런데 강의에서 pause -> unpause로 돌렸을때, 따로 수동 실행없이 Grid탭으로 넘어갔을때, 실행되어있는것을 보면, 자동실행된것이 아닌가요?