관련 이것저것/Airflow

[Airflow] 데이터 파이프라인

agingcurve 2022. 7. 25. 22:37
반응형

책 내용 정리

 

데이터 파이프 라인 구축은 원하는 결과를 얻기 위해 여러 태스크 동작으로 구성한다.

 

 

데이터 파이프라인 그래프

태스크 간의 의존성을 확인하는 방법은 그래프로 표현 하는 것이다. 

그래프에서 화살표의 최종 끝점은 태스크 A에서 B로 연결되고, B가 시작되기 전, A를 완료해야 된다는 의미이다.

이러한 그래프를 방향성 그래프 라고 한다.

 

 

각 노드는 태스크를 나타내며, 화살표 끝점 방향은 태스크 간 의존성을 나타내게 됨 (A를 먼저 실행 후 B가 활성화됨을 뜻한다.

 

이런 형태의 그래프는 일반적으로 방향성 비순환 그래프(Directed Acyclic Braph, DAG) 대그 라고 부르게 된다.

비순호나 그래프는 태스크 간의 순환 실행을 방지하기 때문에 매우 중요하며

그래프를 실행할 때, 순환 의존성을 발생시킨다. 순환그래프 의경우, 2가완료된 후 3이 실행되고 다시 2가 실행되는 논리적 오류 때문에  그래프가 동작하지 않는다

 

그래프에 실행 알고리즘을 사용하면, 병렬적 태스크를 실행하여 리소스를 효율적으로 사용이 가능하다.

 

그래프 기반 수행은 단일 스크립트 또는 프로세스가 아니기 때문에 태스크를 분리할 수 있는 장점이 있다.

파이프 라인 중간에 실행이 실패할경우, 실패한 부분만 다시 시행하면 되므로 효율성이 높다.

 

AIRFLOW

 

AIRFLOW는 데이터 지향적 워크플로와 파이프라인 처리에 적합하다.

AIRFLOW DAG는 파이썬 코드로 구성하는 데 유연성을 제공한다. 

 

DAG로 파이프라인 구조를 정의한다면, Airflow를 활용하여 언제 실행할지 DAG실행 주기 정의가 가능하다.

 

AIRFLOW 구성요소

AIRFLOW 스케줄러 -> DAG를 분석하여 DAG의 스케줄이 지나면, 워커에 DAG의 태스크 예약

AIRFLOW  워커 -> 에약된 태스크를 선택하고 실행

AIRFLOW  웹서버 -> 스케줄러에서 분석한 DAG를 시각화, 주요 인터페이스 제공

 

1.AIRFLOW의 핵심은 스케줄러이며, DAG 워크플로를 작성하면 예약주기를 통해 확인한다.

2.DAG까지 내용을 확인 후 DAG의 예약 주기가 경과했는지 확인

3. 의존성 확인( 완료되지 않으면 대기열 추가)

4. 1단계 후 새로운 루프 잠시 대기