[Airflow] Overview

minyeamer·2025년 5월 27일
0

Apache Airflow 배우기

목록 보기
1/13
post-thumbnail

Airflow Overview

  • 워크플로우를 만들고 관리하기 위한 목적의 파이썬 기반 오픈소스 플랫폼
  • 워크플로우는 DAG(Directed Acyclic Graph) 구조를 가짐
  • Cron 기반으로 작업 스케줄링
  • 웹 UI를 통해 작업을 모니터링하고 실패 시 재실행이 가능

Airflow 장점

  • 파이썬에서 지원되는 다양한 라이브러리를 활용 가능
  • 대규모 환경에서 부하 증가 시 수평적 확장이 가능한 Kubenetes 등 아키텍처 지원
  • 오픈소스 플랫폼의 이점을 살려 원하는 기능을 커스터마이징 가능

Airflow 단점

  • 실시간 워크플로우 관리에 적합하지 않음 (최소 분 단위 실행)
  • 워크플로우가 많아질수록 모니터링이 어려움

DAG(Directed Acyclic Graph)

  • DAG는 Task 간의 종속성과 순서를 지정
    • Task : DAG 내에서 어떠한 행위를 할 수 있는 객체
  • DAG는 1개 이상의 Task로 구성
  • Task 간에 순한되지 않고 방향성을 가짐
  • Task에 대한 종속성은 >> 또는 << 연산자를 사용해 선언
    • 예시) first_task >> second_task

dag

Airflow Workflow

  • Scheduler : 예약된 일정에 워크플로우를 Executor에게 넘겨 Task를 실행
  • Executor : Scheduler 내부의 모든 작업을 실행하며, 모든 Task가 순차적으로 실행되게 관리
  • Worker : 실제 Task를 실행하는 주체
  • Metadata Database : Scheduler, Executor, Webserver가 상태를 저장하는데 사용
  • DAG Directory : 파이썬으로 작성한 DAG 파일을 저장하는 공간
  • Webserver : User Interface를 통해 Scheduler와 DAG 실행 과정을 시각화해 표시

workflow

User Interface

  • DAG와 각각의 작업이 수행되는 내용을 시각적으로 확인
  • DAG 실행을 직접 트리거
  • DAG 실행 로그를 확인하고 제한적인 디버깅 수행

user-interface

https://airflow.apache.org/docs/apache-airflow/2.6.0/core-concepts/overview.html

profile
데이터의 모든 것을 추구합니다.

0개의 댓글