목록Data Engineering/Airflow (7)
코딜기
Airflow에서 외부 파일을 읽기 위한 docker compose yaml 수정Airflow의 Worker 컨테이너는 기본적으로 외부 파일을 인식할 수 없습니다.컨테이너 안에 파일을 만들어주면 컨테이너 재시작 시 파일이 사라집니다. docker compose yaml 파일의 volume 부분을 수정하여 worker 컨테이너가 외부 파일을 읽을 수 있도록 설정해 줍니다.즉, 로컬의 폴더와 airflow의 폴더를 연동시키는 방식이라고 생각하시면 이해하기 편합니다.docker compose yaml 수정방법은 아래 부분을 로컬의 plugins 경로로 바꿔주면 됩니다.${AIRFLOW_PROJ_DIR:-.}은 도커 초기화한 경로이고, 따로 폴더를 수정 및 생성하지 않았다면 아래와 같이 설정해 주시면 됩니다.※..
Airflow.cfg란?airflow.cfg는 Airflow의 실행, 스케줄링, 로깅, 보안 및 통합 등 여러 기능을 설정하는 데 사용됩니다.Airflow 설치 시 기본적으로 생성되는 일반 텍스트 기반의 구성 파일로, INI 포맷을 사용하여 다양한 설정을 선언적으로 정의할 수 있습니다.실행 방식, 스케줄링 매개변수, 데이터베이스 접속 정보, 로깅, 메일 설정 등을 수정할 수 있습니다.파일은 여러 섹션으로 구분되어 있으며, 각 섹션은 Airflow의 특정 기능이나 구성 요소에 관한 설정을 담고 있습니다.Airflow 인스턴스를 업그레이드하거나 변경할 때 주의 깊게 관리해야 합니다.실수로 중요한 설정을 변경하거나 잘못 구성하면 Airflow의 성능이 저하되거나 예기치 않은 동작을 할 수 있습니다.주요 섹션과..
이 포스팅의 과정을 진행하기 전에 EC2 가상환경 구성을 먼저 하시는 것을 추천드립니다.가상 환경에 Airflow 패키지 설치1. Airflow 패키지 설치에 앞서 MySQL 클라이언트를 사용하기 위해 필요한 패키지를 설치해 줍니다.sudo apt install default-libmysqlclient-dev -ysudo apt install python3.8-dev -y2. 설치가 완료되었으면 아래 명령어를 통해 Airflow 패키지 설치를 해줍니다.간단하게 명령어 설명을 하자면, [ ] 안에 들어간 것들이 Airflow에 필요한 패키지들입니다.패키지들을 따로따로 설치하게 되면 사용하는 Airflow의 버전과 Constraints에 맞는 버전이 다르게 설치되어, Airflow가 정상적으로 작동하지 않..
Celery Executor란?Celery를 이용해서 작업을 worker에게 분배하고, 작업 결과를 관리하는 방식의 Executor입니다.Celery Executor ComponentsBasic ComponentWorkers - 할당된 task를 실행Scheduler - 실행해야 할 task를 Queue에 추가Web server - DAG와 task의 상태를 확인하고, 메타데이터 관리, 시각화, admin 명령을 할 수 있는 HTTP serverDatabase - DAG, tasks, Variable, Connection 등 메타데이터를 저장하는 저장소Celery - 스케줄링하는 Queue의 사용방식Celery Component Broker - 실행해야 할 command를 저장 (Queue)Result ..
Airflow 기본 아키텍처Scheduler스케줄 된 워크 플로우를 트리거하고, Executor에게 task를 실행하도록 요청하는 역할을 합니다.기본적으로 1분에 한 번씩 모든 DAG들의 정보를 업데이트하고, 상태정보를 확인합니다.Scheduler는 모든 task와 DAG를 모니터링하고 각각의 task들을 조건에 맞게 트리거합니다.Executortask의 실행을 관리합니다.실제 task의 실행은 Scheduler 내부에서 수행할 수도 있고, 외부의 worker에게 실행을 맡길 수도 있습니다.Executor의 종류Local Executor : 로컬에서 프로세스를 실행시켜 task를 실행하는 방식Sequential Executor : Local Executor와 비슷하지만 로컬에서 한 번에 하나씩만 동작하는..
Airflow Library 설치airflow를 사용하기 위해 필요한 라이브러리를 설치해야 합니다.프로젝트를 위해 만든 가상환경 위에 라이브러리를 설치해야 다른 프로젝트 환경에 영향을 주지 않고 실행할 수 있습니다.1. 아래의 명령어를 프로젝트 가상환경 터미널에 입력해서 라이브러리를 설치해 줍니다.pip install "apache-airflow[celery]==2.9.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.0/constraints-3.8.txt"※ 여기서 주의할 점은 꼭 맨 앞에 (venv)가 있는지 확인하고 명령어를 입력해주셔야 합니다. 만약 없다면 가상환경에 접속 후 New Termin..
로컬에서 실행된 Docker에서 Airflow 띄우기모든 과정은 Docker가 설치되어 있는 상태에서 터미널(CMD)에서 진행됩니다.맥북은 터미널창에서 그대로 진행하시면 되시고, 윈도우는 WSL의 리눅스 환경 터미널에서 진행해 주시면 됩니다.1. cd 명령어를 통해 작업을 할 폴더로 이동해 줍니다. 2. airflow를 실행시키기 위해 공식 홈페이지에서 제공하는 docker-compose.yaml 파일을 불러오는 명령어를 실행시켜 줍니다.curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.9.0/docker-compose.yaml' 3. airflow 사용에 필요한 폴더를 만들어줍니다.mkdir -p ./dags ./logs ./plugins ./c..