본문 바로가기

Data Engineering/Airflow6

Airflow에서 custom timetable로 자유롭게 스케쥴 설정하기 💡 Airflow version 2.4 이상부터 schedule parameter가 제공된다. Airflow 스케쥴 설정에 주로 사용하는 cron-based 스케쥴로는 한계가 존재하는데, 예를 들어 아래와 같은 상황이 있다.요일마다 다른 시간에 실행하도록 하기 (e.g. 월요일 4PM, 수요일 2PM)daily 자정 스케쥴이지만 주말은 제외 - 크론표현식으로 스케쥴은 가능하지만 월요일 Dag run에서는 월요일 데이터가 아닌 토/일/월 데이터가 수집됨뷸규칙적인 간격으로 여러번 실행위와 같은 특수한 케이스들을 다루기 위해서는 timetable을 이용하면 된다.TimetablesTimetables 기능은 크론표현식과 timedelta 형태의 스케쥴의 한계를 극복하기위해 Airflow 2.2에 도입되었다.모.. 2024. 7. 28.
Helm Chart로 쿠버네티스에 Airflow설치(KubernetesExecutor 사용) 💡 본문에서 설명하는 내용은 아래의 환경이나 설정을 따른다. - Airflow version: 2.5.3 - AWS 클라우드를 사용하며 EKS에서 쿠버네티스 운영 - Airflow Executor: KubernetesExecutor - Helm Chart: 공식차트 사용 (User Community 차트 X) 초기 설정 네임스페이스 생성 kubectl create ns airflow helm repo 추가 # airflow repo 추가 helm repo add apache-airflow https://airflow.apache.org # repo 업데이트 helm repo update values.yaml 가져오기 airflow/chart/values.yaml at main · apache/airflo.. 2024. 4. 13.
[Airflow] git-sync 설정하기 💡 Git-sync는 무엇인가? kubernetes에서 Airflow를 구성할 때 사이드카 컨테이너로 동작하면서 외부 repository의 dag의 코드를 Airflow 컨테이너에 sync해주는 역할을 합니다. 이를 통해 git repo의 특정 브랜치를 공통개발환경의 SOT(Source of Truth)로 활용 할 수 있습니다. Docker Compose Airflow 에서 설정 기본적으로 git-sync는 쿠버네티스 Airflow에 사이드카패턴으로 사용되기 때문에, docker compose 환경에서 사용하는 방법을 찾기가 제한적이다. 아래 이미지를 활용해서 간단하게 구성이 가능한데, 공식적으로 제공되거나 많이 사용 되는 이미지는 아니기 때문에 주의가 필요하다. https://github.com/dat.. 2024. 3. 31.
docker-compose로 Airflow 설치하기 💡 Pre-requisite Docker 설치 (Memory 최소 4GB 이상, 8GB 권장) Docker Compose v2.14.0 이상 도커 컴포즈로 구성되는 서비스 목록 airflow-scheduler: 스케쥴러는 모든 tasks와 Dags를 모니터하고 task instance를 의존성에 맞게 트리거 airflow-webserver: 에어플로우 UI를 제공하는 웹서버로, http://localhost:8080로 접속가능 airflow-worker: 스케쥴러로 부터 부여받은 태스크를 실행하는 워커 airflow-triggerrer: 외부이벤트나 조건에 따라 작업을 실행시키도록 함 airflow-init: 에어플로우 초기화 postgres: 백엔드 데이터베이스 redis: 스케쥴러에서 워커로 메세지를.. 2024. 3. 17.