본문 바로가기

DEV/Airflow3

기타 필수 개념 start_date와 schedule_interval, execution_date Airflow에서 start_date는 실행 시작 날짜가 아니라 스케줄이 시작 되는 날짜. 위와 같은 경우, 1월 1일부터 하루에 한번씩 8시에 스케줄이 등록되고, 하루 뒤인 1월2일부터 execution_date가 1월 1일인 DAG가 실행된다는 것입니다. 이 execution_date는 나중에 해당 DAG를 다시 실행해도 그대로 1월 1일로 유지되는 이 DAG고유 실행 Id 같은 값입니다. cron 과 같은 scheduler처럼 생각하면 이 execution_date는 잘 이해가 가지 않습니다. 하지만 ETL관점에서 증분을 생각하면 이해하기 쉽습니다. 예를 들어, execution_date가 1월 1일인 task의 경우.. 2023. 4. 17.
DAG 예시 및 DAG 반영 참고 DAG 수정 사항 반영 방법 google composer 기준 가이드 참고한거라 실제 airflow랑 같을지 모르겠음. DAG 추가 / 업데이트 후 Airflow가 DAG를 로드하고 업데이트 하는 데 시간이 걸림. 클러스터일 경우 Airflow UI에 DAG가 업데이트 되었어도, 실제로 모든 worker에 DAG가 업데이트 되지 않았을 수도 있음. 충분한 대기 시간 필요. DAG의 start_date나, schedule이 바뀌는 등 큰 수정이 있을 때 스케쥴이 제대로 동작하지 않을 수 있음. 또한, 기존 task를 삭제하거나 이름을 수정할 경우 실행 이력이 날라감. ⇒ 따라서 Airflow에서는 DAG 에 큰 수정이 있을경우 버전관리를 하는 것을 추천함. (DAG_v1, DAG_v2…) 작업 예시 현재 .. 2023. 4. 17.
Airflow 소개 Airflow Airflow 란, 데이터 파이프라인을 구축하고 유지하는 작업을 쉽게 할 수 있도록 도와주는 python 기반의 오픈 소스 툴. DAG(Directed Acyclic Graphs)라고 불리는 워크플로우(workflow)를 작성하고, 워크플로우가 특정한 시간에 run 하도록 스케쥴링하고, 이러한 과정이 문제없이 잘 작동하는지 web UI를 통해 모니터링 할 수 있게 해준다. Airflow Basic Architecture Metadata Database dag 정보, 실행이력, 스케줄링 이력, 유저 정보 등 실행하는 workflow에 필요한 메타데이터를 저장한다. Airflow Scheduler DAG 분석, 현재 시점에서 DAG의 스케쥴이 지난경우 Airflow 워커에 DAG의 태스크를 예.. 2023. 4. 17.