개요
업무 중 Airflow를 많이 다루는데, 웹 서버에 접속하지 못하는 상태이다. 그렇다고 업무를 놓을 수는 없으니 Airflow 사용에 필요한 CLI 명령을 정리한다.
DAG 목록 확인
어떤 파일로 DAG가 생성되었는지, 소유자와 ON/OFF(pause) 상태를 확인할 수 있다.
airflow dags list
pause가 True이면 OFF, False이면 ON 상태이다.
DAG 구조 확인
DAG가 어떤 Task로 구성되어 있고, Task 간 의존성은 어떤지 확인한다.
airflow dags show schedule_test
Dag의 Task 목록 확인
DAG에 정의된 Task 목록을 확인한다. 트리 형태로 확인하고 싶을 때는 -t 옵션을 주어 실행한다.
airflow tasks list <DAG_ID>
# -t, --tree : 트리 형태로 출력
Dag ON/OFF
DAG를 트리거하기 위해서는 ON 상태여야 한다. DAG의 ON/OFF 상태를 변경할 때는 unpause/pause 명령을 사용한다.
ON
airflow dags unpause <DAG_ID>
OFF
airflow dags pause <DAG_ID>
Dag Trigger
2022.11.23 - [Airflow] Trigger에서 소개한 명령어다. DAG를 트리거해서 실행시킨다.
airflow dags trigger <DAG_ID>
Dag-run 목록 확인
DAG Run의 상태를 확인한다. run_id, execution_date, 실행 시점과 종료 시점 정보를 같이 확인할 수 있다.
airflow dags list-runs -d <DAG_ID>
# -s, --start-date
# -e, --end-date
start-date, end-date를 지정하지 않으면 Airflow Meta DB에 저장된 모든 DAG Run 목록을 확인한다.
Dag-run의 Task-instance 상태 확인
특정 DAG Run의 Task instance 상태를 확인한다. 상태를 확인할 DAG Run을 지정해야 하므로, DAG id와 DAG Run을 식별할 execution_date, 또는 Run id를 지정해야 한다.
airflow tasks states-for-dag-run <DAG_ID> <execution_date_or_run_id>
Dag의 Task Clear
2022.11.15 - [Airflow] Clear - Task 재실행에서 소개한 명령어다. DAG Task를 재실행하기 위해 클리어한다.
airflow tasks clear \
-d <DAG_ID> \
-s 2023-01-06T03:05:00+00:00 -e 2023-01-06T03:05:00+00:00
DAG Task Log 확인
DAG Task의 실행 로그는 airflow 설정에 정의된 log 폴더 내 파일에서 확인할 수 있다.
view /<base_log_folder>/<DAG_ID>/<TASK_ID>/<EXECUTION_DATE>/<TRY_NUMBER>.log
airflow CLI cheat-sheet
이 외 자주 쓰는 명령어는 아래 명령으로 확인할 수도 있다.
airflow cheat-sheet
참고 문서
https://velog.io/@yje876/Airflow-CLI-%EB%B0%8F-Management
https://levelup.gitconnected.com/airflow-command-line-interface-cli-cheat-sheet-6e5d90bd3552