다시 이음

The Complete Hands-On Introduction to Apache Airflow 본문

채우기/Airflow

The Complete Hands-On Introduction to Apache Airflow

Taeho(Damon) 2023. 3. 10. 15:45

Udemy에서 The Complete Hands-On Introduction to Apache Airflow 강의를 듣고 정리한 게시글입니다.

 


1. Airflow가 필요한 이유?

 

ELT 파이프라인을 자동화 하기 위해서

 

 

 

2. 필요한 것?

 

파이썬 + Docker

 

 

 

3. Airflow 장점

 

- dynamic

- scalability

- UI

- Extensibility

 

 

 

4. Core components

 

- web server

- scheduler

- metastore

- triggerer

- executor

- queue

- worker

 

 

 

5. Core concepts

 

- DAGs 그래프 : No cycle

- Operator : Action Operators(어떤것을 실행,python,bash operator), Transfer Operators(data를 point a에서 b로 transfer해줌), Sensor Operators(다음 단계로 가기 전에 어떤것의 발생을 대기할 수 있게해줌)

 

즉, 두가지를 혼합하여 Operator가 어떠한 task를 실행(task instance 생성)하면 이렇게 생긴 여러개의 operator를 DAG 그래프로 연결해주는 것이 주요 concept.

 

 

 

6. Airflow는 data streaming solution, data processing framework 가 아니다.

 

Airflow는 operator를 사용하여 실행 트리거를 작동하는 방법이지 Spark 처럼 직접 데이터를 프로세싱하는 툴이 아니다. 

 

 

 

7. Architectures

 

- One Node Architecture : 하나의 Node 안에 Web server, Metastore, scheduler, executor - queue(part of the executor)로 구성되어있다.

 

- Multi Nodes Architectures(Celery) : 하나의 Node에 Web server, scheduler, executor로 구성되어있고, 다른 Node에는Metastore, Queue(External to the executor)로 구성되어있다.

 

각 노드마다 Worker Node(airflow worker로 구성된)가 필요하며 더 많은 task를 실행할 필요가 있을 경우에는 Worker Node를 새로운 machine에 더해주면 됩니다.

 

또한 웹에서 로드 밸런서(Load Balancer)를 사용할 경우에는 2개의 web server, scheduler가 필요합니다.

 

 

 

8. Execution flow(how tasks are executed)

 

구성요소 : 1 Node(Web server, Metastore, Executor, Scheduler, Folder Dags)

  1.  dag.py(새로운 DAG를 생성)을 Folder Dags에 생성
  2. 5분마다 Scheduler가 Folder Dags에 새로운 DAGs가 있는지 확인함(parse)
  3. Scheduler가 Metastore에 DAG를 실행할 DAGRun Object를 생성하여 Schedules Task Instance Object이 된다.
  4. Scheduler가 TaskInstance를 Executor에게도 전송.
  5. Executor가 TaskInstance로 전달받은 실행을 작동하고 Metastore에 TaskInstance로 업데이트
  6. Scheduler가 제대로 실행됐는지 Metastore에 TaskInstance를 확인.
  7. Airflow UI에 업데이트됨

9. 실습

 

1. 왼쪽에 위치한 토글 : 실행과 실행중지를 정할 수 있음.

2. DAG 이름 및 Tag : 팀별로 혹은 기능별로 구분화 할 수 있기에 유용함. 그러나 태그를 통해 permission 정의는 불가함.

3. Owner : 말그대로 data pipeline에 owner를 명시.

4. Runs : 어떤 상태로 진행되고 있는지 확인 가능.

5. Schedule : 얼마만큼의 스케줄방식으로 data pipeline이 실행되는지 확인가능.

6. Recent Tasks : 좀더 상세하게 최근 실행한 상황을 확인가능.

7. Action : DAG를 바로 실행하거나 삭제하고 싶을때 사용.

 

 

'채우기 > Airflow' 카테고리의 다른 글

(trouble shooting)docker에서 airflow실행 오류?!  (0) 2023.03.15