Data Engineering/Airflow
[Airflow] Airflow 소개와 구성
홍문관카페나무
2023. 5. 29. 20:25
Airflow 소개
- 파이썬으로 만들어진 데이터 파이프라인 (ETL) 프레임워크다.
- 데이터 파이프라인 스케줄링을 지원하여, 정해진 시간에 ETL을 실행하거나 그 다음 ETL을 실행한다.
- Airflow에서는 데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부른다.
- DAG는 Task로 구성된다. ( 예를 들어 3개의 태스크로 구성된다면 Extract, Transform, Load로 구성 )
- 하나의 DAG는 하나 이상의 태스크로 구성된다.
- 태스크는 Airflow의 Operator로 만들어진다. Airflow에서 이미 다양한 종류의 오퍼레이터를 제공한다.
- 경우에 오퍼레이터를 결정해서 사용할 수 있다.
Airflow 구성

- Airflow는 웹 서버, 스케줄러, 워커, 메타 데이터 데이터베이스, 큐. 총 5개의 컴포넌트로 구성된다.
- 스케줄러는 DAG안에 있는 Task들을 워커들에게 배정하는 역할을 수행한다.
- 웹 UI는 스케줄러와 DAG의 실행 상황을 시각화 해준다.
- 워커는 실제로 DAG를 구성하는 Task들을 실행하는 역할을 맡는다.
- 스케줄러와 각 DAG의 실행결과는 별도 DB에 저장된다. ( 기본적으로 설치되는 SQLite는 잘 안 쓴다. )
Airflow 스케일링

- 더 좋은 사양의 서버를 사용하는 scale-up, 서버의 수를 늘리는 scale-out 2가지 방법이 존재한다.
- Scale-Out이 되는 순간 비용도 늘어나고, 관리도 복잡해져서 Scale-Up을 우선적인 선택지로 고려하게 된다.
Airflow 개발 : Pros and Cons
Pros
- 데이터 파이프라인을 세밀하게 제어할 수 있다.
- 다양한 데이터 소스와 데이터 웨어하우스를 지원한다.
- 백필(backfill)이 쉽다.
Cons
- 배우기가 쉽지 않다.
- 상대적으로 개발환경을 구성하기 쉽지 않다.
- 직접 운영이 쉽지 않다. 클라우드 버전 사용이 선호된다. (AWS : Managed Workflows for Apache Airflow, MWAA)
반응형