Data Engineering(Pipeline, Hadoop...)/Airflow 5

[Airflow] 워크플로우 - R Script 실행

dags 내에서 r script를 실행을 편하게 하기 위해, sh 파일을 작성을 우선적으로 해야한다. 1. run_r.sh 작성 #!/usr/bin/env Rscript args = commandArgs(trailingOnly=TRUE) setwd("[나의 경로]") source(args[1]) [나의 경로] 에 default directory로 지정하고 싶은 경로를 나의 분석환경에 맞게 설정만 해주고, 원하는 폴더에 해당 파일을 넣어 둔다. 2. my_dags.py 작성 import os # Get current directory cwd = os.getcwd() with DAG(dag_id="my_dags", default_args=default_args, schedule_interval='50 22 ..

[Airflow] Schedule Timezone을 한국시간(KST) 으로 설정하기

dags 작성을 하는 경우, 아래와 같이 매주 금요일 "2022-12-09 14:00:00" 에 schedule이 실행되도록 하는 코드를 작성했다. dag = DAG ( dag_id = 'workflow_test', start_date = datetime(2022, 12, 9), schedule_interval = "00 14 * * 5", catchup = False, tags = ['test'], description = 'Bash Operator Sample', default_args = default_args ) 그런데, 놀랍게도... 금요일 "2022-12-09 14:00:00" 에는 아무런 일이 발생하지 않는다. (airflow scheduler 가 돌지 않았다.) 이유는 무엇일까? Time ..

[Airflow] Dags 관리(예제 Dags 삭제 및 Dags 경로 설정)

# 1. 예제 Dags 삭제하기 초기 Airflow setting이 된 시점부터, 여러 예제 Dags가 있는 것을 확인할 수 있다. 하지만 예제는 참고용일 뿐, 실제 내가 구성한 Dags만 남겨놓고 싶기에, 예제 Dags를 우선 삭제해보자. 삭제는 간단하다. airflow.cfg 파일을 열어 변경해주면 된다. https://dtstory.tistory.com/25 를 참고 하였다면, airflow.cfg 파일은 /root/airflow/ 경로에 있을 것이다. vim /root/airflow/airflow.cfg 명령으로 edit 모드로 진입해보자. 그 후, load_examples = True 라고 되어 있는 부분을 아래 그림과 같이 load_examples = False로 수정해보자 # 2. Dags ..

[Airflow] Devops 환경 구축 (R+Python+Airflow+ssh)

개발 및 분석 용도로 구성한 스크립트들을 스케줄링하여 주기적으로 실행되고 운영이 될 수 있는 환경을 Docker Container 내에서 할 수 있도록 만들어 보자. # 1. python을 사용하기 위한 jupyter docker container 실행 docker run -it -p 34888:8888 -p 34222:22 -p 34787:8787 -p 34080:8080 \ -v mount_vol:/mypath/mount_vol/ --name dtstory -e ROOT=TRUE -e PASSWORD=password tensorflow/tensorflow:latest-jupyter 참고로 해당 컨테이너 리눅스 배포판은 다음과 같다. 배포판 : Ubuntu 20.04.5 LTS \n \l -> ip:3..

Airflow + Python 스크립트 활용 DAG 구성

도커 컨테이너 환경에서 Airflow 를 구축하고, 진행하기를 원한다면 이전 포스팅을 참고하도록 하자. 2022.09.21 - [Cloud Computing/GCP] - GCP + Docker + Airflow 를 이용한 데이터 파이프라인 구축 1으 GCP + Docker + Airflow 를 이용한 데이터 파이프라인 구축 1 # [컨테이너 이름] 을 지정한 후, linux 커맨드에서 아래 명령어를 실행 -v 명령을 이용해, 폴더 마운트 (복수 허용) docker run -it -p 8080:8080 \ -v /home/airflow/dags:/opt/airflow/dags \ -v /home/airflow.. dtstory.tistory.com 우선 필요 패키지 및 실행파일(.py) 를 무작정 설치, ..