본문 바로가기
Workflow

Chapter 1. Apache Airflow 살펴보기

by Night Fury 2024. 1. 10.
바스 하렌슬락, 율리안 더라위터르, 『Apache Airflow 기반의 데이터 파이프라인』, 김정민, 문선홍, MANNING-제이펍(2022), p3-19.

 

Airflow?

  • 데이터 파이프라인을 처리하기 위한 배치 태스크
  • 다양한 분산 시스템에서 발생하는 작업을 조율
  • 데이터 처리를 위한 다양한 구성 요소들을 조정
  • Open source!

 

Airflow의 주요 기능

  • 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축 가능
    • 파이프라인, 워크플로우 태스크를 DAG로 정의 가능
      • DAG (Directed Acyclic Graph): 방향성 비순환 그래프
        • 반복이나 순환을 허용하지 않음
        • 끝점(directed edge)을 포함
    • DAG를 Python 코드로 정의하면, 많은 유연성을 제공할 수 있음
  • 쉽게 확장 가능하고 다양한 시스템과 통합 가능
  • 점진적(incremental) 처리를 통해, 전체 파이프라인을 재실행할 필요 없음
  • DAG의 실행 주기 정의 (like Cron)
  • 백필 기능을 통해 과거 데이터를 손쉽게 재처리 가능
  • 웹 인터페이스를 통해 파이프라인 실행 결과를 모니터링 및 오류를 디버깅할 수 있음

 

데이터 파이프라인

  • 원하는 결과를 얻기 위해 실행되는 여러 태스크 or 동작으로 구성
    • e.g. 식자재 구매 → 재료 손질 → 요리 → 판매
  • 태스크는 정해진 순서대로 진행되어야 함
  • Graph로 표현 → 태스크 간 의존성을 명확하게 확인 가능
    • 순환 의존성 문제가 생기면 → 논리적 오류가 발생됨 → 교착 상태(deadlock)로 이어짐
    • 실행 알고리즘을 적용하면, task를 병렬로 실행할 수 있음 → 컴퓨팅 리소스를 효율적으로 활용
    • task가 실패한 경우, 실패한 task만 재실행하면 됨
      • 단일 스크립트 (monolithic)의 경우, 실패 시 전체 스크립트를 재실행해야 함
      • DAG는 해당 시간 슬롯(delta 데이터)에 대한 데이터만 처리

 

Airflow 구성 요소

  • Airflow 스케줄러: DAG를 분석, 현 시점에서 스케줄이 지난 경우, Airflow 워커에 DAG의 태스크를 예약
    • 파이프라인이 실행되는 시기와 방법을 결정
    • 최종 시점과 예상되는 다음 스케줄 주기를 상세하게 알려줌
  • Airflow 워커: 예약된 태스크를 선택하고 실행
    • task 실행은 병렬로 수행됨
    • 실행 결과는 지속적으로 추적됨
  • Airflow 웹 서버: 스케줄러에서 분석한 DAG를 시각화, 실행 및 결과를 확인할 수 있는 인터페이스 제공
    • task의 진행 상황 추적 및 로그 확인
반응형

'Workflow' 카테고리의 다른 글

Chapter 3. Apache DAG의 구조  (1) 2024.01.21
Chapter 2. Apache DAG의 구조  (0) 2024.01.15

댓글