[airflow/docker-compose] Airflow 기본

김진만·2023년 7월 6일
0

Docker-compose로 환경 구축하면 서버 금방 띄울 수 있음!

DAG개발 외에 관심사를 줄이기 위해 개발 환경을 Docker-compose로 구축
공식홈페이지의 yml 파일 참조

Airflow 서버를 띄우는 시간 단축 : 5분 -> 1분

개발 피드백 루프 시간 단축 : 1분(Commit -> Sync) -> 5초

개발 클러스터에서 유휴 Airflow들이 Node를 점유하였던 문제 해결 : 2개 이상의 VM 절약

Docker라는 표준 환경을 통해 Airflow 서버의 불안정성을 낮추고 관리 비용을 줄임

웹서버 / 스케쥴러 / DB

웹서버(Web Server):

Airflow 웹서버는 사용자 인터페이스(UI)를 제공하고 데이터 파이프라인의 모니터링, 스케줄링, 실행 등의 작업을 관리합니다. 웹서버는 사용자가 DAG(Directed Acyclic Graph)를 정의하고 관리할 수 있도록 도와줍니다. 웹 인터페이스를 통해 작업의 실행 상태, 로그, 스케줄러 등을 확인하고 관리할 수 있습니다.

스케줄러(Scheduler):

Airflow 스케줄러는 정의된 DAG를 기반으로 작업 실행을 스케줄링합니다. 스케줄러는 설정된 실행 주기 또는 종속성을 기준으로 DAG의 작업들을 적절한 시간에 실행합니다. 스케줄러는 작업 상태를 추적하고 작업 간의 의존성을 관리하여 데이터 파이프라인의 실행을 조정합니다.

Executor:

Executor는 Airflow에서 실행 중인 작업들을 처리하는 방식을 정의합니다. Airflow는 LocalExecutor, CeleryExecutor, KubernetesExecutor 등 다양한 Executor를 지원합니다. 각 Executor는 작업을 병렬로 실행하고 관리하는 방식이 다르며, 작업 처리량과 성능에 영향을 줄 수 있습니다.

메타데이터 데이터베이스(Metadata Database):

Airflow는 작업, DAG, 실행 상태 등의 메타데이터를 저장하기 위한 데이터베이스가 필요합니다. 메타데이터 데이터베이스는 작업 스케줄링, 실행 상태 추적, 작업 히스토리 등을 관리하는 데 사용됩니다. 일반적으로 SQLite, PostgreSQL, MySQL 등의 데이터베이스가 사용됩니다.

profile
충분한 전기와 컴퓨터 한 대와 내 이 몸만 남아 있다면 지구를 재건할 수 있습니다.

0개의 댓글