Data Science Fellowship

[Airflow] 처음 뵙겠습니다. Airflow!

graph-dev 2024. 5. 12. 21:12
728x90

 

 

에어플로우 로고

 

 

이 바람개비는 도움이 많이 된다고 소문이 났습니다. 바로, 에어플로우입니다.

 

 

 

반가워요 에어플로우!

 

 

에어플로우, 뭔가 바람개비같은 로고가 마음에 드는 친구입니다.

 

이 도구는 어디에 쓰는 것일까요?

 

검색을 해보았습니다. Chat GPT를 사용해보았습니다.

 

에어플로우(Airflow)는 복잡한 워크플로우 관리를 위해 만들어진 오픈 소스 플랫폼입니다. Apache Software Foundation이 관리하는 이 툴은 데이터 엔지니어링 및 데이터 사이언스 작업에서 특히 유용하게 사용됩니다. 에어플로우의 주요 목적은 예약된 작업의 실행, 종속성 관리, 모니터링을 자동화하여 워크플로우의 정의, 스케줄링 및 모니터링을 단순화하는 것입니다.

 

 

다음은 주요 특징입니다. 아래와 같이 DAGs, 스케줄러, 실행기(Executors), 웹 UI라는 특징이 있다고 합니다.

주요 특징은 다음과 같습니다.

1. DAGs (Directed Acyclic Graphs): 에어플로우에서 워크플로우는 DAGs로 표현됩니다. DAG는 작업들의 흐름과 이들 간의 종속성을 정의한 그래프 구조로, 각 노드는 작업(task)을 나타내고, 에지는 한 작업이 다른 작업 전에 수행되어야 함을 나타냅니다. 이 구조는 워크플로우에서 순환하는 종속성이 없다는 것을 보장합니다.
2. 스케줄러: 에어플로우 스케줄러는 DAGs를 주기적으로 폴링하고, 실행해야 할 새로운 작업 인스턴스를 확인합니다. 스케줄러는 작업의 종속성을 고려하여 적절한 순서로 작업을 실행합니다.
3. 실행기(Executors): 에어플로우는 다양한 실행 환경을 지원합니다. 예를 들어, 단일 머신에서 작업을 순차적으로 실행할 수 있는 Local Executor, 여러 작업을 동시에 실행할 수 있는 Celery Executor, 또는 Kubernetes Executor 등을 사용할 수 있습니다.
4. 웹 UI: 에어플로우는 사용자 친화적인 웹 인터페이스를 제공하여 DAGs의 스케줄, 실행 상태, 로그 등을 쉽게 볼 수 있습니다. 이 UI를 통해 사용자는 작업의 성공 및 실패를 모니터링하고, 로그에 액세스하며, 워크플로우 실행을 조정할 수 있습니다.

에어플로우는 데이터 파이프라인을 자동화하고 모니터링하는 데 매우 효과적이며, 여러 데이터 소스와의 통합, 다양한 실행 환경에서의 작업 관리 등을 가능하게 합니다. 그 결과 많은 기업에서 데이터 관련 프로세스를 관리하기 위해 에어플로우를 사용하고 있습니다.

이렇게만 보면, 무언가 파이프라인 구축에 완전 특화된 도구라는 것을 알 수 있습니다. 데이터 파이프라인, 이걸 제가 하고 싶어서 가져왔습니다.

 

이걸 활용한 간단한 프로젝트를 수행해볼 것입니다.

 

이 에어플로우가 확장성이 좋다고 하는데, 다양한 퍼블릭 클라우드와 연계해서 데이터 파이프라인을 한번 만들어보겠습니다.

 

내가 아는 파이프라인과 조금 다를 수도 있겠으나, 시도는 해봐야하지 않겠습니까?

 

 

그리고 이 아래 차트를 많이들 가져오시는 것 같네요.

에어플로우 좋다 그래프

 

(출처: https://towardsdatascience.com/airflow-vs-luigi-vs-argo-vs-mlflow-vs-kubeflow-b3785dd1ed0c)

 

에어플로우가 점차 좋은 도구로 소문이 나고 있고, 현재는 최고로 치는 것 같습니다.

 

안해볼 이유가 없네요. 당장 내일부터 시작해보겠습니다.