Udemy에서 Marc Lamberti의 'Apache Airflow: The Hands-On Guide'라는 강의를 들으며 데이터 파이프라인 구축에 대한 학습을 시작했다. airflow에 대한 소개는 생략하고 기초 개념들에 대해서만 서술하겠다.
해당 강좌에서는 marc의 깃허브를 통해 docker 파일을 다운로드 받고 가상환경을 구축하여 실습을 진행할 수 있다. 영상에서 알려주는 커맨드들은 linux, ubuntu 기준이어서 맥 유저로서 어려움이 있었다.
나는 도커 파일 설치 수순이 있는 줄 모르고 영상 도입부에서 헤매다가 결국 패키지 하나씩 수동설치했다. 기존에 아나콘다를 사용 중이었으므로, airflow 실습을 위한 가상환경을 추가하여 빌드하였다. dscl 커맨드를 쓰거나 home-brew를 설치하여 강사가 실습 중 언급한 의존성 패키지들을 (wget 등) 설치한 후, 며칠에 걸려 airflow admin 계정을 생성하였다.
그러나 docker 파일을 사용하면 이 모든 것들이 간단하게 해결된다. 개발 환경을 그대로 옮겨주는 것이 docker라고 이해하면 된다.
(ex. 파이썬 버전을 달리하여 설치)
airflow는 크게 dag와 operater라는 기능으로 구성되어 있다. dag의 약자는 Directed Acyclic Graph로, 데이터 파이프라인 그 자체를 의미한다.
from airflow import DAG
from datetime import datetime, timedelta
with DAG():
* 파라미터 (1) - dag id (dag의 유니크 id값)
* 파라미터 (2) - startdate (dag 시작일자)
* 파라미터 (3) - schedule_interval (dag trigger 간격)
* 파라미터 (4) - default_args (task 적용되는 파라미터)
* 파라미터 (5) - catchup=False (기존 dag 로그까지 포함하지않음)
예를들어, 스케줄러의 interval를 매일로 지정해 줄 경우, 매일 자정 dag가 실행된다.operator에 대한 내용은 이후 강의 수강 후 작성하려 한다.