Airflow
튜토리얼
에어플로우는 dask와 유사한 프로젝트로, 분산 환경에서의 python 자동 실행 스케줄러이다. 그런데 dask에서 더 나아가서 자동으로 지정된 시간과 조건에 따라 스크립트를 순차적으로 실행시켜주는 젠킨스(?) 와 같은기능도 한다.
Airflow에 새로운 패키지 설치하기
worker, scheduler, webserver 세군데에 모두 동일한 python 패키지를 설치해주어야만 에러가 나지 않는다. 실제 실행되는 환경은 worker이지만, scheduler와 webserver도 실행할 수 있어야 에러가 나지 않는다.(이는 dask와 동일한 부분)
그래서 requirements.txt를 생성해서 각각의 컨테이너에 전달하여 간단한 패키지는 쉽게 설치할 수 있다.
그러나 복잡한 설치를 요하는 경우, 이러한 방법으로는 할 수가 없다.
그래서 이런 경우 위 세개의 컨테이너에서 /entrypoint.sh 를 수정한 다음 컨테이너를 재시작 하는 방법을 써야한다.
DAG 스케줄 인터벌 설정하기
기본 튜토리얼에서는 DAG의 실행주기를 결정하는 schedule_interval 값에 timedelta(days=1) 와 같은 방식으로 입력하도록 나온다. 그런데 좀 더 디테일한 설정을 하고 싶으면 crontab schedule을 사용할 수 있다.
쉽게 말하면 아래와 같다.
즉, schedule_interval='0 10 * * *' 이렇게 입력하면 매일 아침 10시에 실행이 되는 것이다.
Task 간의 dependency 설정하기
task_download_nubes >> task_update_mongo >> task_save_excel
이렇게 >> 오퍼레이션을 이용해서 task간의 dependency를 정의할 수 있다.
'Development > Python' 카테고리의 다른 글
Python 코드 안에서 git과 pip 사용하기 (0) | 2020.02.19 |
---|---|
Advanced Python Scheduler (0) | 2020.02.18 |
Black: Uncompromising Python Coding Convetion (0) | 2020.02.04 |
Python 파일을 exe파일로 컴파일하기 (0) | 2020.02.04 |
Python Concurrency Programming (4) | 2020.01.09 |
댓글