목록에어플로우(Airflow) (3)
imhamburger 님의 블로그
지난글에서는 "ml-worker" 모듈을 자동적으로 실행해줄 cron 세팅하였는데, 이번에는 cron이 아닌 Airflow를 이용해 스케줄러 작업을 해보고자 한다.그리고 하는김에 CeleryExecutor를 곁들인......(사실 이것이 메인) 에어플로우에는 3개의 Executor가 있다.종류특징SequentialExecutor모든 태스크를 한 번에 하나씩 순차적으로 실행LocalExecutor여러 개의 태스크를 병렬로 실행할 수 있지만, 같은 호스트 내에서만 가능CeleryExecutor여러 대의 컴퓨터에서 병렬로 태스크를 실행할 수 있으므로 가장 큰 확장성을 제공 Celery가 뭔데? Celery를 쉽게 설명하자면, Celery는 컴퓨터에게 어떤 "일"(작업)을 나중에 따로 처리하도록 시킬 수 있게..
에어플로우에는 다양한 오퍼레이터를 제공한다. 이번엔 지난글에서 다룬 BashOperator말고 PythonOperator를 다뤄보자. 1. PythonOperatorfrom airflow.operators.python import PythonOperatordef print_context(ds=None, **kwargs): print("::group::All kwargs") task = PythonOperator( task_id="print_the_context", python_callable=print_context )PythonOperator는 Dags에 Python 함수(내가 만든 기능)를 입력하고 task 에서 py..
아파치 에어플로우(Apache Airflow)는 간단하게 말하자면 데이터 파이프라인을 관리하는 플랫폼이다. 그래서 데이터 파이프라인이 뭔데?파이프라인을 한국어로 번역하면 배관이다. 배관은 한쪽 방향으로 흘러가는 구조이다. 데이터 파이프라인도 데이터가 차.례.대.로 전달해 나가는 구조이다. 구조 안을 살펴보면, 데이터가 어딘가로부터 들어오면 그것을 필요한 데이터만 추출하여 변환하고, 가공하고, 저장해 전달하는 과정이다.에어플로우는 이러한 데이터 파이프라인을 관리해주는 것이다. 아니 근데 굳이 쓸 필요가 있을까? 내가 관리하면되지~라고 생각했다면... 불가능한 것은 아니다. 예전 그리고 지금까지도 그렇게 하는 분들도 많이 계시다. 이런 상황이 있다.예를들어, 물이 흐르는 배관이 10개가 이어져있는 모습을 ..