Data Engineering/Data Infra & Process 20

[8편] pgvector를 활용한 대규모 AI 검색 시스템 구축 & 운영 전략

📌 개요 이 글에서는 PostgreSQL pgvector를 효과적으로 활용하여 AI 검색을 구축하고 운영하는 전략을 다룹니다.특히, 대규모 벡터 데이터를 효과적으로 저장 & 검색하는 DB 설계, 벡터 데이터의 백업 및 최적화, 성능 개선 기법 등을 다룹니다. ✅ pgvector를 AI 검색 시스템에 적용하는 실제 사례✅ 대규모 벡터 데이터를 효과적으로 저장 & 검색하는 DB 설계✅ 벡터 데이터 백업, 모니터링, 성능 최적화 방법✅ 클라우드 환경(AWS, GCP, Azure)에서 pgvector 운영 고려 사항 🚀 1. AI 검색 시스템에서 pgvector 활용 사례 🔹 1️⃣ 문서 검색 시스템 (AI RAG)  ✅ 사용 사례: 대규모 문서에서 AI가 적절한 문장을 찾아 응답하는 Retrieval-A..

[7편] FastAPI 벡터 검색 성능 최적화 (pgvector 인덱스 및 Auto Scaling 적용)

📌 개요 이 글에서는 FastAPI + PostgreSQL + pgvector를 활용한 대규모 벡터 검색 성능 최적화 방법을 다룹니다.✅ pgvector의 HNSW(Hierarchical Navigable Small World) 인덱스를 활용한 검색 속도 개선✅ 대량 벡터 데이터 처리 및 검색 최적화✅ Kubernetes에서 FastAPI의 Auto Scaling 적용 🚀 1. pgvector의 성능 최적화를 위한 HNSW 인덱스 적용 pgvector는 벡터 검색을 최적화하기 위해 L2 distance (유클리드 거리), Cosine similarity, Inner product 등의 방법을 지원합니다.HNSW(Hierarchical Navigable Small World) 인덱스를 활용하면 대규모 ..

[6편] FastAPI 벡터 검색 API를 Kubernetes에 배포

📌 개요 이 글에서는 FastAPI 벡터 검색 API를 Docker 컨테이너로 패키징하고, Kubernetes에 배포하는 방법을 설명합니다.✅ FastAPI를 Docker로 컨테이너화✅ Kubernetes에서 PostgreSQL과 연동하여 FastAPI 실행✅ Helm & ArgoCD를 활용한 GitOps 기반 배포 🚀 1. FastAPI Docker 컨테이너화 FastAPI 애플리케이션을 Kubernetes에서 실행하려면 Docker 컨테이너로 패키징해야 합니다. 1️⃣ Dockerfile 생성 📌 프로젝트 디렉터리 (fastapi-vector-search/)에 Dockerfile 추가# Base imageFROM python:3.9# Set working directoryWORKDIR /app#..

[5편] FastAPI와 PostgreSQL을 활용한 벡터 검색 API 구축

📌 개요 이 글에서는 FastAPI + PostgreSQL + pgvector를 활용하여 벡터 검색 API를 구축하는 방법을 설명합니다.✅ pgvector를 사용하여 벡터 데이터 저장✅ FastAPI를 이용해 REST API로 벡터 검색 기능 구현✅ AI 모델을 활용하여 텍스트 임베딩을 벡터로 변환 후 저장 🚀 1. FastAPI 프로젝트 설정 먼저, FastAPI 프로젝트를 생성하고 필요한 패키지를 설치합니다. 1️⃣ FastAPI 프로젝트 디렉터리 생성mkdir fastapi-vector-searchcd fastapi-vector-search 2️⃣ Python 가상환경 설정 (선택)python3 -m venv venvsource venv/bin/activate # macOS/Linuxvenv\..

[4편] PostgreSQL을 Vector Database로 활용하기 (pgvector 설정 및 사용)

이 글에서는 PostgreSQL을 벡터 데이터베이스(Vector Database)로 활용하는 방법을 설명합니다.✅ pgvector 확장을 설치하고 활성화하는 방법✅ 벡터 데이터를 저장하고 검색하는 방법✅ 최근접 이웃(Nearest Neighbor) 검색을 수행하는 SQL 쿼리 활용 🚀 1. pgvector 확장 설치 및 활성화 1️⃣ PostgreSQL에서 pgvector 확장 설치 Helm의 values.yaml을 수정하여 PostgreSQL이 실행될 때 pgvector 확장이 활성화되도록 설정할 수 있습니다. 📌 values.yaml에 pgvector 확장 추가primary: persistence: enabled: true size: 8Gi service: type: LoadB..

