SQLAlchemy 2.X 지원
543
작성한 질문수 1
구글링해보면 Airflow가 전체적으로 2.X 지원을 준비하는 것 같긴 합니다만,
docker-compose로 airflow 2.8.4 docker를 설치하면
SQLAlchemy가 1.4.X가 설치되는 것 같습니다.
저희가 만든 Dags는 내부에 SQLAlchemdy 2.X를 사용해서 DB 접근을 하는 코드가 있는데
Airflow에 SQLAlchemy 2.X를 설치해서 쓰는 방법이 있을까요?
예를 들면, dags를 실행하는 Airflow-worker에 SQLAlchemy 최신 버전을 pip install로 설치한다던지요..
또는 기본 Base가 되는 이미지에 2.X로 업그레이드 시키거나, worker에 2.X를 설치할 때 Airflow의 기존 로직들은 이상이 없을지요?
아니면, 아래처럼 virtual env 방식으로 SQLAlchemy를 설치하는 식으로 사용해야 할까요?
@task.virtualenv(
task_id="virtualenv_python", requirements=["SQLAlchemy==2.0.0"], system_site_packages=False
) 일반적으로 사용하는 방법에 대해 궁금합니다.
감사합니다.
답변 1
0
안녕하세요 강운천님!
Airflow 설치시 requirements.txt 를 통해 의존성을 관리할 수 있습니다.
아래 url (installing from PyPi) 에 들어가보세요.
https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-pypi.html
그러면 아래처럼 airflow 설치할 때 --constraint 옵션을 통해 의존성 관리할 수 있고
pip install "apache-airflow[celery]==2.8.4" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.8.4/constraints-3.8.txt"https 로 시작하는 부분을 들어가보면 패키지별로 버전이 다 명시되어 있습니다.

따라서 원한다면 저 부분을 복사한 후 WSL 내 디렉토리에 requirements.txt 로 만들어놓고 SQLAlchemy 부분을 원하시는 버전으로 수정 후 파일을 바라보고 설치하게끔 시도해볼 수 있습니다.
--constraints requirements.txt
그러나!
아마도 설치 도중 의존성 문제가 발생할 겁니다.
그래서 airflow 설치는 일단 그대로 하시고 운찬님이 쓴대로 @task.virtualenv 데코레이터를 쓰시는게 가장 좋은 해결방안 같습니다. @task.virtualenv 는 PythonVirtualOperator 를 사용할 수 있게끔 해주는 건데, PythonVirtualOperator보다 데코레이터 사용을 권장합니다. (PythonVirtualOperator는 파이썬 가상환경을 만든 후 실행, 완료 후 삭제하는 오퍼레이터입니다)
그래서 결론은 운찬님이 쓰신대로 @task.virtualenv 를 쓰시는게 가장 적합해 보입니다.
0
말씀하신 방법을 알아보는데 virtualenv를 쓰려면 해당 함수 내에 모든 기능 구현을 해야하는 것처럼 보이네요.
requirement에 등록하는 설치형태가 아닌 다른 모듈(예: src.common.databases)은 import가 안되네요.
Worker docker만 Alchemy 2.0을 설치해보는 방법도 검토해보고 있는데 쉽지 않네요.
(플라스크가 1.4를 요구하네요)
0
혹시 virtualenv 를 사용해서 기능 구현하는게 어려운 상황이신가요?
어떤 상황인지 알려주시면 저도 같이 고민해보겠습니다. ^^
혹시 이미 custom operator를 만들었고, 큰 기능 변경없이 SQLalchemy 2.x 로 실행하고자 하는 상황이신가요?
pykrx 회원제 전환으로 인한 실습 불가
0
114
2
수료증 발급
0
84
3
에러 발생 관련 질문드립니다.
0
83
2
vscode 작업화면에 오류가 발생하지 않습니다.
0
69
2
plugins 폴더 생성
0
74
2
WSL에서 git push 가 안되요 ㅠ
0
113
2
chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.
0
66
2
github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ
0
732
2
설치중인데 venv를 꼭 써야할까요?
0
126
2
설치 버전 관련 질문입니다.
0
68
1
우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?
0
62
1
DAG 만들기 중 airflow 패키지 로드 에러
0
106
2
3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!
0
95
3
task_id 사용법이 뭔가 바뀐 것 같습니다.
0
76
3
email operator 오류 관련
0
66
2
plugins 폴더 관련
0
99
2
bash operator 관련 문의입니다
0
78
3
스케쥴러 - DAG 파싱 부하 줄이는 과정 질문
0
79
2
Dags refresh 주기 관련 질문
0
124
2
wsl 관련 질문입니다.!
0
74
2
macOS에서 docker 설치
0
94
2
템플릿 변수에 대한 오류
0
61
2
custom_image 디렉토리 문의드립니다.
0
54
2
ETL 인터뷰 관련 문의
0
103
2





