Airflow

워크플로를 프로그래밍 방식으로 작성, 스케줄링, 모니터링하기 위한 플랫폼.

개요

Apache Airflow는 데이터 파이프라인을 DAG(Directed Acyclic Graph)로 정의하고 실행하는 워크플로 오케스트레이션 도구입니다.

공식 사이트: https://airflow.apache.org/
문서: https://airflow.apache.org/docs/

핵심 개념

DAG (Directed Acyclic Graph)

작업(Task)들 간의 의존성을 방향성 비순환 그래프로 표현한 워크플로. (원본: Airflow)

Task

DAG 내에서 실행되는 개별 작업 단위. Operator로 정의. (원본: Airflow)

Scheduler

DAG를 모니터링하고 Task를 실행할 시점을 결정. (원본: Airflow)

Executor

Task를 실제로 실행하는 컴포넌트.

  • LocalExecutor, CeleryExecutor 등 (원본: Airflow)

프로젝트 활용

Nasdaq 배치 처리

Airflow로 주기적 배치 작업 스케줄링:

환경 구성

Docker에서 Airflow 실행:

관련 기술

학습 자료

환경 설정

  • Docker에서 Airflow 컨테이너 실행 (원본: Airflow)
  • Celery Executor 설정 (원본: Airflow)
  • 폐쇄망에서 Airflow 구축 (원본: Airflow)

트러블슈팅

메모리 문제

비교

Airflow vs Dagster

  • Airflow: 성숙한 생태계, Python DAG 기반
  • Dagster: 소프트웨어 정의 자산(SDA), dbt 네이티브 통합
  • 참고: Dagster

참고 자료

학습 노트:

  • Airflow - Airflow 기본 개념 및 환경 설정

프로젝트:

강의: