일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- linux
- 데이터 웨어하우스
- Go
- S3
- redshift
- http
- dockerfile
- TIL
- 데이터 엔지니어링
- 데이터 파이프라인
- Django
- sql
- TCP
- 컴퓨터 네트워크
- 가상환경
- 컴퓨터네트워크
- 데이터엔지니어링
- 데브코스
- AWS
- 정리
- PYTHON
- 데이터베이스
- 운영체제
- Docker
- HADOOP
- 파이썬
- airflow
- airflow.cfg
- 종류
- 자료구조
- Today
- Total
홍카나의 공부방
[Airflow] Python 외부 함수 가져와서 사용하기 본문
from airflow.operators.python import PythonOperator
airflow DAG의 위 코드를 해석해보면
airflow > operators > python의 PythonOperator 클래스(또는 함수)를 불러오라
로 해석할 수 있다.
DAG에서 외부 함수를 가져오려면 import 경로를 어떻게 해줘야 할까?
docker에 있는 airflow container로 들어가서 sys.path 변수에 담겨있는 경로로 파이썬 파일을 집어넣으면 된다.
컨테이너 내부에서 파이썬을 실행시키고 sys.path를 출력해주면
import할 수 있는 여러 경로들이 리스트 형태로 나온다.
' ', 는 실행하는 파이썬 파일과 동일한 경로를 지칭하며, 아래 5가지는 pip로 설정된 경로다.
sys.path에 값을 추가하려면
sys.path.append('/home/hongcana') 등으로 명시적으로 append를 이용해서 리스트에 경로를 추가하거나
OS 환경변수인 PYTHONPATH에 값을 추가하면 되는데
airflow에서는 자동으로 dags 폴더와 plugins 폴더를 sys.path로 지정한다.
컨테이너에서 airflow info를 입력해보면 paths info가 나오는데, python path에 dags와 plugins 폴더가 잡혀있는 것을 볼 수 있다.
쉽게 말하자면 그냥 plugins에 넣어주면 된다는 이야기.
WORKSPACE_FOLDER={airflow 폴더 경로}
PYTHONPATH=${WORKSPACE_FOLDER}/plugins
그리고 .env파일을 airflow 폴더에 만들어서
이런식으로 WORKSPACE_FOLDER라는 변수에 폴더 경로를 바인딩해주면 된다.
그래야 DAG를 작성할 때 plugins 아래에 있는 폴더/파일로 바로 꽂아줄 수 있다.
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow] python operator - 템플릿 사용이 가능한 파라미터 (0) | 2023.11.19 |
---|---|
[Airflow] Task Decorator 간단 사용법 (0) | 2023.11.16 |
[Airflow] 쉘 스크립트(Shell) 실행하기 (8) | 2023.11.12 |
[Airflow] Cron Schedule 정리 (1) | 2023.11.04 |
[Airflow] Operator, Task, Scheduler, Worker, DAG 기초 예시 (0) | 2023.11.04 |