안녕하세요 !

오늘은 Airflow에 대해 알아보며 구성요소와 특징 등을 소개하고 언제 Airflow를 사용하면 좋은지, 어떨 때는 적합하지 않은지에 대해서 알아보도록 하겠습니다.


Airflow

Airflow는 Data Orchestrator으로 파이프라인이나 워크플로 태스크를 정의할 수 있습니다.

Data Orchestrator로써 Airflow는 데이터를 원하는 순서 방식으로 다루며 파이프라인 스케줄링 및 실행 기능을 가지고 있습니다.

DAG를 작성하면 Airflow는 구조를 식별하기 위해 코드를 파싱하게 됩니다. DAG 파일에는 추가 메타데이터를 포함할 수 있습니다.

Airflow 구성요소

  1. Airflow Scheduler : DAG를 분석하고 Worker에 DAG Task를 예약함
  2. Airflow Worker : 예약된 Task를 선택하고 실행
  3. Airflow Webserver : 스케줄러에서 분석한 DAG 시각화 및 DAG 실행, 결과를 확인할 수 있는 인터페이스 제공

Airflow 특징

  1. Python을 사용하여 DAG 정의.
  2. 태스크 간의 의존성, 리소스 등을 자유롭게 정의하고 처리 가능.
  3. 모니터링 등을 쉽게 할 수 있도록 UI 제공.
  4. 다양한 외부 툴과 협업이 가능.

위와 같은 특징을 보아해서 Airflow는 배치 지향 데이터 파이프라인을 구현하는데 적합할 수 있습니다.


Airflow를 선택하는 이유

  1. 파이썬을 사용해 복잡한 커스텀 파이프라인을 만들 수 있음.
  2. Airflow는 쉽게 확장이 가능하고 다양한 시스템과 통합이 가능함.
  3. 수많은 스케줄링 기법을 통해 효율적인 파이프라인 구축이 가능함.
  4. 백필 기능을 사용하면 과거 데이터를 손쉽게 재처리 할 수 있음.
  5. Airflow 웹 인터페이스로 파이프라인 실행 결과를 쉽게 모니터링, 디버깅 할 수 있음.
  6. Airflow가 오픈소스임.

Airflow가 적합하지 않은 경우

  1. 실시간 데이터(스트리밍) 처리 워크플로 및 해당 파이프라인 처리가 어려움.
  2. 추가 및 삭제 태스크가 빈번한 동적 파이프라인에 적합하지 않을 수 있음.
profile
말하는 감자에서 개발자로 ( ´͈ ᵕ `͈ )◞♡

0개의 댓글