목록Data Engineering (29)
코딜기
Airflow Jinja 템플릿이란?파이썬에서 Jinja 템플릿을 사용하는 것과 비슷하게 Jinja 템플릿을 사용해서 간단하게 데이터를 넘겨줄 수 있습니다.오퍼레이터 파라미터 입력 시 중괄호 2개를 이용하면 Airflow에서 기본적으로 제공하는 변수들을 치환된 값으로 입력할 수 있습니다. (ex: 수행 날짜, DAG_ID)모든 오퍼레이터, 모든 파라미터에 Template 변수 적용이 가능한 것은 아니기 때문에 Airflow 문서에서 어떤 파라미터에 Template 변수 적용 가능한지 확인이 필요합니다.https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/index.html가장 많이 사용하는 Airflow 템플릿 변수dat..

Task Decorator란?파이썬에서 데코레이터를 사용하는 것과 비슷하게 데코레이터를 사용해서 간단하게 Task를 만들 수 있습니다.데코레이터를 사용하면 PythonOperator를 import 할 필요가 없습니다.실행시키는 코드(py_task1 >> py_task2)를 작성할 필요가 없습니다.Task Decorator 사용코드 자체가 간결해진 것을 확인할 수 있습니다.

Email Operator란?이메일을 전송하는 오퍼레이터입니다.이메일 전송을 위해 사전 세팅 작업이 필요합니다.구글 메일 서버를 사용하기 때문에 G-mail에서 사전 세팅 작업이 필요합니다.Docker-compose.yaml 파일의 environment 항목 세팅 작업이 필요합니다.G-mail 세팅1. 사용할 G-mail 계정에 로그인을 한 후 G-mail에서 몇 가지 세팅을 해줍니다.G-mail → 설정 → 모든 설정 보기 → 전달 및 POP/IMAP → IMAP 사용 경로로 이동해 줍니다.2. 구글 계정관리에서 몇 가지 추가 세팅을 해줍니다.구글 계정관리 → 보안 → 2단계 인증 → 앱비밀번호 세팅 경로로 이동해 줍니다.※ 발급된 앱 비밀번호 토큰은 꼭 저장해서 잃어버리지 않게 해야 합니다.Docke..

Airflow에서 외부 파일을 읽기 위한 docker compose yaml 수정Airflow의 Worker 컨테이너는 기본적으로 외부 파일을 인식할 수 없습니다.컨테이너 안에 파일을 만들어주면 컨테이너 재시작 시 파일이 사라집니다. docker compose yaml 파일의 volume 부분을 수정하여 worker 컨테이너가 외부 파일을 읽을 수 있도록 설정해 줍니다.즉, 로컬의 폴더와 airflow의 폴더를 연동시키는 방식이라고 생각하시면 이해하기 편합니다.docker compose yaml 수정방법은 아래 부분을 로컬의 plugins 경로로 바꿔주면 됩니다.${AIRFLOW_PROJ_DIR:-.}은 도커 초기화한 경로이고, 따로 폴더를 수정 및 생성하지 않았다면 아래와 같이 설정해 주시면 됩니다.※..

AMI(Amazon Machine Image)란?AMI(Amazon Machine Image)는 인스턴스를 생성하기 위한 이미지입니다.기존의 사용했던 인스턴스의 환경(운영 체제(OS), 애플리케이션 서버, 애플리케이션, 구성 설정, 라이브러리 등)을 그대로 이미지로 캡처해서 새로운 인스턴스를 만들 수 있습니다.이를 통해 사용자는 특정 환경이 미리 구성된 인스턴스를 쉽고 빠르게 시작할 수 있습니다.AMI의 용도1. 인스턴스 복제AMI를 사용하면 기존의 사용했던 EC2 인스턴스 환경을 그대로 복제하여 새로운 인스턴스를 생성할 수 있습니다.이는 다양한 환경(개발, 테스트, 프로덕션)에서의 일관된 설정을 유지하는 데 매우 유용합니다.2. 백업 및 복구인스턴스의 현재 상태를 AMI로 캡처하여 백업으로 사용할 수 ..

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가 정상적으로 작동하지 않..

EC2의 가상환경자세한 개념은 파이썬 가상환경 설정 게시물에서 확인할 수 있습니다.EC2 가상환경 설치가 필요합니다.EC2에 가상환경 활성화하기아래 명령어를 통해 python용 가상환경을 env라는 디렉터리에 생성해 줍니다.가상환경을 만들 프로젝트 폴더 경로 안에 들어가서 생성해 줘야 작업별로 가상환경을 독립시킬 수 있습니다.이 포스팅에서는 활성화하는 방법을 공유하는 것이 목표이기 때문에 따로 독립시키지 않고 진행하겠습니다.virtualenv env아래 명령어를 통해 가상환경을 활성화 및 비활성화를 할 수 있습니다.가상환경을 설치한 폴더로 이동한 후 진행하셔야 합니다.정상적으로 활성화가 되었다면 사진과 같이 커맨드 라인 맨 앞에 (env) 표시가 생긴 것을 확인할 수 있습니다.# 가상환경 활성화하기sou..

EC2의 가상환경자세한 개념은 파이썬 가상환경 설정 게시물에서 확인할 수 있습니다.EC2에 가상환경 세팅하기아래 명령어를 통해 virtualenv를 설치한 후 버전을 확인해 주면 정상적으로 설치가 된 것을 확인할 수 있습니다.python3 -m pip install --user virtualenvvirtualenv --version

EC2에 pip 설치하기1. 우선 pip를 설치할 EC2 인스턴스를 생성한 후 SSH로 접속을 해줍니다.2. pip 설치를 해주기 전에 python 세팅을 먼저 해줍니다.3. 아래 명령어를 통해 pip를 설치해 줍니다.sudo apt updatesudo apt install python3-pip -y4. 설치를 하고 pip 버전을 확인해 줍니다.5. 만약 pip 버전이 9.0.x 또는 20.x 이상이 아니라면 업그레이드를 해줘야 합니다.python -m pip install --upgrade pip