Data Engineering/Airflow 12

[Airflow 가이드 ep.8] 2부 DAG 작성 #3 | Branching, SubDAG, Dynamic DAG 활용 전략

이 글에서는 Airflow DAG 작성의 고급 기법인 Branching, SubDAG, Dynamic DAG에 대해 알아봅니다. 기본적인 DAG 구조를 넘어 더 복잡하고 유연한 워크플로우를 구현하는 방법을 실전 예제와 함께 살펴보겠습니다. 다양한 비즈니스 로직을 Airflow에 효과적으로 구현하기 위한 전략을 배워보세요.📌 Branching 이해하기Airflow에서 Branching은 조건에 따라 다른 경로로 워크플로우를 분기하는 기능입니다. 데이터 처리 파이프라인에서 상황에 맞게 다른 작업을 수행해야 할 때 유용합니다.✅ BranchPythonOperator의 기본 원리BranchPythonOperator는 Python 함수의 반환값에 따라 워크플로우의 다음 경로를 결정합니다.  from airflo..

[Airflow 가이드 ep.7] 2부 DAG 작성 #2 | Task 간 의존성 설정과 트리거 규칙

이 글에서는 Airflow에서 Task 간 의존성을 설정하는 다양한 방법과 트리거 규칙에 대해 자세히 알아봅니다. 복잡한 워크플로우를 위한 다양한 의존성 패턴과 조건부 실행 방법을 실제 코드 예제와 함께 살펴보겠습니다.📌 기본 의존성 설정 방법✅ 비트시프트 연산자 (>>, Airflow에서 Task 간 의존성을 설정하는 가장 직관적인 방법은 비트시프트 연산자(>>,  # 비트시프트 연산자를 사용한 기본 의존성 설정# 필요한 모듈 임포트from datetime import datetime, timedelta # 날짜/시간 처리를 위한 모듈from airflow import DAG # DAG 객체 임포트from airflow.operators.bash import BashOperator # Bash ..

[Airflow 가이드 ep.6] 2부 DAG 작성 #1 | DAG 생성 기초: 기본 구조와 파라미터 이해

이 글에서는 Airflow DAG 파일을 작성하는 기본 방법에 대해 알아봅니다. DAG 파일의 기본 구조와 필수 파라미터들을 상세히 살펴보고, 실제 예제를 통해 DAG 작성법을 익혀보겠습니다. 초보자도 쉽게 이해할 수 있도록 각 요소를 하나씩 설명합니다.📌 DAG 파일의 기본 구조✅ DAG 파일이란?DAG(Directed Acyclic Graph) 파일은 Airflow에서 워크플로우를 정의하는 Python 파일입니다. 이 파일은 작업(Task)과 작업 간의 의존성(Dependencies)을 정의하여 워크플로우의 실행 순서와 방식을 결정합니다.DAG 파일은 기본적으로 다음과 같은 구조를 갖습니다:필요한 라이브러리 임포트기본 인자(default_args) 정의DAG 객체 인스턴스 생성Task 정의Task ..

[Airflow 가이드 ep.5] 1부 개념과 설정 #5 | Airflow 기본 설정값 airflow.cfg 완전 해부

이 글에서는 Airflow의 핵심 구성 파일인 airflow.cfg를 심층적으로 분석합니다. 각 섹션별 중요 설정 옵션들을 살펴보고, 실무에서 자주 수정하게 되는 설정들과 성능 최적화를 위한 팁을 알아봅니다. 초보자도 이해할 수 있는 설명과 함께 실제 운영 환경에서 활용할 수 있는 구체적인 예시를 제공합니다.📌 airflow.cfg 개요✅ airflow.cfg 파일이란?airflow.cfg는 Airflow의 모든 구성 요소와 동작 방식을 정의하는 중앙 설정 파일입니다. Airflow를 처음 초기화할 때 자동으로 생성되며, 기본적으로 $AIRFLOW_HOME 디렉토리 아래에 위치합니다.# airflow.cfg 파일 위치 확인ls -la $AIRFLOW_HOME/airflow.cfg# 또는 다음 명령으로 ..

[Airflow 가이드 ep.4] 1부 개념과 설정 #4 | Airflow 설치: 로컬, Docker, Kubernetes 기반 설치 비교

이 글에서는 Apache Airflow의 다양한 설치 방법에 대해 자세히 알아봅니다. 로컬 환경 설치부터 Docker 컨테이너 기반 설치, 그리고 Kubernetes 환경에서의 설치까지 각 방법의 특징과 장단점을 비교하고, 실제 설치 과정을 단계별로 살펴보겠습니다.📌 Airflow 설치 개요✅ 설치 전 고려사항Airflow를 설치하기 전에 먼저 고려해야 할 몇 가지 중요한 사항들이 있습니다:환경 요구사항:Python 3.6 이상 (Python 3.8 이상 권장)운영체제: Linux(권장), macOS, Windows(WSL2 권장)충분한 CPU, 메모리, 디스크 공간사용 목적:개발/학습용: 간단한 로컬 설치 적합소규모 프로덕션: Docker 기반 설치 적합대규모 프로덕션: Kubernetes 기반 설치..

[Airflow 가이드 ep.3] 1부 개념과 설정 #3 | Airflow 주요 구성요소: Scheduler, Webserver, Worker, DB

이 글에서는 Airflow의 핵심 아키텍처와 주요 구성요소들을 상세히 알아봅니다. Scheduler, Webserver, Worker, Metadata Database 등 Airflow를 구성하는 각 컴포넌트의 역할과 상호작용 방식을 이해하고, 각 구성요소가 어떻게 동작하는지 살펴보겠습니다.📌 Airflow 아키텍처 개요✅ Airflow의 기본 아키텍처Airflow는 다음과 같은 주요 구성요소로 이루어진 분산 시스템입니다:Web Server: 사용자 인터페이스(UI) 제공Scheduler: DAG와 태스크 스케줄링 담당Worker: 실제 태스크 실행 담당Metadata Database: Airflow의 상태 정보 저장DAG Directory: DAG 파일 저장소   ✅ 컴포넌트 간 상호작용Airflow..

[Airflow 가이드 ep.2] 1부 개념과 설정 #2 | DAG란 무엇인가? DAG 구조와 트리거 방식 이해

이 글에서는 Airflow의 핵심 개념인 DAG(Directed Acyclic Graph)에 대해 자세히 알아봅니다. DAG의 기본 구조부터 트리거 방식까지, 실제 코드 예제와 함께 DAG의 모든 것을 살펴보겠습니다. 초보자도 쉽게 이해할 수 있도록 상세히 설명합니다.📌 DAG의 개념과 중요성✅ DAG란 무엇인가?DAG(Directed Acyclic Graph)는 Airflow에서 워크플로를 정의하는 핵심 개념입니다. 쉽게 말해, DAG는 실행해야 할 작업들과 그 작업들 간의 의존성을 표현하는 방향성 있는 비순환 그래프입니다.방향성(Directed): 각 작업(Task)은 특정 방향으로 연결됩니다. A → B는 "A 작업이 완료된 후 B 작업이 실행된다"는 의미입니다.비순환(Acyclic): 그래프 내..

[Airflow 가이드 ep.1] 1부 개념과 설정 #1 | 워크플로 자동화란? Airflow의 필요성과 기본 개념

이 글에서는 워크플로 자동화의 개념과 Apache Airflow가 등장하게 된 배경, 그리고 Airflow의 기본 개념에 대해 알아봅니다. 데이터 파이프라인 자동화의 필요성부터 Airflow가 제공하는 주요 기능까지, 초보자도 이해할 수 있도록 상세히 설명합니다.📌 워크플로 자동화란 무엇인가?✅ 워크플로 자동화의 정의워크플로 자동화란 일련의 작업들을 사전에 정의된 규칙과 조건에 따라 자동으로 실행되도록 구성하는 것을 말합니다. 이는 반복적인 작업을 줄이고, 인적 오류를 최소화하며, 작업의 효율성과 신뢰성을 높이는 데 큰 도움이 됩니다.▶️ 실무 예시: 매일 아침 데이터베이스에서 데이터를 추출하여 가공하고, 분석한 결과를 이메일로 보내는 작업을 생각해 보세요. 이 모든 과정을 매번 수동으로 처리한다면, ..

🚀 Docker Desktop에서 Apache Airflow 설치 및 DAG 파일 마운트하기

Kubernetes 환경에서 Apache Airflow를 설치하고, DAG 파일을 로컬 디렉터리에서 마운트하는 방법을 정리해보았습니다.특히 Docker Desktop (Mac M1)에서 hostPath를 올바르게 설정하여 DAGs를 공유하는 방법과Helm을 사용하여 기존 Airflow 환경을 업그레이드하는 방법을 포함합니다.  ✅ 1. Docker Desktop 환경에서 Airflow 설치 개요 Docker Desktop의 내장 Kubernetes 기능을 사용하면 로컬 개발 환경에서 손쉽게 Apache Airflow를 실행할 수 있습니다.그러나, DAG 파일을 로컬 디렉터리에서 관리하려면 Docker Desktop의 파일 공유 설정과 Kubernetes hostPath 설정이 필요합니다. 📌 목표 1...

Airflow DAG 등록 및 MySQL 프로바이더 이슈 해결: Minikube와 Helm을 활용한 Airflow Cluster 구축 가이드

최근 저는 로컬 환경(Minikube 클러스터)에서 Helm을 이용해 Airflow를 배포하고, DAG 파일을 등록하는 과정에서 발생하는 문제들을 해결해 보았습니다. 이 글에서는 Hello World와 MySQL 연동 DAG를 예시로, Airflow DAG 등록 문제, MySQL 프로바이더 패키지 관련 이슈, 그리고 로컬과 클러스터 간 볼륨 마운트 설정 방법 등을 단계별로 정리해 보겠습니다.1. 간단한 Hello World DAG 등록먼저, 별다른 의존성이 없는 간단한 "Hello World" DAG는 Airflow가 기본적으로 잘 인식하는 것을 확인했습니다. 예시 코드는 다음과 같습니다.from datetime import datetime, timedeltafrom airflow import DAGfr..

728x90