홍카나의 공부방

[Airflow] Airflow 소개와 구성 본문

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 구조

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

 

Airflow 스케일링

scale up과 scale out

  • 더 좋은 사양의 서버를 사용하는 scale-up, 서버의 수를 늘리는 scale-out 2가지 방법이 존재한다.
  • Scale-Out이 되는 순간 비용도 늘어나고, 관리도 복잡해져서 Scale-Up을 우선적인 선택지로 고려하게 된다.

 

Airflow 개발 : Pros and Cons

Pros

  • 데이터 파이프라인을 세밀하게 제어할 수 있다.
  • 다양한 데이터 소스와 데이터 웨어하우스를 지원한다.
  • 백필(backfill)이 쉽다.

 

Cons

  • 배우기가 쉽지 않다.
  • 상대적으로 개발환경을 구성하기 쉽지 않다.
  • 직접 운영이 쉽지 않다. 클라우드 버전 사용이 선호된다. (AWS : Managed Workflows for Apache Airflow, MWAA)
반응형