728x90
반응형
안녕하세요 늑대양입니다.
예전부터 공부하고 싶었던 Apache Airflow를 주제로 정리하는 블로깅을 시작합니다 🥸
첫 번째 글로 Apache Airflow의 개요에 대해 알아보도록 하겠습니다.
- 워크플로우를 작성하고 스케줄링하고 모니터링하는 작업을 프로그래밍 할 수 있게 해주는 플랫폼
- AirBnB에서 개발한 워크플로우 스케줄링, 모니터링 플랫폼!
- 2016 아파치 재단 incubator program
- 현재 아파치 탑레벨 프로젝트 중 하나
- AirBNB, Paypal, Intel, Stripe 등의 회사에서 사용
- 실제 데이터의 처리가 이루어지는 곳은 아님!!
- 워크플로우 관리를 위한 도구 중 하나!!
워크플로우가 하나만 있다면 CRON 스크립트(기존 방식)를 통해서 관리가 가능!
c.f. 워크플로우란?!
- 의존성으로 연결된 task 들의 집합
- 의존성으로 연결된 상태 > DAG(Directed Acycle Graph)
기존 방식의 문제점
- 실패 복구: 실패할 경우 언제, 어떻게 다시 실행?! Backfill(다시 메우기) 과정은?!
- 모니터링
- 의존성 관리: 파이프라인 간 의존성이 있는 경우 (모니터링 관련)
- 확장성: 분산된 환경에서 관리가 어려움
- 배포: 워크플로우 배포에 손이 탐..
Apache Airflow를 사용해야하는 이유!!
- 데이터 파이프라인의 수가 엄청나게 늘어난다면 관리가 어려움
- 사용하지 않을 경우, PoF(Point of Failure)를 찾기 어려움
- 파이썬으로 (
쉬운) 프로그래밍 가능 - 분산된 환경에서의 확장성
- 웹 대시보드 (GUI)
- 커스터마이징
Apache Airflow 구성 요소
- 웹 서버: 웹 대시보드 UI
- 스케줄러: 워크플로우가 언제 실행되는지 관리
- Metastore: 메타데이터 관리
- Executor: 테스크가 어떻게 실행되는지 정의
- Worker: 테스크를 실행하는 프로세스
DAG (Directed Acyclic Graph)
- 방향성이 있는 순환하지 않는 그래프!!
- 의존성 관리
- Download: 외부 API
- Process: Spark Job
- Store: Database
Operator
- Task(Operator instance)를 정의하는데 사용
- Action operators: 실제 연산을 수행
- Transfer operators: 데이터를 옮김
- Sensor operators: 테스크를 언제 실행시킬지, 트리거를 기다림
Apache Airflow 활용분야
- 데이터 웨어하우스
- 머신러닝
- 분석
- 실험
- 데이터 인프라 관리
긴 글 읽어주셔서 감사합니다 😍
728x90
반응형
'IT' 카테고리의 다른 글
RAID (0) | 2024.03.18 |
---|---|
[Linux] Linux 관련 기본 스터디 내용 정리 - 1 (0) | 2023.04.12 |
2020년 최고의 프로그래밍 언어 10가지 (0) | 2020.01.12 |
IT 카테고리 (0) | 2019.08.05 |