데이터로그😎
[airflow] airflow 사용하기 본문
설치 & 기본 설정
- 가상환경 만들기
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로 변경하면 된다!
'Data Engineering' 카테고리의 다른 글
분산 병렬 처리 시스템 (MPP, DFS) (0) | 2023.09.14 |
---|---|
[airflow] airflow(ubuntu)-mysql 연결하기? (0) | 2023.09.13 |
[ubuntu] 로컬 WSL(ubuntu) - vscode 연결하기 (0) | 2023.09.11 |
[ubuntu] 로컬에 ubuntu(linux)를 설치하는 건에 관하여.... (0) | 2023.09.09 |
Data architecture (0) | 2023.09.07 |