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 스크립트 실행