Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog
반응형

[기술공부]/Apache Airflow 11

[Airflow] Connection 연결시 [Test] 버튼 비활성화된 경우 해결하는 방법

Airflow에서 Connection 연결하기 전, Connection 연결 정보가 올바르게 입력되었는지 확인하기 위해서 [Test] 버튼을 눌러 확인하고 이상이 없으면 [Save] 버튼을 눌러 커넥션을 저장하게 된다. 하지만 상황에 따라 아래와 같이 [Test] 버튼이 비활성화될 수 있는데, 이 문제를 해결하는 방법을 알아보도록하자. 여담으로 나도 처음에는 버튼이 비활성화되어 있어서, MySQL DB 연결시 커넥션 정보가 올바른지에 대해 확인이 어려웠다. 인터넷을 찾아보던 중 Airflow 내의 설정값 수정을 통해 해결할 수 있다는 것을 알아낼 수 있었다. 먼저, 해결 방법을 간단히 설명하자면 Airflow webserver 컨테이너 내에서의 airflow.cfg이란 설정 파일 내의 'test_conn..

[Airflow] docker-compose.yaml로 Jupyter 컨테이너 올리기 - (2)

지난 시간에는 docker-compose.yaml 파일을 이용하여 Jupyter 컨테이너를 올려보는 과정을 알아보았다. 이번에는 Jupyter에서 Mariadb 컨테이너 데이터를 불러오는 과정을 진행해보고자 한다. [지난 시간 내용 - Jupyter 컨테이너 올리기] 2024.01.23 - [[기술공부]/Apache Airflow] - [Airflow] docker-compose.yaml로 Jupyter 컨테이너 올리기 - (1) [Airflow] docker-compose.yaml로 Jupyter 컨테이너 올리기 - (1) 지난 시간에 Mariadb 컨테이너를 올리고 테스트 데이터를 만들어보았다. 이번 시간에는 Jupyter 컨테이너를 올리는 과정을 알아보고, 다음 시간에는 Jupyter에서 Maria..

[Airflow] docker-compose.yaml로 Jupyter 컨테이너 올리기 - (1)

지난 시간에 Mariadb 컨테이너를 올리고 테스트 데이터를 만들어보았다. 이번 시간에는 Jupyter 컨테이너를 올리는 과정을 알아보고, 다음 시간에는 Jupyter에서 Mariadb 컨테이너 데이터를 불러오는 방법에 대해 알아보려고 한다. [지난 시간 내용 - Mariadb 컨테이너 올리기] 2024.01.18 - [[기술공부]/Apache Airflow] - [Airflow] docker-compose.yaml로 mariaDB 컨테이너 올리기 & DBeaver 연결하기 [Airflow] docker-compose.yaml로 mariaDB 컨테이너 올리기 & DBeaver 연결하기 이번 시간에는 docker-compose.yaml 스크립트를 이용하여 mariaDB 컨테이너를 올리고 DBeaver 연결..

[Airflow] docker-compose.yaml로 mariaDB 컨테이너를 올렸을 때 볼륨이 정상 작동 안하는 오류 해결

원래 컨테이너에 쓰인 데이터는 휘발성으로 컨테이너를 내리면 데이터도 함께 사라지게 된다. 하지만 DB(postgres, mariaDB) 같은 경우에는 컨테이너 재기동과 상관없이 데이터를 계속 저장할 수 있어야 하며, 이러한 기능을 지원하는 것 중에 하나가 볼륨(volume)이다. 즉 쉽게 말해서 컨테이너에 대해 볼륨을 지정해주면 도커를 재기동해도 데이터가 남아있어야 한다. 하지만 mariaDB 컨테이너에 볼륨을 설정해주었는데 도커 재기동시 테이블과 데이터가 모두 사라진다면? 볼륨이 재기능을 하지 못하는 상황으로 볼륨 마운트 위치를 잘못 설정한 것이 원인이다. 그럼 이 문제를 어떻게 해결할 수 있을지 알아보자. (문제상황) 볼륨이 작동하지 않는 상황 mariaDB 컨테이너를 올린 후에 컨테이너, 볼륨 리스..

[Airflow] docker-compose.yaml로 mariaDB 컨테이너 올리기 & DBeaver 연결하기

