Airflow 란?
파이썬으로 작성된 데이터 파이프라인(ETL) 프레임워크
Airbnb에서 시작한 아파치 오픈소스 프로젝트
가장 많이 사용되는 데이터 파이프라인 관리/작성 프레임워크
데이터 파이프라인 스케쥴링 지원
웹 UI 제공
데이터 파이프라인 작성을 쉽게 해줌(데이터 소스와 데이터 웨어하우스를 쉽게 통합해주는 모듈 제공-operator)
데이터 파이프라인 관리 관련 다양한 기능 제공 특히 Backfill
Airflow에서는 데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부름
- 하나의 DAG는 하나 이상의 태스크로 구성
Airflow 2.10.4이 2024년 12월에 릴리스(최신 버전)
https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html
Release Notes — Airflow Documentation
airflow.apache.org
Airflow 버전 선택 방법 - 구글 Cloud에서 제공하는 Airflow 서비스https://cloud.google.com/composer/docs/concepts/versioning/composer-versions
Cloud Composer version list | Google Cloud
This page lists the released versions of Cloud Composer images, their support dates, and Python packages installed in each released image.
cloud.google.com
Airflow 컴포넌트 구성
Airflow는 총 5개의 컴포넌트로 구성
1. 웹 서버(Web Server)
- 파이썬 flask로 구현
- 스케줄러와 DAG의 실행 상황을 시각화
- connection, valuables, 사용자 지정 등 기능 제공
2. 스케줄러(Scheduler)
- DAG들을 워커들에게 배정하는 역할을 수행
- DAG는 Task들의 집합
- 실행 순서, 의존 관계에 따라 트리거
3. 워커(Worker)
- 실제 DAG를 실행(태스크)
4. 메타 데이터 데이터베이스
- 스케줄러와 각 DAG의 실행결과를 별도 DB에 저장
- sqlite가 기본으로 설치(싱글스레드, 파일 기반), 보통 별도로 프로덕션 DB(MySQL이나 Postgres) 설치해서 사용
5. 큐 (다수서버 구성인 경우에만 사용됨)
- 이 경우 Executor가 달라짐
Airflow 동작 방식
Airflow 구조가 서버 한대로 이루어진 경우,
이때, Worker의 수는 서버가 가지고 있는 CPU의 수만큼 최대로 동작 가능
스케일링 할때는 Worker만 모아둔 별도의 서버 구성
Airflow 구조가 다수의 서버로 이루어진 경우,
어떤 Executor을 사용하느냐에 따라 Queue 사용 유무가 달라진다.
Airflow 스케일링 방법
- 스케일 업(더 좋은 사양의 서버 사용)
- 스케일 아웃(서버 추가) : 이 경우에는 클라우드 서비스 권장
🔜 이어지는 다음 글 보기 [ETL] Airflow DAG
[ETL] Airflow DAG란
DAG란?Airflow에서 ETL을 부르는 명칭으로 Directed Acyclic Graph 의 줄임말DAG는 태스크로 구성됨- 만약 3개의 태스크로 구성된다면 Extract, Transform, Load로 구성- Task 단위로 순서 지정 Task란?Airflow의 오퍼레
ourjune.tistory.com
'데브코스 데이터엔지니어링' 카테고리의 다른 글
[AWS] EC2 우분투 ubuntu 인스턴스 생성 (0) | 2024.12.27 |
---|---|
[Airflow] Airflow DAG란 (0) | 2024.12.27 |
[프로젝트] OpenSky REST API 호출하여 항공 데이터 수집 (0) | 2024.12.26 |
[웹크롤링] BeautifulSoup 웹스크래핑 attribute 속성 참조 (1) | 2024.12.26 |
[웹크롤링] BeautifulSoup로 페이지네이션(pagination) 구현 (1) | 2024.12.26 |