해당 포스팅은 Airflow 가 도대체 뭐길래? 에서 출발했습니다. Airflow의 대략적인 설명을 들었을 때, Airflow 와 springBatch + argo workflow 조합은 어떤 차이점이 있지? 라는 궁금증이 먼저 들었습니다 Airflow는 데이터 엔지니어링과 ETL 파이프라인 작업에 최적화되어있고, 후자는 복잡한 비즈니스 로직 구현에 중점을 둔다고 이해했습니다. Argo는 그 작업들을 Kubernetes 환경에서 스케줄링하고 병렬 처리로 확장할 수 있도록 지원한다는 점도 짚을 수 있겠네요.
*ETL(Extract-Transform-Load) : 데이터를 처리하고 변환하여 원하는 형태로 적재하는 데이터 처리 과정.
둘의 차이가 뭐든 간에, Airflow 연동 작업을 한번 해보고 싶었습니다. 그래서 준비한 튜토리얼..! Airflow 를 설치해보고 데이터 파이프라인을 만들어보려고 합니다. 튜토리얼 흐름을 먼저 훑어보시고 따라해보시는 걸 추천드립니다. 설치 과정이 보다 쉬워질지도요 ㅎ
export AIRFLOW_HOME=~/airflow
Airflow 가 설치되면 관련 파일이 저장될 공간을 만들어주겠습니다.
export AIRFLOW_VERSION=2.5.3
Airflow 버전은 2.5.3 으로 세팅해두고요.
(근데 이 버전이 나중에 문제가 됩니다 일단 직접 겪어보세요..)
export PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
Python 버전 PYTHON_VERSION 에 소수 버전까지만 추출해 세팅해두겠습니다.
이런 파이썬이 없군요. 파이썬 먼저 세팅해주겠습니다.
>> Python + 가상환경 세팅 과정
brew install pyenv pyenv-virtualenv
pyenv는 Python 설치와 버전을 관리하기 위한 오픈소스 도구입니다. 시스템에 여러 버전의 Python을 설치하고, 프로젝트별로 다른 Python 버전을 사용할 수 있기도합니다. pyenv 의 가상환경(virtualenv)과 함께 설치해보았습니다. 프로젝트마다 Python 버전과 가상 환경을 완벽히 분리시키는 과정이라고 볼 수 있습니다. 나중에 나오겠지만, Airflow 를 이 가상 환경안에 설치했습니다.
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
설치가 완료되면 환경 설정 세팅도 .zshrc 에 반영합니다.
pyenv install --list
설치 가능한 파이썬 버전을 확인하구요
pyenv install 3.8.15
pyenv versions
저는 최신 버전인 3.8.15 로 세팅하고 설치된 파이썬 리스트를 차례로 확인했습니다.
export PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
이제 파이썬이 세팅되었으니 PYTHON_VERSION 에 값을 할당할 수 있습니다.
기본 준비가 끝났습니다. 이제 파이썬 가상환경에 Airflow 를 설치할 차례입니다.
pip install apache-airflow==${AIRFLOW_VERSION} --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
저는 여기서 애를 좀 먹었습니다. AIRFLOW_VERSION 을 2.5 대로 세팅해두었는데, 설치했던 파이썬과 호환되지않았습니다. Airflow 와 파이썬 간의 호환 릴리즈 노트는 여기서 확인해보실 수 있습니다.
AIRFLOW_VERSION 버전 세팅을 다시 2.7 대로 설정하고 설치해보았더니 아주 잘되었습니다.
설치가 완료 되었다면, Airflow 폴더 내부에 뭐 이것 저것 만들어졌습니다. 이제는 Airflow 초기화와 관리자 계정 생성을 해줘야합니다. 거의 다왔습니다. 폴더 안에 db 정보를 담고 있는 파일을 초기화해주어야합니다.
airflow db init
airflow users create \
--username admin \
--firstname 6161990 \
--lastname src \
--role Admin \
--password admin \
--email test@test.com
로그인 할 계정도 만들어주었습니다. 이제 Airflow 를 접속해보겠습니다.
반가워 Airflow..
로컬로 접속해서 로그인 정보를 입력하니 DAGs 대시보드가 보입니다!! 자 이제, 데이터 연동을 해볼 차례입니다. 다음 튜토리얼에서 계속됩니다.
'테스트 쉽게하기' 카테고리의 다른 글
Embedded Redis vs. macOS Sonoma (0) | 2024.12.06 |
---|---|
Unleash 로컬에서 동작시켜보기 튜토리얼 2 (0) | 2024.12.03 |
Unleash 로컬에서 동작시켜보기 튜토리얼 1 (3) | 2024.12.03 |
Redis 로컬 테스트 하는 두 가지 방법 : testContainers (3) | 2024.12.01 |