Airflow DAG

Python으로 배우는 Apache Airflow 입문

Mike Metzger

Data Engineer

DAG란 무엇인가?

DAG(방향성 비순환 그래프):

  • 방향성(Directed) - 컴포넌트 간 흐름이 의존성을 나타냄
  • 비순환(Acyclic) - 루프 또는 반복 없음
  • 그래프(Graph) - 컴포넌트의 집합

노드가 단방향 화살표로 연결된 방향성 비순환 그래프

Python으로 배우는 Apache Airflow 입문

Airflow의 DAG

  • Python으로 작성됨 (다른 언어로 작성된 컴포넌트 사용 가능)
  • 연산자 또는 센서와 같은 실행 태스크로 구성됨
  • 명시적 또는 암묵적으로 정의된 의존성 포함
    • 예: 데이터베이스 서비스에 임포트하기 전에 서버에 파일 복사

  태스크 간 의존성 순서를 보여주는 Airflow DAG

Python으로 배우는 Apache Airflow 입문

DAG 정의

DAG 예시 (Taskflow API):

from airflow.sdk import dag

from pendulum import datetime @dag( dag_id='etl_workflow', email='[email protected]', start_date=datetime(2026, 3, 15, tz="UTC") )
def etl_workflow(): ...
etl_workflow()
Python으로 배우는 Apache Airflow 입문

명령줄에서의 DAG

 

  • airflow 명령줄에는 다양한 서브커맨드 포함
  • airflow -h - 도움말 및 서브커맨드 설명

 

  • DAG 서브커맨드

    • airflow dags list - 인식된 모든 DAG 표시
    • airflow dags reserialize - Airflow가 DAG 파일을 강제로 다시 로드
    • airflow tasks test - 특정 태스크 실행
Python으로 배우는 Apache Airflow 입문

명령줄 vs Python

명령줄 도구 사용 용도:

  • Airflow 프로세스 시작
  • DAG / 태스크 수동 실행
  • Airflow 로그 정보 조회

Airflow 명령줄 도구를 실행하는 터미널

Python 사용 용도:

  • DAG 생성
  • DAG 개별 속성 편집

Python 코드를 나타내는 일러스트레이션

Python으로 배우는 Apache Airflow 입문

연습해 봅시다!

Python으로 배우는 Apache Airflow 입문

Preparing Video For Download...