[Airflow] Apache Airflow?

ehwnghks·2022년 9월 25일
0

airflow강의

목록 보기
1/3

에어비앤비에서 개발한 워크플로우 스케줄링, 모니터링 플랫폼
실제 데이터의 처리가 이루어지는 곳은 아님

많은 회사에서 느끼는 공통적인 문제점

  • 워크플로우 관리문제
    이전에는 cron script 등으로 워크플로우를 관리
    이러한 기존 방식은 몇가지 문제가 있음
    • 실패복구 : 언제 어떻게 다시 프로세스를 다시 실행할것인가?
    • 모니터링 : 잘 돌아가고 있는지 힘들다.
    • 의존성 관리 : 데이터 파이프라인간 의존성이 있는 경우 상위 데이터 파이프라인이 잘 돌아가고있는지 파악이 힘들다.
    • 확장성 : 중앙화 해서 관리하는 툴이 없기 때문에 분산된 환경에서 파이프라인들을 관리하기 힘들다.
    • 배포 : 새로운 워크플로우를 배포하기 힘들다.

airflow를 쓰는 이유
데이터 파이프라인이 수십개가 있다면 관리하기가 굉장히 어렵고 어떤 부분에서 실패한지 알기가 힘들다.

airflow 는 워크플로우를 작성하고 스케줄링하고 모니터링 하는 작업을 프로그래밍 할 수 있게 해주는 플랫폼

  • 파이썬으로 쉬운 프로그래밍이 가능
  • 분산된 환경에서 확장성이 있음
  • 웹 대시보드(UI)
  • 커스터마이징이 가능

워크플로우?

의존성으로 연결된 작업(task)들의 집합

Airflow 컴포넌트 종류

  • 웹서버 : 웹 대시보드 UI
  • 스케줄러 : 워크플로우가 언제 실행되는지 관리
  • Metastore : 메타데이터 관리
  • Excecutor : 테스크가 어떻게 실행되는지 정의
  • Worker : 테스크를 실행하는 프로세스

DAG(Directed Acyclic Graph)

방향성이 있는 순환하지 않는 그래프
A -> B -> C : DAG O
A -> B -> C -> A : DAG X

Operator

작업(Task)를 정의하는데 사용
Action Operators - 실제 연산을 수행
Transfer Operators - 데이터를 옮김
Sensor Operators - 테스크를 언제 실행시킬 트리거를 기다림(예를 들어 어떤 디렉토리에 파일이 도달하면 작업을 시작하는 등)

작업(task)

Operator 를 실행시키면 Task가 된다.
Task = Operator Instance

airflow 유용성

여러 데이터 엔지니어링 환경에서 유용하게 쓰일 수 있다.

  • 데이터 웨어하우스
  • 머신러닝
  • 분석
  • 실험, A/B 테스트
  • 데이터 인프라 관리
profile
반갑습니다.

0개의 댓글