Apache Airflow

Mika·2021년 12월 13일
0

이것저것..ㅎ

목록 보기
1/1
post-thumbnail

1. Airflow 란?

Airflow는 Python 코드로 워크플로우(workflow)를 작성하고, 스케쥴링, 모니터링 하는 플랫폼이다. Airflow를 통해서 데이터엔지니어링의 ETL 작업을 자동화하고, DAG(Directed Acyclic Graph) 형태의 워크플로우 작성이 가능하다. 이를 통해 더 정교한 dependency를 가진 파이프라인을 설정할 수 있다. 또한 AWS, GCP 모두 Airflow managed service를 제공할 정도로 전세계 데이터팀들에게 널리 사용되고 있으며 그만큼 넓은 커뮤니티를 형성하고 있다. (현재.. 우리회사는 SSIS package를 사용한다..)

2. Airflow 동작 원리

Airflow는 여러가지 구성요소를 가지고 있다.
Scheduler : 모든 DAG와 Task에 대하여 모니터링 및 관리하고, 실행해야할 Task를 스케줄링 해준다.
Web server : Airflow의 웹 UI 서버이다.
DAG : Directed Acyclic Graph로 개발자가 Python으로 작성한 워크플로우 입니다. Task들의 dependency를 정의한다.
Database : Airflow에 존재하는 DAG와 Task들의 메타데이터를 저장하는 데이터베이스이다.
Worker : 실제 Task를 실행하는 주체입니다. Executor 종류에 따라 동작 방식이 다양하다.
Airflow는 개발자가 작성한 Python DAG를 읽고, 거기에 맞춰 Scheduler가 Task를 스케줄링하면, Worker가 Task를 가져가 실행한다. Task의 실행상태는 Database에 저장되고, 사용자는 UI를 통해서 각 Task의 실행 상태, 성공 여부 등을 확인할 수 있다.

0개의 댓글