ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Airflow] Apache Airflow 살펴보기
    카테고리 없음 2025. 6. 19. 09:43

    데이터 파이프라인

    • 원하는 결과를 얻기 위해 실행되는 여러 태스크 또는 동작으로 구성
    • 각 태스크는 정해진 순서대로 진행되어야 함

    태스크 간 의존성을 명확하게 확인하는 방법

    • 데이터 파이프라인을 그래프로 표현하는 것!
    • 태스크 = 노드 , 태스크 간 의존성 = 태스크 노드 간 방향
    • 방향성 그래프

    방향성 비순환 그래프 (Directed Acyclic Graph, DAG) : 화살표 방향성의 끝점을 포함하되 반복/순환을 허용하지 않음

    • 파이프라인 실행을 위한 단순한 알고리즘을 제공
      1. 그래프 안에 태스크는 각각 개방된 상태이며 (미완료 상태) 다음 단계를 수행함
        • 각각의 화살표 끝점은 태스크를 향하며, 다음 태스크로 향하기 전에 이전 태스크가 완료되었는지 확인함
        • 태스크가 완료되면 다음에 실행해야 할 태스크를 대기열에 추가함
          (의존성이 해결되지 않으면 실행 대기열에 추가하지 않음)
      2. 실행 대기열에 있는 태스크를 실행하고, 태스크 수행이 완료되면 완료 표시를 함
      3. 그래프의 모든 태스크가 완료될 때까지 Step1로 돌아감

    그래프 실행 알고리즘의 이점

    • 태스크를 병렬로 실행 가능
    • 전체 작업을 하나의 모놀리식 프로세스로 구성되는 것이 아니라, 파이프라인을 작은 점진적인 태스크로 명확히 분리 가능
      (실패한 태스크만 재실행할 수 있으므로 효율적)

    Airflow 소개

    • python 스크립트로 DAG 구조 구성 ➡️ Airflow가 python 코드를 파싱하여 DAG 구조 식별
      - 각 DAG 파일은 서로 다른 태스크와 해당 의존성을 기술하는 하나의 DAG에 대해 정의
      - Airflow 실행 시기와 주기 정의
    • Airflow가 각각의 DAG 실행 주기를 정의
    • Airflow의 주요 구성 요소 3가지
      1. Airflow Scheduler : DAG 분석 / 현재 시점에서 DAG 스케줄이 지난 경우에 Airflow Worker에 DAG 태스크 예약
      2. Airflow Worker : pool로 예약된 태스크 선택 및 병렬 실행, 실행결과를 지속적으로 추적 ➡️ 해당 과정의 모든 결과는 Airflow Metastore로 전달됨
      3. Airflow Web Server : Airflow Scheduler에서 분석한 DAG 시각화 / DAG 실행과 결과 확인용 인터페이스 제공
    • 점진적 로딩 및 백필
      • 최종 시점과 예상되는 다음 스케줄 주기를 상세하게 알려줌
      • 각각의 주기로 나누고, 각 주기별로 DAG 실행 가능
      • 점진적인 파이프라인 ➡️ 기존 결과에 대한 전체적인 태스크 재수행 방지
        각 DAG는 매번 전체 데이터 세트를 다시 처리하지 않고 해당 시간 슬롯(delta 데이터)에 대한 데이터만 처리
      • 백필 ➡️  과거 데이터를 손쉽게 재처리
        과거 특정 기간에 대해 DAG를 실행하여 새로운 데이터 세트를 생성 (백필)할 수 있음

    Airflow는 언제 사용할까?!

    • 배치 지향 데이터 파이프라인 구현에 적합
    • 파이썬 코드 사용
    • 확장 가능, 다양한 시스템과 통합 가능
    • 점진적 파이프라인 실행
    • 백필 기능
    • 웹 인터페이스를 통한 모니터링 & 디버깅

    Airflow... 이런 경우에는 그닥

    • 실시간 데이터 처리, 스트리밍 워크플로에는 적합하지 않음
    • 추가 및 삭제 태스크가 빈번한 동적 파이프라인의 경우 (실행되는 동안 구조가 변경되지 않은 파이프라인에 더 적합)
    • 파이썬 프로그래밍 경험 미흡

     

     

     

     

     

     

    출처 도서: Apache Airflow 기반의 데이터 파이프라인

Designed by Tistory.