Data Engineering/airflow 3

airflow에서 start_time, execution_time, backfill, catchup

1.airflow의 시간 https://airflow.apache.org/docs/apache-airflow/stable/faq.html#what-s-the-deal-with-start-date: start_date, execution_date 공식문서 1-1.start_date 실행 날짜가 아니라 스케줄 시작 시간으로 DAG 첫 실행은 'start_date + 실행주기' 에 실행하게 된다. start_date: 2023-08-01 00:00:00 hourly job: schedule: 0 * * * * (매시 0분에 실행) → DAG의 첫 실행은 2023-08-01 01:00:00 daily job: schedule: 0 10 * * * (매일 10시 0분에 실행) → DAG의 첫 실행은 2023-08..

airflow는 어떻게 작동할까? 그리고 DAG란?

기존에 다른 배치 프로그램을 사용하다가 airflow로 넘어오면서 뭐 같은 workflow 프로그램 이겠구나 싶었다. 근데 airflow만의 문법이나 기능? 개념? 등을 새롭게 접하면서 단순히 똑같은 배치 프로그램이라고 생각하고 넘어가기 보다는 찾아보고 정리하는 부분이 필요하다고 느꼈다. 그리고 airflow만의 시간에 대한 공부없이 냅다 dag를 만들어서 구현하려다 보니 너무 고생했어서 여기다 같이 정리 하겠다 ㅇㅅㅇ. 1.airflow란? Apache Airflow™는 python 코드로 워크플로우(workflow)를 개발하고, 스케줄링 및 모니터링하기 위한 오픈 소스 플랫폼. DAG(Directed Acyclic Graph, 유향 비순환 그래프): python으로 작성한 workflow로 이를 통해..

airflow DAG 결과를 Slack API로 메세지 받아보기

기존에 Jenkins를 이용해 코드 배치관리를 진행했는데 코드 관리나 배치 관리 복잡도가 증가하면서 모델별로 하나의 DAG로 관리하고 체계적인 system화를 위해 airflow로 배치를 옮기고 있다. 거기다 기존의 hive sql을 pyspark로 구현해서 정리까지 하고있는데 병아리 수준에서 시스템, 코드를 뜯어보고 새롭게 구성하려고 하니 에러 투성이다 ㅠ Slack에서 제공되는 API를 활용하여 구성해둔 DAG가 정상 작동 했는지 메세지를 전달 받아 모니터링을 효율적으로 하는 목적으로 해당 페이지를 작성했다. 참고로 Slack과 airflow는 설치 및 세팅이 돼 있다는 가정하에 작성했고 DAG 구성에 대한 디테일한 설명은 없다. 추후에 공부하고 정리해서 따로 올리려고 한다. [목차] 1.airflo..