2022. 9. 2. 17:04ㆍBook/Apache Airflow 기반의 데이터 파이프라인
데이터파이프라인 소개

- 태스크를 병렬로 실행 -> 가용 컴퓨팅 리소스를 더 효율적으로 활용!
- 파이프라인을 작은 점진적인 태스크로 명확하게 분리 할 수 있음.
- 실패한 태스크만 재실행 하면됨 -> 효율적
※ 모놀리식 : 파이프 라인의 중간 태스크가 실패하면 전체 스크립트를 재실행 해야함 -> 비효율적
Airflow DAG를 파이썬 코드로 정의할 때 장점
- 프로그래밍 접근 방식이 DAG를 구성하는데 많은 유연성을 제공할 수 있음.
※ DAG ( Directed Acyclic Graph, 방향성 비순환 그래프 )

Airflow 주요 구성요소
▶ Airflow 스케줄러
DAG를 분석하고 현재 시점의 스케줄이 지난경우 Airflow 워커에 DAG의 태스크를 예약함.
■ Airflow 스케줄러 작업 단계
- 사용자가 DAG 워크플로를 작성하면, 스케줄러는 DAG 파일을 분석하고 각 DAG 태스크, 의존성 및 예약 주기를 확인
- 스케줄러는 마지맞 DAG 까지 내용을 확인한 후 DAG의 예약 주기가 경과했는지 확인함. 예약 주기가 현재 시간 이전이라면 실행 예약을 하게됨.
- 예약된 각 태스크에 대해 스케줄러는 해당 태스크의 의존성을 확인함. 의존성 태스크가 완료되지 않았다면 실행 대기열에 추가
-> Airflow 워커의 풀의 워커가 태스크를 선택하고 실행, 병렬로 수행, 실행결과는 지속적으로 추적
-> Airflow의 메타스토어로 전달, Airflow의 웹 인터페이스 확인 가능 - 스케줄러는 1단계로 다시 돌아간 후 새로운 루프를 잠시 동안 대기함.
Airflow를 선택하는 이유
- 파이썬코드를 이용해 파이프라인을 구현할 수 있기 때문에 파이썬 언어에서 구현할 수 있는 대부분의 방법을 사용하여 복잡한 커스텀 파이프라인을 만들 수 있음.
- 파이썬 기반의 Airflow는 쉽게 확장 가능하고 다양한 시스템과 통합이 가능.
- 수 많은 스케줄링 기법은 파이프라인을 정기적으로 실행하고 점진적 처리를 통해 전체 파이프라인을 재실행할 필요 없는 효율적인 파이프라인 구축이 가능.
- 백필 기능을 사용하면 과거 데이터를 손쉽게 재처리할 수 있기 때문에 코드를 변경한 후 재생성이 필요한 데이터 재처리가 가능.
- Airflow의 훌륭한 웹 인터페이스는 파이프라인 실행 결과를 모니터링 할 수 있고 오류를 디버깅하기 위한 편리한 뷰를 제공함.
- 오픈소스이기 때문에 특정 벤더에 종속되지 않고 Airflow를 사용할 수 있음.
Airflow가 적합하지 않은 경우
- Airflow는 반복적이거나 배치 태스크를 실행하는 기능에 초점이 맞춰져 있기 때문에 스트리밍 ( 실시간 데이터 처리 ) 워크 플로 및 해당 파이프라인 처리에 적합하지 않음.
- Airflow는 실행되는 동안 구조가 변경되지 않은 파이프라인에 좀 더 적합
- 파이썬 코드로 DAG를 작성하는 것은 파이프라인 규모가 커지면 굉장히 복잡해 질 수 있음.
'Book > Apache Airflow 기반의 데이터 파이프라인' 카테고리의 다른 글
Airflow XCom (0) | 2022.11.30 |
---|---|
Airflow 의존성 (0) | 2022.11.30 |
Airflow 기본적인 Operator (0) | 2022.11.14 |
Airflow 스케줄링 (0) | 2022.11.14 |
Airflow 시작 (0) | 2022.09.03 |