Framework/Airflow

[Airflow] Airflow란?

해치 2025. 5. 30. 16:12
728x90

Airflow

  • Airflow = 파이썬 기반 데이터 파이프라인 프레임워크
  • Airbnb가 만들고 Apache 오픈소스로 공개
  • 가장 많이 쓰이는 ETL 스케줄러

특징

  • 스케쥴링 지원 - 정해진 시간 or 특정 작업 완료 후 실행
  • 웹 UI 제공 - DAG 상태, 로드 확인 가능
  • DAG 구조 - 작업(Task) 간의 실행 순서를 그래프로 관리
  • 다양한 연결 모듈 - DP, API 클라우드 연동 쉬움 

구성

총 5개의 컴포넌트로 구성

  • 웹 서버 (Web Server)
    • 웹 UI를 제공
    • 스케줄러와 DAG 실행 상황을 시각화함
  • 스케줄러 (Scheduler)
    • DAG들을 워커에게 배정
    • 실행 결과는 메타 데이터베이스에 저장
  • 워커 (Worker)
    • DAG를 실제로 실행하는 역할
  • 메타 데이터 데이터베이스
    • 스케줄러와 DAG 실행 결과 저장
    • 기본 DB는 SQLite
    • 실제 프로덕션 환경에서는 MySQL이나 PostgreSQL 사용
  • 큐 (Queue) (다수 서버 구성 시에만 사용)
    • 이 경우 사용되는 Executor가 달라짐

 


DAG란?

Directed Acyclic Graph의 줄임말

순환하지 않는 방향성 그래프를 의미한다.

Airflow에서는 ETL을 부르는 명칭

 

DAG의 구성

  • DAG는 여러 개의 태스크(Task)로 구성됨
  • 예: 3개 태스크 → Extract → Transform → Load

태스크(Task)란?

  • 태스크는 Airflow의 오퍼레이터(Operator)로 만들어짐
  • Airflow는 다양한 오퍼레이터를 기본 제공
  • 작업 목적에 따라 적절한 오퍼레이터를 선택하거나 직접 구현 가능

예시 오퍼레이터

  • Redshift 데이터 쓰기
  • Postgres 쿼리 실행
  • S3 파일 읽기/쓰기
  • Hive 쿼리
  • Spark 작업 실행
  • Shell 스크립트 실행