본문 바로가기
데엔(Data-Engineering)/에어플로우(Airflow)

에어플로우 기초

by KwonSoonBin 2023. 4. 12.

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 함수를 실행하는 작업을 담당합니다.

댓글