Airflow의 기타 기능Dag Dependencies (1)DAG를 실행하는 방법주기적 실행 : Schedule로 지정DAG Dependencies : 다른 DAG에 의해 TriggerExplicit Trigger (TriggerDagOperator) : DAG A가 DAG B를 Trigger, A가 끝나면 B를 Trigger Reactive Trigger (ExternalTaskSensor) : DAG B가 DAG A의 Task 종료를 기다림, A는 이 사실을 모름ExternalTaskSensor는 사용 조건이 까다로워 실수하기 쉽기 때문에 안 쓰는 방향으로 가는 게 좋음알아두면 좋은 상황에 따라 다른 Task 실행 방식BranchPythonOperater : 조건에 따라 다른 Task로 분기La..
구글 시트 연동과 API & Airflow 모니터링구글 시트의 데이터를 Redshift 테이블로 복사하거나 Redshift의 SELECT 결과를 구글 시트로 복사하는 작업은 현업 부서와 일을 할 때 자주 사용하며, 중요한 작업 중 하나이다.구글 시트 연동하기 (1) : 구글 시트 -> Redshift구글 시트의 데이터를 Redshift의 테이블로 복사하는 작업을 진행한다.구현 절차시트 API를 활성화 -> 구글 서비스 어카운트 생성 -> 내용을 JSON 파일로 다운로드어카운트에서 생성해 준 이메일을 조작하고 싶은 시트에 공유Airflow DAG에서 해당 JSON 파일로 인증하고 시트를 조작어카운트 생성 과정 구글 스프레드시트 API 활성화 및 프로젝트 생성 (링크)구글 서비스 어카운트 생성 (링크) : ..
ELT 작성과 슬랙 연동Docker 기반 Airflow 실행이전에 사용했던 airflow의 docker-compose.yaml의 x-airflow-common과 airflow-init을 수정하여 사용한다.environmentAIRFLOW_VAR_DATA_DIRAIRFLOW_VAR_ : 해당 문자 뒤에 나오는 문자를 이름으로 하는 환경 변수 생성여기서의 환경 변수 이름은 DATA_DIRDAG에서 필요할 수 있는 임시 파일을 저장하기 위한 별도 디렉터리 설정_PIP_ADDITIONAL_REQUIREMENTS : 필요한 파이썬 모듈 설치 ':-' : 만약 해당 파일이 존재하면 사용, 존재하지 않으면 오른쪽 값을 사용 environment: ... AIRFLOW_VAR_DATA_DIR: /opt/airflo..
Docker Compose 사용해 보기 (2).dockerignore.dockerignore 개념Image build를 할 때 추가하지 말아야할 파일이나 폴더 지정voting-application의 경우 .dockerignore의 내용은 아래와 같음*.pycproject.lock.jsonbin/obj/.vs/node_modules/.dockerignore 주의할 점Dockerfile의 COPY 명령으로 불필요한 파일 혹은 민감한 정보의 파일이 이미지에 포함될 수 있음COPY 명령을 파일이나 폴더 별로 일일이 적어주는 것이 좋음docker-compose로 다수의 Container 실행docker-compose 개념다수의 Container로 소프트웨어가 구성되는 경우 사용할 수 있는 툴, 환경 설정 파일Co..