BigData/Airflow

[Airflow] Apache Airflow 란?

twoDeveloper 2022. 9. 5. 13:25

개요

- Apache Airflow에 대한 개념 설명 및 어떠한 분야에서 사용되어야 적합한지에 대한 이론 설명


■ Apache Airflow 란?

- Data Pipeline을 처리하기 위해 배치 태스크에 중심을 둔 Framework 이다.

- 유연한 Python Framework를 사용해 쉽게 Data Pipeline을 구축할 수 있게 해 준다.

- Data Process 과정에서 중요한 역할 을 수행하며 분산 시스템에서 발생하는 작업을 조율한다.

- 직접적으로 Data 처리 작업을 수행하지는 않지만, Data 처리를 위한 다양한 구성 요소들을 조정한다.

 


1. Data Pipeline

- 데이터 파이프라인은 여러 Task 또는 동작을 구성하여 원하는 결과를 얻는다.

- 각 Task는 정해진 순서대로 진행되어야 한다.

- 데이터 변환 전에 새로운 데이터를 대시보드로 전송하면 안된다.

* 데이터 프로세스 실행 시, 정해진 암묵적 태스크 순서를 적용해야 하는지 확인해야 한다.

 

1.1 Data Pipeline Graph

- Task 간의 의존성을 명확하게 확인하는 방법 중 하나는, 그래프로 표현하는 것이다.

- Task 는 노드로 표시되고, Task 간의 의존성은 Task 노드 간의 방향으로 표시된다.

- 방향성 그래프에는 크게 2 가지로 나뉘어 진다.

  1) 방향성 비순환 그래프 (DAG)

  2) 방향성 순환 그래프

* 순환 그래프에서는 TASK 2와 TASK 3이 서로 의존적이여서 TASK 2 는 절대 실행되지 않습니다. 따라서 순환 그래프는 의존성으로 인해 TASK 가 실행되지 않습니다. 

하지만, 방향성 비순환 그래프 (DAG) 는 명확한 방향성이 존재하므로 Data Process 대로 Task를 실행할 수 있습니다.

 

1.2 Data Pipeliine Graph 실행

[순서도]

1) 그래프 안에 태스크는 개방된 상태이며(= 미완료) 다음과 같은 단계를 수행

  - 각각의 화살표 끝점은 태스크를 향하며 다음 태스크로 향하기 전에 이전 태스크가 완료되었는지 확인 (1단계)

  - 태스크가 완료되면 다음에 실행해야 할 태스크를 대기열에 추가

 

2) 실행 대기열에 있는 태스크를 실행하고 태스크 수행이 완료되면 완료 표시

 

3) 그래프의 모든 태스크가 완료될 때까지 1단계로 돌아간다.

 

 

2. Airflow

2.1 Python 코드로 유연한 파이프라인 정의

- Airflow를 사용하여 파이프라인이나 워크플로 태스크를 방향성 비순환 그래프 (DAG)로 정의 할 수 있다.

- 그래프에서 태스크는 노드로 정의하고 의존성은 태스크 노드 사이에 화살표로 표현한다.

 

'BigData > Airflow' 카테고리의 다른 글

[Airflow] Airflow 보안  (0) 2022.10.27
[Airflow] Task 의존성 정의 방법  (0) 2022.09.14
[Airflow] Airflow UI  (0) 2022.09.08
[Airflow] Airflow Install  (0) 2022.09.07