이번 시간에는 docker-compose.yaml 스크립트를 이용하여 mariaDB 컨테이너를 올리고 DBeaver 연결까지 하는 방법을 알아보도록 하자. [1단계 - mariaDB 컨테이너 올리기] 1. 컨테이너가 사용하고 있는 default network 확인 컨테이너들 간의 통신을 위해서 고정 IP를 할당해주고자 하며, 고정 IP를 할당할 때는 컨테이너가 사용하고 있는 default network와 겹치지 않아야 한다. 컨테이너 상세 정보를 확인(sudo docker inspect ${container_ID} )하여 현재 default network가 172.18.0.6인 것을 확인했고, 새롭게 만들 고정 IP는 default와 겹치지 않게 해야한다. # 컨테이너 리스트 확인 sudo docker ..

[Airflow] docker-compose.yaml에 대해 알아보기

docker-compose.yaml 이란 도커 컨테이너를 생성할 때 스크립트로 컨테이너 설정을 관리할 수 있는 도커 기능 중 하나이다. 이 파일은 key, value 형태로 구성되며 컨테이너들에게 설정하고 싶은 내용을 입력하게 된다. 컨테이너 관련 작업을 하다보면 docker-compose.yaml 파일을 자주 이용하게 되는데 이번 시간에는 이 파일의 구조에 대해 자세히 알아보도록 하자. * 도커를 올릴 때(sudo docker compose up -d ) docker-compose.yaml 스크립트 내용을 통해 컨테이너가 생성된다. 1. docker-compose.yaml 파일 구성 가장 기본적으로 아래와 같은 내용으로 구성되어 있고, 각 내용에 대해 필요한 설정값을 key: value 형태로 지정하게..

[Airflow] Ubuntu, Windows 서버 시간 동기화 해결 방법

지난 개발 과정에서 Ubuntu와 현재 시간이 일치하지 않아 NTP 설치를 통해 문제를 해결했었다. 하지만 Ubuntu 뿐만이 아니라 Windows 시간도 틀어지는 상황이 발생해서 이 문제를 해결하게 되었다. 현재 시간 기준으로 Windows는 일치하지만, Ubuntu 내에서의 시간만 틀어졌다면 아래 페이지를 참고하면 된다. 이 글은 Windows 자체 시간부터 모두 틀어졌을 때 문제를 해결한 방법이다. 2024.01.15 - [[기술공부]/Apache Airflow] - [Airflow] apt-get update 에러 해결 방법 (Release file is not valid yet) [Airflow] apt-get update 에러 해결 방법 (Release file is not valid yet)..

[Airflow] apt-get update 에러 해결 방법 (Release file is not valid yet)

[문제 상황] Airflow 이미지를 빌드하는 과정에서 아래와 같은 오류가 발생했다. 오류를 확인해보니 apt-get update 하는 명령에서 file is not valid yet (invalid for another 1h 21min 12s) 에러가 발생하고 있었다. 유사한 상황을 찾아보니 invalid for another 1h 21min 12s와 같이 시간 에러가 발생하는 것은 Ubuntu와 현재 시간과의 차이가 있는 것이 원인임을 확인했다. # 빌드하려했던 파일 내용 FROM apache/airflow:2.8.0 USER root RUN apt-get update \ && apt-get install -y --no-install-recommends \ gcc \ g++ \ libsasl2-dev..

[Airflow] Duplicate TaskIDFound exception 에러 해결 방법

[문제 상황] DAG 생성 후 아래와 같은 에러가 발생했고, 에러 메세지를 읽어보니 TaskID가 겹친다는 것을 확인했다. Error message : DAG Import Error with Duplicate TaskIDFound exception [해결 방법] Airflow task object 선언 시에 중복되었던 task_id를 찾아서, 서로 중복되지 않도록 id를 수정하여 문제를 해결할 수 있었다. # 수정전(t1_orange task_id 중복) # 수정전 코드 from airflow import DAG import pendulum import datetime from airflow.operators.bash import BashOperator with DAG( dag_id="dags_bash_..

Airflow 사전 준비 - Python 설치 및 venv 환경 설정

지난 시간에 Airflow 사전 준비를 위한 WSL Linux / Docker / Airflow 설치하는 과정을 진행해보았다. 이번에는 Airflow가 Python 언어로 개발되기 때문에 Python 설치 및 가상환경 venv를 설정하는 법을 정리해보겠다. [지난 시간 내용 참고] 2024.01.12 - [[기술공부]/Apache Airflow] - Airflow 사전 준비 - WSL Linux / Docker / Airflow 설치 Airflow 사전 준비 - WSL Linux / Docker / Airflow 설치 Apache Airflow는 데이터 추출, 가공, 저장 분석 등을 처리할 수 있는 Pipeline을 만들고 관리할 수 있는 하나의 솔루션이다. 실제 현업에서 많이 쓰이는 솔루션 중 하나이며..

반응형