데이터로그😎

[airflow] airflow 사용하기 본문

Data Engineering

[airflow] airflow 사용하기

지연v'_'v 2023. 9. 11. 16:33

설치 & 기본 설정

  • 가상환경 만들기

airflow를 사용할 때 이용할 가상환경인 ariflow-env 를 만들어주고 activate 시켰다.

# 가상환경 생성
conda create -n airflow-env python=3.7

# 가상환경 activate
conda activate airflow-env

 

  • airflow 설치

설치 시 주의사항: 이전에 만든 airflow-env가상환경을 켜고 해당 환경에서 설치를 해야한다. 만약 base에 설치해버리면 추후 airflow-env를 활성화하고 해당 환경에서 dag생성시 진행되지 않는다.

pip install apache-airflow

 

  • airflow 데이터베이스 초기화 & user 생성
airflow db init

airflow users create --role Admin --username 유저네임입력 --email 이메일입력 --firstname 이름입력 --lastname 성입력 --password 비번입력

 

  • airflow web server

디폴트 포트는 8080이라서 아래 코드를 실행하면 된다.

이제 웹 브라우저에 localhost:8080 을 치면 airflow 창이 뜬다.

airflow webserver -p 8080

 

DAG 만들기

  • dag 폴더 생성

dag을 만들기 전에 dag를 저장할 폴더를 만들어놔야 한다.

아래는 vscode에서 ubuntu 가상환경을 켠 화면이다.

airflow를 설치하면 airflow라는 폴더가 자동으로 생성된다. 이때 airflow 하위 폴더로 dag를 만들어야 한다.

mkdir airflow/dags

이제 dag을 만들 때 dags 에 저장해놓고 실행하면 된다.

 

  • dag만들기

위 폴더 사진에서 보듯이 kakao_dag.py파일을 dags 하위에 만들어 놓고 실행했다.

당연히 airflow-env를 활성화 시킨 후에!!!

그러면 아래 사진과 같이 airflow web에 kakao-pipeline dag이 형성된다.

from datetime import datetime
import json
from airflow import DAG

default_args = {"start_date": datetime(2023, 1, 1)}  # 2023년 1월 1일 부터 시작.

dag = DAG(
    dag_id="kakao-pipeline", # dag 이름
    schedule="@daily",  # crontab 표현으로 사용 가능 https://crontab.guru/
    default_args=default_args, # dag 초기화 파라미터 생성
    tags=["kakao", "api", "pipeline"], # UI에 표시될 태그명 설
    catchup=False,
    )

 

만약 나의 화면과 달리 DAGs에 내가 만들지도 않았던 example들이 있다면??

airflow폴더의 하위에 있는 airflow.cfg에 들어가 load_examples를 검색후 True -> False로 변경하면 된다!