[Apache Airflow] Chapter 1

Smiling Sammy·2022년 12월 6일
0

바스 하렌슬락, 율리안 더라위터르, 『Data Pipelines with Apache Airflow』, 김정민, 문선홍, 제이펍-MANNING(2022), p4-20.


DAG (Directed Acyclic Graph)

  • 방향성 비순환 그래프
  • 반복이나 순환을 허용 안함(acyclic)
    • 이전 작업이 완료되어야 다음 작업 진행 가능
    • 순환 그래프는 의존성으로 인해 논리적 오류 발생
      -> deadlock

Graph pipeline

  • 태스크와 태스크에 대한 의존성을 직관적으로 설명
  • 그래프에 실행 알고리즘을 적용하면, 태스크를 병렬로 실행 가능
  • 파이프라인을 작은 점진적인 태스크로 분리 가능
    • 중간 태스크 실패 시, 실패한 태스크(or 그 이후까지)만 재실행

Airflow의 주요 기능

  • 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축
  • 서로 다른 기술들을 연결할 수 있는 다양한 빌딩 블록을 제공
  • 데이터 처리를 위한 다양한 구성 요소들을 조정
    • 직접적으로 데이터 처리 작업을 수행 안함
  • DAG의 실행 주기를 정의할 수 있음
    • 스케줄러(DAG 태스크 예약)
    • 워커(태스크 선택 및 실행)
    • 웹 서버(DAG 시각화, 결과 확인 인터페이스)

Airflow 장단점

장점

  • 오픈 소스
  • 파이썬으로 구현 가능
  • 쉽게 확장 가능, 다양한 시스템과 통합 가능
  • 점진적 태스크 분리로 전체 파이프라인을 재실행할 필요 없음
  • 웹 인터페이스로 모니터링 및 디버깅 가능

단점

  • 스트리밍(실시간 데이터 처리)에는 적합하지 않음
  • 추가, 삭제 태스크가 빈번한 동적 파이프라인에는 비적합
    • 웹 인터페이스에서 DAG의 가장 최근 실행 버전에 대한 정의만 표현
  • 파이썬으로 DAG 작성 시, 파이프라인 규모가 커지만 복잡해짐
profile
Data Scientist, Data Analyst

0개의 댓글