airflow 65

[Airflow] DAG 생성

DAG Airflow의 핵심 개념으로, 여러 Task와 각 Task가 어떻게 실행되어야 하는지를 정의하는 종속성과 관계로 구성된다. DAG는 사진의 Task a, b, c, d를 정의하고 실행 순서, 그리고 의존성 등을 지정한다. 또한 DAG가 얼마나 자주 실행되어야 하는지를 지정해야 한다. Airflow의 Python 스크립트는 이러한 DAG의 구조를 코드로 지정하는 설정 파일이다. DAG 정의 파일은 실제 데이터 처리를 수행하지 않으며, 단순히 DAG 객체만을 정의한다. 이 글에서는 DAG 정의 방법을 정리해둔다. DAG 관리 디렉터리 생성 Airflow는 DAG를 관리하는 디렉터리를 지정하여 관리한다. 해당 설정은 airflow.cfg에서 설정할 수 있다. 해당 경로에 맞게 Airflow 홈 디렉터..

Apache Airflow 2022.07.25

[Apache Airflow] 디렉터리 구조

디렉터리 구조 Airflow를 설치하면 Airflow 홈 디렉터리에 아래와 같은 기본 파일이 생성된다. 1.10과 2.3 모두 존재하는 공통 파일부터 서로 존재하지 않는 파일 모두 간단히 정리한다. airflow.cfg Airflow 설정 파일 Airflow DAG 경로, 로그 수준 등 실행에 필요한 정보를 저장한다. airflow.db SQLite DB file 어떤 DAG가 존재하고 어떤 태스크로 구성되는지, 어떤 태스크가 실행 중이고 실행 가능한 상태인지 등의 메타데이터가 저장되는 데이터베이스 파일 logs Airflow의 로그 디렉터리 다만 웹 서버나 스케쥴러를 백그라운드로 실행했을 때는 airflow 홈 디렉터리에 바로 로그가 쌓이는 것 같다. unittest.cfg (1.10 버전) 실제 ai..

Apache Airflow 2022.07.24

[Apache Airflow] 설치 / 실행 (버전 1.10)

Apache Airflow 설치 2022.07.22 - [Apache Airflow] 설치/실행 (2. 3 버전) 에서 2.3 버전 설치 / 실행 방법을 정리했는데, 생각해보니 1 버전이 필요할 것 같다. 따라서 1버전 설치 / 실행 방법도 정리한다. 방법 자체가 크게 달라지진 않는다. 테스트 목적이므로 마찬가지로 단일 로컬 서버에 설치해보고자 한다. 사용한 OS는 Ubuntu 20.04 arm64이며, Python 버전은 3.8이다. 또한 Apache Airflow 1.10.15 버전을 설치할 것이다. 로컬에서 설치 Airflow 공식 사이트의 로컬에서 Airflow 설치 문서를 따른다. Airflow 설치에는 Python 3이 필요하고, pip를 통한 설치를 지원하고 있다. 1. (선택) python..

Apache Airflow 2022.07.23

[Apache Airflow] 설치 / 실행 (버전 2.3)

Apache Airflow 설치 2022.07.18 - Apache Airflow란? 에서 Apache Airflow에 대해서 정리해보았으므로, 이 글에서는 설치 방법을 정리한다. 테스트 목적이므로 단일 로컬 서버에 설치해보고자 한다. 사용한 OS는 Ubuntu 20.04 arm64이며, Python 버전은 3.8이다. 또한 Apache Airflow 2.3 버전을 설치할 것이다. 로컬에서 설치 Airflow 공식 사이트의 로컬에서 Airflow 설치 문서를 따른다. Airflow 설치에는 Python 3이 필요하고, pip를 통한 설치를 지원하고 있다. 1. (선택) python 가상 환경 생성 기존 python 환경에 영향이 없도록 별도의 가상 환경을 생성하여 사용할 것이다. 이 부분은 선택 사항이다..

Apache Airflow 2022.07.22

Apache Airflow란?

Apache Airflow 프로그래밍 방식으로 워크플로우(일련의 작업의 흐름)를 작성, 예약 및 모니터링하는 오픈 소스 플랫폼 작업을 정확한 시간에, 정확한 방법으로, 정확한 순서대로 실행하게 해주는 오케스트레이터 에어비엔비에서 개발했으며, Apache 인큐베이터 프로젝트로 선정된 지 3년 만에 탑 레벨 프로젝트로 선정되었다. 장점 Dynamic Data Pipeline 데이터 파이프라인을 정의하는데 Python을 이용한다. 따라서 Python으로 가능한 대부분의 작업을 Airflow 파이프라인에서 처리할 수 있으며, 동적인 구성이 가능하다. Scalability Airflow는 확장성이 뛰어나다. 다양한 task를 병렬적으로 실행할 수 있으며, 쿠버네티스 클러스터, 분산 클러스터 환경에서 파이프라이닝이..

Apache Airflow 2022.07.18