본문 바로가기

반응형

Data Mining & Distributed/Airflow

(31)
[ Airflow ] Schedule 설정하기 Airflow에서 schedule_interval(또는 최신 버전의 schedule)을 설정하는 방법은 매우 다양합니다.여기서는 실무에서 자주 쓰는 모든 스케줄 방식을 한 번에 깔끔하게 정리했습니다.⭐ Airflow 스케줄 설정 완전 정리Airflow DAG에서 예약 실행 주기를 설정하는 방법은 크게 4가지입니다.Cron 표현식 사용timedelta 객체 사용@preset(매직 문자열) 사용비주기적 설정(None / "@once")각 방식별 예시와 함께 설명합니다.1. ⏰ Cron 표현식 (가장 많이 사용)Airflow의 schedule_interval은 cron과 동일한 형식을 지원합니다.기본 형식분 시 일 월 요일예시 정리실행주기 cron 표현식 설명매일 3시0 3 * * *매일 03:00 실행매시 ..
[ Airflow ] 조건 설정해서 수동으로 실행하기 Airflow DAG을 스케줄러에 의한 자동 실행(scheduled run) 과 Web UI에서 수동으로 Trigger된 실행(manual trigger run) 으로 구분해서 동작을 다르게 하고 싶다면,Airflow가 DAG 실행 시 제공하는 context 객체나 dag_run.run_type 을 활용하면 됩니다.아래에서 단계별로 설명입니다.1. 기본 개념 — dag_run.run_type 으로 실행 구분하기Airflow 2.x에서는 DAG 실행이 아래의 run_type 으로 구분됩니다.실행 방식 run_type 값스케줄러에 의해 자동 실행"scheduled"Web UI “Trigger DAG” 클릭"manual"CLI로 trigger (airflow dags trigger)"manual"REST AP..
[ Airflow ] EmailOperator에 대해서 알아보기 EmailOperator도 Airflow의 기본적인 Operator 중 하나로, 매우 자주 사용됩니다.1. EmailOperator 개요항목 설명클래스명airflow.operators.email.EmailOperator기능이메일을 전송하는 작업을 수행사용 목적DAG 실행 결과 알림, 오류 보고, 사용자 통지 등2. 기본 사용 예시from airflow.operators.email import EmailOperatoremail_task = EmailOperator( task_id='send_email', to='user@example.com', subject='Airflow Alert', html_content='Task has been completed successfully!',)..
[ Airflow ] Operator 종류 알아보기 Airflow “core / 기본” Operator 와 주요 Provider 패키지(예: AWS, GCP, Azure 등)에 포함된 대표 Operator 종류들을 정리했습니다.아래는 Airflow 에서 자주 쓰이는 Operator 들의 카테고리 및 예시 목록입니다.1. 기본 / Core / Standard OperatorsAirflow 자체 또는 기본 제공 Provider 패키지에 있는 Operator 들입니다. (Apache Airflow)카테고리 Operator / 종류 설명 / 특징실행형 (Action)BashOperator셸 명령 실행 (Apache Airflow) PythonOperatorPython 함수 호출 (Apache Airflow) PythonVirtualenvOperator가상환경 내..
[ Airflow ] 예제 분석 Dataset을 사용한 스케쥴링 이 코드는 Apache Airflow의 Dataset 기반 스케줄링 기능을 활용한 DAG 집합을 정의한 예제입니다. Airflow 2.4부터 도입된 Dataset은 DAG 간 의존성 관리와 트리거 조건을 명확하게 구성할 수 있게 해주는 매우 강력한 기능입니다.[ CODE ]from __future__ import annotationsimport pendulumfrom airflow.datasets import Datasetfrom airflow.models.dag import DAGfrom airflow.operators.bash import BashOperatorfrom airflow.timetables.datasets import DatasetOrTimeSchedulefrom airflow.timet..
[ Airflow ] Groups에 속한 명령어 알아보기 좋습니다. 아래는 Airflow 2.11.0 이하 기준으로 airflow 명령어 중 사용하신 목록에 포함된 정식 CLI 그룹 명령어들의 사용법을 상세히 정리한 것입니다.각 항목은 다음과 같은 구성으로 설명드립니다:명령어 그룹기본 구조주요 서브 명령어 목록사용 예시 [ 명령어 ]config View configurationconnections Manage connectionsdags Manage DAGsdb Database operationsjobs Manage jobspools Manage poolsproviders Display providerstasks Manage tasksvaria..
[ Airflow ] Ubuntu + Airflow + Postgresql + Local Executor - 설치하기 Ubuntu에서 Apache Airflow를 설치하는 방법을 단계별로 안내하겠습니다. Airflow는 워크플로우 자동화 및 스케줄링 도구로, 여러 방법으로 설치할 수 있습니다. 가장 일반적인 방법은 pip 패키지 관리자를 사용하는 것입니다.현재 Airflow는 3.x 버전이 있습니다.개인적으로 2.x UI를 좋아해서 아직 3.x 버전으로 이동하지 않았습니다.그리고 저에게만 발생하는 문제인지는 알 수 없지만 2.9.0 이상 버전에서 Scheduler의 Heart beat를 감지할 수 없다는 에러가 발생하여 제 블로그에서는 [Ubuntu 22.04, RHEL 7.9 or 8.0 ] + Airflow 2.9.0 버전을 추천합니다. 1. Ubuntu 업데이트 및 기본 패키지 설치먼저 시스템 패키지를 업데이트하..
[ Airflow ] Dag 간에 작업 순서 연결하기 🌱TriggerDagRunOperator와 ExternalTaskSensorAirflow에서 DAG 간의 실행 순서나 의존성을 간접적으로 연결하기 위해 사용하는 도구들입니다.둘 다 DAG와 DAG 사이를 이어주는 역할을 하지만, 의도와 쓰임새가 완전히 다릅니다.1. 두 연산자의 목적과 차이항목TriggerDagRunOperatorExternalTaskSensor주 목적다른 DAG을 실행시키는 것다른 DAG의 Task 상태를 기다리는 것실행 여부직접 다른 DAG을 실행함스스로는 실행하지 않고, 기다림의존 방식능동적(Trigger): A DAG → B DAG 실행수동적(Sensor): B DAG ← A DAG 완료 대기사용 예"A DAG이 끝나면 B DAG을 시작해라""B DAG은 A DAG이 끝났는지 확..

반응형