Airflow 재수행 하기

스르륵·2022년 9월 28일
0

Airflow를 운영하다보면 이런 저런 이유로 task나 DAG를 재시작해야할 일이 있다.
한 두개 정도는 Web UI를 통해 쉽게 가능하다. clear 버튼만 누르면 재시작 되니까


클리어 버튼 옆에 몇 가지 옵션이 있는데,

  • Past: 해당 task의 과거 시점 task를 모두 같이 삭제
  • Future: 해당 task의 미래 시점 task를 모두 같이 삭제
  • Upstream: 해당 task의 상위 의존성 task를 모두 같이 삭제
  • Downstream: 해당 task의 하위 의존성 task를 모두 같이 삭제
  • Recursive: 사용 안해봤지만 sub DAG를 사용한 경우에 해당하는 것 같다
  • Failed : 실패한 task만 삭제

하지만 실패한 작업이 너무 많아서 일일이 클릭하면서 재시작 하기는 버거운 경우도 있을 것이다. 이럴 때는 오히려 CLI를 사용하는 것이 편할 것이다.

CLI 에서 task 재수행 하기

1. 실패한 task clear 하기

먼저 실패한 task들만 골라서 재실행하는 방법이다

airflow tasks clear <dag_id> -s <시작시간> -e <종료시간>

필수적인 옵션은 이정도이고 추가적인 옵션은 Airflow Document에 잘 나와있다.

2. Backfill로 재수행 하기

backfill은 수행되지 않은 기간의 것을 실행하여 빈 부분을 채우는데 사용하지만 --reset-dagruns 옵션으로 재수행도 가능하다.

airflow dags backfill <dag_id> -s <시작시간> -e <종료시간> --reset-dagruns

옵션은 task clear와 크게 다르지 않다.
이 역시 공식 문서를 참조하면 좋다.


이번에 작성한 DAG는 1분마다 실행되도록 했기 때문에 실행 횟수가 상당히 많은 편이다. 그런데 에러가 난 것을 늦게 알아차리면 수많은 실패 로그가 나를 맞이하고있다. Web UI가 평소에 간단한 작업을 하거나 한눈에 보기에는 매우 좋지만 한꺼번에 여러 작업을 하는 데에는 적합하지 않기 때문에 결국 CLI로 명령을 내리는 방법도 알고 있어야 할 것 같다.

profile
기록하는 블로그

0개의 댓글