[Airflow] Airflow의 개념과 구성, 장단점

·2023년 6월 6일
0

Airflow

목록 보기
1/1
post-thumbnail

1. Airflow란

  • Airflow는 파이썬으로 작성된 데이터 파이프라인 (ETL) 프레임워크이다.
  • 데이터 파이프라인 스케줄링을 지원한다.
  • 데이터 파이프라인(ETL)의 작성을 쉽게 만들어 준다. 다양한 데이터 소스와 데이터 웨어하우스를 쉽게 통합해 주는 모듈을 제공한다.
  • 데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부르며 DAG는 하나 이상의 태스크로 구성된다.
  • Airflow 버전을 선택하는 방법은 가장 최근 버전을 사용하는 것이 좋다. Google Cloud


2. Airflow 구성

  • 웹 서버(Web Server)
    • Python Flask로 구현
    • 스케줄러DAG의 실행 상황을 시각화
  • 스케줄러 (Scheduler)
    • DAG을 워커들에게 배정하는 역할 수행
  • 워커 (Worker)
    • 실제 DAG를 실행하는 역할 수행
  • 메타 데이터 데이터베이스
    • default가 sqlite지만 보통 별도로 MySQL이나 PostgreSQL 등을 따로 설치해 사용

  • - 다수의 서버로 구성하는 경우 워커가 한 개의 서버로 제약이 생기기 때문에 서버의 수를 늘리게 되고 데이터 파이프라인에 어떤 태스크가 어떤 워커로 실행될 것인지를 미리 정할 수 없기 때문에 이것을 큐에 넣어 두어 판단
    - Executor가 달라짐


✍ Airflow 스케일링 방법

  • 스케일 업
    • 더 좋은 사양의 서버 사용
    • 대신 어느 정도 지나면 한계에 달할 수 있음
  • 스케일 아웃
    • 서버 추가
  • 다 다르겠지만 스케일 아웃을 하면 비용이 많이 들고, 관리도 더 힘들어지기 때문에 일단 스케일 업을 진행한다. 계속 스케일 업을 진행하다 한계에 달하게 되면 스케일 아웃을 하게 되는데 서버를 추가하는 게 아니라 Airflow를 제공하는 클라우드 서비스를 통한 스케일 아웃을 한다.

✍ 여러 종류의 Executor들

  • Executor란 스케줄러가 워커에게 바로 데이터를 전달하는 게 아니라 Executor를 통해 전달하게 된다.
  • default는 Sequential Executor지만 제약이 많다.
  • 종류
    • Sequential Executor
    • Local Executor
    • Celery Executor
    • Kubernetes Executor
    • CeleryKubernetes Executor
    • Dask Executor


3. Airflow의 장단점

1) 장점

  • 데이터 파이프라인을 세밀하게 제어 가능
  • 다양한 데이터 소스와 데이터 웨어하우스를 지원
  • 백필(Backfill)이 쉬움 (매우 중요한 Airflow의 장점)

2) 단점

  • 배우기가 쉽지 않음
  • 상대적으로 개발 환경을 구성하기가 쉽지 않음
  • 직접 운영이 쉽지 않기 때문에 어느 시점이 되어 스케일 아웃이 필요하다면 클라우드 버전 사용이 선호

4. DAG(Directed Acyclic Graph)

  • Airflow에서는 Data Pipeline, Data WorkflowDAG(Directed Acyclic Graph)라고 부른다.
  • 순서가 양방향이 아니라 한 방향으로 가기 때문에 Directed가 붙는다.
  • 또한 루프가 존재하지 않고 모든 과정이 끝나면 끝이기 때문에 Acyclic이라고 한다.
  • DAG는 하나 이상의 태스크로 구성이 된다. 즉, 태스크의 집합이다.
  • 이때 태스크(Task)란?
    • Airflow오퍼레이터(Operator)로 만들어짐
    • 경우에 맞게 사용 오퍼레이터를 결정하거나 필요하다면 직접 개발할 수도 있음
profile
송의 개발 LOG

0개의 댓글