반응형
velog 마이그레이션
원글 : [Airflow] 1. Apache Airflow란?(2022년 9월 11일)
✏️ Airflow란?
Airlfow는 Workflow 관리 도구이다.
(Airflow는 데이터 스트리밍 솔루션도 아니고, data processing framework도 아니다.)
Airbnb에서 개발했고, 2016년에 Apache 프로젝트가 되었다.
🤷 그럼 Workflow는 뭔데?
Workflow란 말 그래도 작업 흐름이다. 데이터 ETL을 예시로 들어보면,
Extract, Transform, Load 작업이 순서대로 실행된다. 이렇게 순서가 있는 작업 과정을 workflow라고 한다.
Airflow로 workflow를 Python 코드로 작성하고, UI로 스케줄링, 모니터링 할 수있다.
📌 Airflow Architecture
Airflow의 아키텍쳐는 위에 그림처럼 Meta Database, Worker, Scheduler, Executor, Webserver 로 구성되어있다.
컴포넌트
- DAG Directory : python 코드로 작성된 DAG 들을 보관하는 장소이다.
- Scheduler : DAG와 Task를 모니터링하고 스케줄링한다. Executor에게 Task 실행을 요청한다.
- Executor : Task가 어떻게 실행될지를 정의한다. 'queued' 상태인 Task를 확인해 실제 어떤 리소스가 투입되어 실행 될 것인지를 결정한다.
- Worker : 실제 Task를 처리하는 컴포넌트이다. Executor 종류에 따라 동작 방식이 다양하다.
- Webserver : 실행 로그, DAG 목록, Task 상태 등을 시각화해서 사용자가 스케줄 관리, 디버깅을 할 수 있도록 사용자 인터페이스를 제공한다.
- Metadata Database : Scheduler, Executor, Webserver 에서 사용하는 메타데이터가 저장된다.
DAG란?
DAG(Directed Acyclic Graph. 방향 비순환 그래프)는 알고리즘 공부를 할 때 공부했던 그 DAG인데, 순환하는 싸이클이 존재하지 않는 그래프를 말한다.
DAG에는 Task간의 종속성과 Task을 실행하고 재시도를 실행하는 순서를 지정한다. Task 자체는 데이터 가져오기, 분석 실행, 다른 시스템 트리거 등 수행할 작업을 정의한다.
728x90
반응형
'Data > Data Engineering' 카테고리의 다른 글
[Airflow] 3. Airflow 설치하기 (docker) (0) | 2024.03.05 |
---|---|
[Airflow] 2. Airflow 구성 자세히 살펴보기 (0) | 2024.03.05 |
[Airflow] 데몬으로 실행 설정 오류 : The unit airflow-webserver.service has entered the 'failed' state with result 'resources' (0) | 2023.04.23 |
[Airflow] Airflow를 데몬(서비스)로 실행 설정 (Ubuntu) (0) | 2023.04.23 |
[Snowflake] Data Applications 뱃지 획득 (0) | 2023.04.13 |