[3편] PostgreSQL 사용자(Role) 추가 및 수동 관리 (SQL 쿼리 방식)

📌 개요 이 글에서는 Helm과 ArgoCD로 PostgreSQL을 배포한 후, SQL을 직접 실행하여 특정 사용자(Role) 및 데이터베이스를 생성하고 관리하는 방법을 설명합니다.Helm의 values.yaml을 사용하지 않고, postgres 계정으로 직접 psql을 실행하여 사용자 및 권한을 설정하는 방법을 다룹니다. 🚀 1. PostgreSQL 접속 및 기본 설정 확인 1️⃣ PostgreSQL Pod에 접속 먼저 PostgreSQL Pod 내부에서 psql을 실행합니다.kubectl exec -it $(kubectl get pod -n database -l app.kubernetes.io/name=postgresql -o jsonpath="{.items[0].metadata.name}") -..

[2편] Helm values.yaml을 활용한 PostgreSQL 사용자(Role) 추가 및 관리

📌 개요 이 글에서는 Helm의 values.yaml을 활용하여 PostgreSQL의 특정 사용자(Role)와 데이터베이스를 자동 생성하는 방법을 설명합니다.Helm Chart 배포 시 사용자 및 데이터베이스를 설정하면, 별도로 SQL을 실행하지 않아도 자동으로 PostgreSQL 인스턴스에 적용됩니다. 🚀 1. PostgreSQL 사용자 및 데이터베이스 자동 추가 (values.yaml 설정) Helm의 values.yaml을 수정하면 데이터베이스, 사용자 계정(Role), 초기 데이터 등을 자동으로 설정할 수 있습니다. 1️⃣ values.yaml 업데이트 (사용자 및 데이터베이스 자동 생성) 아래 설정을 values.yaml에 추가하여, PostgreSQL을 배포할 때 adminuser 사용자와..

[1편] Kubernetes에 Helm & ArgoCD를 사용한 PostgreSQL 설치

📝 개요 이 글에서는 Helm과 ArgoCD를 활용하여 PostgreSQL을 Kubernetes에 배포하는 방법을 설명합니다.GitOps 기반의 배포 전략을 사용하여 PostgreSQL을 쉽게 관리할 수 있도록 ArgoCD를 활용합니다. 📌 1. Helm을 사용하여 PostgreSQL 설치 Helm은 Kubernetes 애플리케이션을 패키징하고 배포하는 도구입니다.PostgreSQL의 경우, Bitnami Helm Chart를 사용하여 배포할 수 있습니다. 1️⃣ 네임스페이스 생성 먼저 database 네임스페이스를 생성합니다.kubectl create namespace database 2️⃣ Helm Chart를 사용한 PostgreSQL 설치 다음 명령어를 실행하여 Bitnami PostgreSQ..

Kubernetes 환경에서 MySQL Helm Chart 설치하기

✅ 개요Kubernetes 환경에서 MySQL을 실행하려면 Helm Chart를 활용하는 것이 가장 효율적인 방법입니다. 이 글에서는 Bitnami MySQL Helm Chart를 사용하여 MySQL을 배포하는 방법을 설명합니다. 특히, Airflow 네임스페이스에 MySQL을 배포하고 비밀번호를 airflow로 설정하는 과정을 다르립니다.✅ 1. Helm 저장소 추가 및 업데이트먼저, Bitnami Helm Chart 저장소를 추가하고 최신 상황으로 업데이트합니다.helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update✅ 2. MySQL Helm Chart 설치다음 명령어를 실행하여 MySQL을 airflow 네임스페이스에 설치합..

ETL(Extract, Transform, Load)이란? 데이터 처리의 핵심 개념 완벽 정리!

오늘날 데이터는 기업의 핵심 자산입니다. 하지만 원본 데이터(raw data)는 다양한 소스에서 생성되며, 그대로 사용할 수 없는 경우가 많습니다. 이를 해결하기 위해 ETL(Extract, Transform, Load) 프로세스가 사용됩니다. 이 글에서는 ETL이 무엇인지, 왜 중요한지, 그리고 실무에서 어떻게 활용되는지 자세히 알아보겠습니다.  📌 1. ETL이란? ETL은 Extract(추출) → Transform(변환) → Load(적재) 의 약자로, 데이터를 가져와서 가공한 후 원하는 데이터 저장소에 저장하는 과정을 의미합니다. 🔹 ETL의 기본 개념 ✔ Extract (추출): 다양한 원천 시스템에서 데이터를 가져옴✔ Transform (변환): 데이터를 정제, 가공, 변환하여 원하는 형식..

728x90