로딩...
apache-airflow
소개
- aws step-function 과 유사한 워크플로우 생성툴
operator
라는 단위로 작업 진행 가능- kubernetes 용 확장도 존재
job
단위 컨트롤로 추정 - argo-workflows 라는 대안도 존재
- kubernetes 용 확장도 존재
admin
->connections
에서 변수 관리 가능- dag 을 만들고 그안에 task 를 붙여서 workflow 를 생성
- task 는 병렬로 실행도 가능
- python script 를 네이티브로 지원
xcom_push()
라는 메서드로 데이터를 전달할 수 있음xcom_pull()
라는 메서드로 데이터를 받을 수 있음
flow
flowchart LR
style t1 fill:#f9f,stroke:#333,stroke-width:2px
style t2 fill:#f9f,stroke:#333,stroke-width:2px
python_operator -.생성.-> task0
bash_operator -.생성.-> task1
python_operator -.생성.-> task2
bash_operator -.생성.-> task3
bash_operator -.생성.-> task4
subgraph dag0
t1[trigger] --> task0
task0 --> task1
end
subgraph dag1
t2[trigger]
task2 --> task3 --> task4
end
subgraph ui
dag0
dag1
end
end_user ==실행==> t1
문법
task0 >> task1 >> task2 # 순차 실행
task0 >> [task1, task2] # 순차 후 병렬 실행
설치
AIRFLOW_HOME=~/airflow # airflow 경로 설정, 기본값이라 이 경우는 쓸 필요없음
pip install apache-airflow
# 자동
# airflow standalone
# 수동
airflow db init
airflow users create \
--username admin \
--firstname first \
--lastname last \
--role Admin \
--email deptno@gmail.com
airflow webserver --port 8080 # ui 서버
airflow scheduler # 유저가 실행할 걸 스케줄러에 할당하는 역할
실행
- web 접속 후
- dag -> run
로그 확인
- web 접속 후
- dag -> run -> event log
- dag -> run -> graph -> task -> 로그 확인
logs/
디렉토리에도 생성됨