데이터를 기반으로

Airflow DAG 와 실행 개념 본문

스터디/Apache Airflow

Airflow DAG 와 실행 개념

이노후 2023. 4. 7. 21:32
728x90
반응형

DAG 란?

-> 방향성 비순환 그래프(Directed Acyclic Grapch)라고 부르며, airflow에서 각 태스크 별로 어떻게 실행되는 지 순서를 확인할 수 있는 그래프이며, 해당 그래프로 전체 파이프라인을 직관적으로 표현할 수 있다.

 

화살표의 관계는 방향성의 시작점의 태스크가 완료되어야 방향성이 가리키는 태스크를 실행할 수 있다는 의미이다.

이러한 관계이기에, 반복이나 순환을 허용하지 않는다.

 

만약, 허용하게 된다면 논리적 오류가 발생되어 교착상태(데드락 = deadlock)로 이어진다.

 

[ 예시 사진 ]

태스크 1의 순서인 첫번째가 혹시, 병렬 구조로 2개의 태스크가 독립적으로 이루어지는 케이스들도 존재한다.

해당 태스크는 병렬로 실행하여 가용 컴퓨팅 리소스를 더 효율적으로 사용할 수 있다.

 

DAG로 파이프라인 구조를 정의하고 나면 각 DAG의 실행 주기를 설정할 수 있다.

 

Airflow는 크게 3가지로 구성되어 있다.

 

1. 스케줄러 - DAG를 분석하고 현재 시점에서 DAG의 스케줄이 지난 경우 워커에 DAG의 태스크를 예약한다.

2. 워커 - 예약된 태스크를 선택하고 실행한다.

3. 웹 서버 - 스케줄러에서 분석한 DAG를 시각화하고 DAG 실행 및 결과를 확인할 수 있는 인터페이스를 제공한다.

 

태스크가 실행 대기열에 추가되면 워커의 풀(pool)의 워커가 태스크를 선택하고 실행합니다.

 

기본적으로 태스크 실패 시에 재시도를 할 수 있으며 실패했음에도 기록하고 사용자에게 실패를 통보한다.

또한, 트리 뷰를 통해 실패한 태스크를 보고 로그를 확인할 수 있어 디버깅에 유용합니다.

추가로, 트리 뷰에서 개별 태스크 결과를 삭제하고 종속된 태스크를 모두 재실행할 수 있습니다.

 

728x90
반응형

'스터디 > Apache Airflow' 카테고리의 다른 글

Airflow Webserver 실행안될 때  (0) 2023.06.02
Airflow Local Path 관련 이슈 정리  (1) 2023.05.10
Operator 파악하기  (0) 2023.05.01
Airflow 개념 및 설치  (0) 2023.03.24
Apache Airflow 스터디 시작  (0) 2023.03.24