git clone https://github.com/learndataeng/learn-airflow.git
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.5.1/docker-compose.yaml'
docker-compose.yaml 수정.
- _PIP_ADDITIONAL_REQUIREMENTS 수정. (:- 뒤에 dag 실행에 필요한 모듈 설치 명령어 추가)
- data 폴더를 호스트 폴더에서 만들고 volume으로 지정. (AIRFLOWVAR변수명 : 폴더 경로)
- yml 파일에서 AIRFLOAW_VAR or AIRFLOW_CONN 등으로 변수 및 커넥션과 같은 환경 설정 가능.
- airflow-common에서 image에 대한 환경 변수 설정 가능. (만약 커스텀으로 이미지를 사용할 시 직접 설정해야 함.)
- airflow image로 dag 코드를 복사하여 만드는 것이 좀더 깔끔함. 만약, docker compoase에서 host volume 형태로 설정하면 개발/테스트용으로 적합함.
-docker compose -f docker-compose.test.yaml up -d
명령어로 detached 모드로 실행.
docker exec -it learn-airflow-airflow-scheduler-1 airflow variables get DATA_DIR
로 DATA_DIR 환경 변수 확인.gitignore와 유사함.
- airflow가 무시할 DAG_FOLDER의 디렉토리 혹은 파일 지정.
- 아직 완성이 안 된 DAG 실행을 방지함.
- 정규식 패턴으로 지정.
CTAS 부분을 별도의 환경 설정 파일로 분리하면, 비개발자들이 사용할 때 편리하다는 장점이 있음.
ex) mau_summary.py{ 'table': 'mau_summary', 'schema': '', 'main_sql': '', 'input_check': [{'sql': '', 'count': ''}], 'output_check': [{'sql': '', 'count': ''}], }
가장 좋은 방법은 dbt 방법을 이용하는 것.
DAG 실행 중 에러가 발생하면 슬랙 워크스페이스에 알리기.
- on_failure_callback을 통해 태스크에 대한 콜백 함수 지정 가능.