1.워크플로우 :
여러 개의 DAG들을 묶어서 큰 규모의 비즈니스 프로세스를 관리하는 개념
- 일련의 작업들을 통해 비즈니스 프로세스를 수행하는 전체적인 흐름을 의미한다.
- workflow는 여러 개의 DAG들로 구성될 수 있고, DAG 간의 종속성을 관리하여 전체적인 작업 흐름을 제어하고 모니터링할 수 있다.
- workflow는 에어플로우에서 여러 개의 DAG들을 논리적으로 묶어서 관리하고, 큰 규모의 비즈니스 프로세스를 효율적으로 실행하고 관리하는 데 사용된다.
2. DAG
(Directed Acyclic Graph - 방향이 있는 순환되지 않는 그래프) :
작업 흐름을 정의하고 관리하는 개별적인 그래프 모델
- 에어플로우에서 작업 흐름을 정의하는 그래프 형태의 모델로, 작업(task)들이 노드(node)로 표현되고 간선(edge)으로 연결되어 데이터의 흐름과 처리 순서를 나타낸다.
- 작업 간의 종속성을 나타내고, 작업들의 실행 순서와 실행 조건을 정의하여 작업들이 자동으로 실행되는 흐름을 제어하는 역할을 한다.
- 에어플로우에서 작업 스케줄링, 모니터링, 로깅 등을 관리하는 핵심 개념!
3. 스케줄러(Scheduler) : 워크플로우 시간 관리 담당 비서
- 에어플로우에서 DAG의 작업들을 실행하기 위해 설정된 일정에 따라 작업들을 스케줄링하고 관리하는 컴포넌트.
- 스케줄러는 설정된 DAG의 스케줄에 따라 작업들을 자동으로 실행하며, 작업들 간의 종속성을 고려하여 올바른 실행 순서를 보장한다.
4. Metastore : 실행된 작업들의 메타 데이터를 저장하고 관리하기 위한 메타 데이터 저장소.
- 이 저장소는 작업들의 실행 상태, 작업 간의 종속성, 작업 실행 결과 등을 저장하여 에어플로우 웹 서버나 스케줄러 등에서 사용한다.
- 에어플로우는 다양한 메타 데이터 저장소를 지원한다(SQLite, MySQL, PostgreSQL, Apache Cassandra, Amazon S3 등)
- 이 메타 데이터 저장소를 통해 사용자는 작업들의 실행 상태를 모니터링하고, 작업 간의 의존성을 확인하며, 작업 실행 결과를 추적할 수 있다.
5. Executor (실행자) : 작업을 배치하는 작업 반장
- 에어플로우에서 작업들을 실행하는 방식을 정의한 컴포넌트. Executor는 DAG에 정의된 작업들을 어떻게 실행할지를 결정합니다.
6. Worker (작업자) : 작업을 수행하는 일꾼
- 에어플로우에서 Executor에 의해 실행된 작업들을 실행하고 모니터링하는 컴포넌트.
- Worker는 Executor에 의해 할당된 작업을 실행하고, 작업의 실행 결과를 메타 데이터 저장소에 업데이트하여 작업의 실행 상태를 갱신합니다.
- Worker는 Executor에 의해 실행될 수 있는 다양한 작업들을 처리하기 위해 필요한 환경을 구성하고, 작업을 실행하며, 작업의 실행 상태를 업데이트하는 역할을 수행한다.
7. Operator(연산자) : DAG 내의 작업과 작업의 실행을 관리
- 작업을 실제로 실행하는 로직을 담고 있는 클래스 또는 함수.
- 예를 들어, BashOperator는 Bash 스크립트를 실행하는 작업을 담당하고, PythonOperator는 Python 함수를 실행하는 작업을 담당합니다.
'데엔(Data-Engineering) > 에어플로우(Airflow)' 카테고리의 다른 글
Airflow 윈도우 설치 (+ 가상환경) (0) | 2023.04.12 |
---|
댓글