Myo-Kyeong Tech Blog

[Airflow] Apache Airflow란? - Airflow 기본 개념 정리, DAG, 장단점 본문

Data Engineering/Airflow

[Airflow] Apache Airflow란? - Airflow 기본 개념 정리, DAG, 장단점

myo-kyeong 2023. 12. 16. 23:00
728x90
반응형

Apache Airflow란?

  • 데이터 엔지니어링 분야에 널리 사용되는 오픈 소스 워크플로우 관리 플랫폼
  • 반복되는 작업들을 일정한 순서를 가지고 원하는 시간에 지속적으로 수행할 수 있음
  • 데이터 워크플로우를 자동화하고 관리하는 데 매우 유용
  • 배치 지향 데이터 파이프라인 구현하는 데 적합
  • Python 기반으로 한 유연한 프레임워크 제공

 

데이터 파이프라인

  • 원하는 결과를 얻기 위해 실행되는 여러 태스크 또는 동작으로 구성됨
  • 각 태스크는 정해진 순서대로 진행되어야 함

예를 들어, 데이터 수집, 변환, 저장과 같이 각각 다른 작업(Task)이 구성되어 있다면 각 작업은 특정 순서에 따라 실행되어야 하며 데이터를 가져오기 전에 데이터를 저장하거나 변환해서는 안됩니다. 데이터를 가져온 후 데이터를 변환하고 변환한 데이터를 저장해야 합니다. 

 

DAG ( Directed Acyclic Graph,  방향성 비순환 그래프 )

 

  • 데이터 파이프라인을 그래프로 그리면 태스크 간의 의존성을 명확하게 확인할 수 있음
  • 태스크노드로 표시, 태스트 간의 의존성은 태스트 노드 간의 사이에 화살표로 표시
  • 반복이나 순환을 허용하지 않음 ( 비순환 구조 )
    • DAG는 태스크 간의 의존성 관리하는 데 중요
    • 예를 들어, 데이터 변환 작업은 데이터 수집 작업이 완료된 후에만 시작된 다는 것을 표현할 수 있음
    • 같은 작업이 무한 반복되는 것을 방지
    • 이는 워크플로우가 효율적으로 완료되도록 보장, 자원 낭비를 줄여줌

 

Airflow 장점

  • 배치 지향 데이터 파이프라인을 구현하는 데 적합
  • Python을 사용하여 워크플로우를 정의할 수 있어 복잡한 커스텀 파이프라인을 만들 수 있음
  • 다양한 환경 (클라우드, 데이터베이스) 에서 확장 가능하며, 다양한 데이터 소스와 도구들 연동 가능
  • 오픈소스로 특정 벤더에 종속되지 않음

 

Airflow 적합하지 않은 경우

  • Airflow는 반복적이거나 배치 태스크를 실행하는 기능에 초첨이 맞추어져 있기 때문에 실시간 데이터 처리에는 적합하지 않음
    • Airflow는 작업을 즉시 실행하기보다는 예약된 작업을 주기적으로 실행되도록 설계되어 있음
    • 데이터가 지속적으로 들어오고, 즉각적인 처리가 필요한 실시간 시스템과는 맞지 않음
  • 추가 및 삭제 태스크가 빈번한 동적 파이프라인의 경우에는 적합하지 않음

 


REFERENCE

728x90
반응형