AIRFLOW?
Apache Airflow는 데이터 파이프라인을 작성, 스케줄링 및 모니터링하기 위한 플랫폼이다. 복잡한 데이터 처리 작업을 워크플로우로 정의하고 관리할 수 있도록 도와준다.
주요 기능은 다음과 같다
- 워크플로우 정의: 워크플로우를 DAG(Directed Acyclic Graph) 형식으로 정의. DAG는 작업(task)들의 모음이며, 각 작업의 의존 관계를 나타낸다.
- 스케줄링: DAG 및 각 작업을 특정 시간 또는 주기로 실행하도록 스케줄링할 수 있다.
- 모니터링 및 관리: 웹 인터페이스를 통해 실행 중인 워크플로우를 모니터링하고, 로그를 확인하며, 작업의 상태를 파악할 수 있다.
- 확장성: 분산 실행을 지원하여 많은 양의 작업을 처리할 수 있다.
- 유연성: Python 코드로 워크플로우를 정의하기 때문에 복잡한 로직을 쉽게 구현할 수 있다.
주로 데이터 엔지니어링, ETL(Extract, Transform, Load) 작업, 데이터 분석 파이프라인 등에 사용되며, 데이터의 수집, 처리, 분석 과정을 자동화하고 최적화하는 데 유용하다.
+) 용어정리
- 워크플로우(Workflow): 여러 단계의 작업(task)이 순차적으로 또는 병렬로 실행되는 프로세스.
- DAG(Directed Acyclic Graph): 워크플로우를 정의하는 구조. DAG는 방향성이 있는 비순환 그래프이며, 노드는 작업(task)을, 엣지(연결선)는 작업 간의 의존 관계를 나타낸다. DAG는 Python 코드로 정의된다.
기초 모듈 설치 및 환경 세팅, 실행
#가상환경 생성
pyenv virtualenv 3.11.9 air
#가상환경 실행
pyenv activate
#pyenv global air
#.zshrc
export AIRFLOW_HOME=~/airflow
alias airs="airflow standalone"
AIRFLOW_VERSION=2.9.3
# Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually.
# See above for supported versions.
PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
# For example this would install 2.9.3 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.9.3/constraints-3.8.txt
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
#프로세스 죽이기
ps -ef | grep airflow
kill xxxxx
'Data Engineering > AIRFLOW' 카테고리의 다른 글
[AIRFLOW] make_parquet 파이프라인 만들기 실습 (0) | 2024.07.26 |
---|---|
[AIRFLOW] import_db 파이프라인 만들기 실습 (1) | 2024.07.26 |
[AIRFLOW] simple_bash 파이프라인 만들기 실습 (3) | 2024.07.24 |
[AIRFLOW] DAG 코드 기본 구조 (Operator, trigger rule) (0) | 2024.07.24 |
[AIRFLOW] jinja template (1) | 2024.07.24 |