Airflow란

Apache Airflow는 배치 지향적 워크플로우의 개발, 스케쥴링, 모니터링을 지원하는 오픈 소스 플랫폼이다.

Airflow 특징

  • Dynamic : 파이썬 코드로 구성되어 있어 동적 파이프라인 생성을 가능하게 합니다.
  • Extensible : 다양한 기술과 연결할 수 있는 operator가 포함되어 있다. 모든 Airflow 컴포넌트들은 확장이 가능하여 다양한 환경에 쉽게 할 수 있습니다.
  • Flexible : 워크플로우 매개변수화는 Jinja 템플릿 엔진을 활용하여 내장되어 있습니다.

 

Airflow 를 사용해야 하는 이유

Airflow®는 배치 워크플로우 오케스트레이션 플랫폼입니다. Airflow 프레임워크는 여러 기술과 연결할 수 있는 연산자를 포함하고 있으며, 새로운 기술과 연결하기 위해 쉽게 확장할 수 있습니다. 워크플로우에 명확한 시작과 끝이 있고 정기적으로 실행된다면, Airflow DAG로 프로그래밍할 수 있습니다.

워크플로우는 파이썬 코드로 정의되며, 이는 다음을 의미합니다:

  • 버전 관리에 저장할 수 있어 롤백이 가능합니다.
  • 여러 사람이 동시에 개발할 수 있습니다.
  • 기능을 검증하기 위해 테스트를 작성할 수 있습니다.
  • 구성 요소는 확장 가능하며 기존 구성 요소의 광범위한 컬렉션을 기반으로 구축할 수 있습니다.

 

Airflow 설치 방법

  • pip 설치 방법
    • 제약사항 추가하는 방법은 일반적으로 사용하는 방법.
      - 제약사항이 필요한 이유는 Airflow가 라이브러리면서 애플리케이션입니다. 보통 버전 의존도는 라이브러리는 열려있고 애플리케이션은 열려있다. Airflow는 열려있는데 이 때문에 때떄로 설치 코드가 작동하지 않거나 사용 불가능한 Airflow가 설치될 수 있습니다. 
    • 제약사항이 없는 방법은 필요에따라 업(다운)그레이드가 가능.
pip install "apache-airflow[celery]==2.10.2" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.8.txt"
# 제약사항 추가
pip install "apache-airflow==2.10.2" apache-airflow-providers-google==10.1.0
# 제약사항 X
  • Docker 설치 방법
    • Docker Hub에서 Apache에서 공식으로 제공되는 Docker Image가 있습니다.
docker pull apache/airflow

 

https://airflow.apache.org/docs/apache-airflow/stable/index.html

 

What is Airflow®? — Airflow Documentation

 

airflow.apache.org

 

'Data Engineering > Airflow' 카테고리의 다른 글

Airflow DAGs  (1) 2024.10.29
Airflow Architecture  (0) 2024.10.25

Image 관련 명령어

  • docker build --platform=linux/amd64 -t joongh0113/hangman(네임스페이스/레포명 : 이미지명) : 이미지 빌드
  • docker images(image ls) : 로컬에 저장되어 있는 이미지들 리스트 출력
  • docker rmi / docker image rm 이미지 id or 이미지명 : 이미지 삭제

Docker Hub 관련

  • docker login -u 사용자 ID -p 사용자 PW : 로컬에서 docker hub 로그인
  • docker pull joongh0113/hangman : Docker hub에서 로컬로 다운로드
  • docker push joongh0113/hangman : 로컬에서 Docker hub로 업로드

Container 관련

  • docker create
  • docker run --name=이름 -p -v -d 이미지명 : --name(컨테이너 ID 대신 기억하기 쉬운 이름 부여), -p(포트 매핑), -v(), -d(백그라운드에서 실행)
  • docker attatch 컨테이너ID : -d 명령으로 백그라운드로 실행한 컨테이너를 다시 stdout으로 연결
  • docker exec 컨테이너 ID(run --name에서 지정해준 이름) : 이미 열려있는 컨테이너에 명령
  • docker ps
  • docker ps -a
  • docker ps -q
  • docker stop 컨테이너명 or 컨테이너 ID
  • docker start 컨테이너명 or 컨테이너 ID
  • docker restart 컨테이너명 or 컨테이너 ID
  • docker kill 컨테이너명 or 컨테이너 ID
  • docker pause 컨테이너명 or 컨테이너 ID
  • docker unpause 컨테이너명 or 컨테이너 ID
  • docker rm 컨테이너명 or 컨테이너 ID

Container logs 관련

  • docker logs -f 컨테이너명 or 컨테이너 ID : 지금까지 생긴 로그 출력, (-f)로그가 생길 때 마다 출력
  • docker logs --tail 100 컨테이너명 or 컨테이너 ID : 지금 있는 로그 중 최근 100개 출력

'Data Engineering > Docker' 카테고리의 다른 글

Docker 관련 CLI 명령어  (2) 2024.07.23

+ Recent posts