본문 바로가기

Data Engineering/DB

(2)
[DB] 벡터 DB: Milvus 사용 후기 프로젝트를 하는 중 shape matching 과정 중에 벡터 검색이 필요한데, 이를 빠르게 해야 할 필요가 있었다. 그 중 고민이 되었던 것이 벡터 DB의 선정 과정이었다. 따라서 PostgreSQL의 pgvector 익스텐션과 Milvus의 사용 둘 중 하나를 고민했다(사실 엄밀히 말하면 그 정도의 대규모 데이터는 필요하지 않지만 나름대로 고려해보았다) 1. 충분한 래퍼런스를 찾을 수 있는가?- Milvus는 커뮤니티가 크다.- pgvector 또한 커뮤니티가 크다(한국어 자료가 많다).  pgvector > Milvus (1 : 0) 2. 확장 가능성- Milvus는 클러스터 단위로 확장이 가능하고, Query 노드와 Index 노드, 데이터 노드 등을 따로 확장시킬 수 있다.- pgvector는 ..
[DB] 프로파일링과 쿼리 분석 (feat: MySQL) 안녕하세요. 이번 글은 아래와 같은 클라우드 아키텍처로 서비스를 배포하는 과정 중 생긴 일입니다.  BERT 모델을 Cloud Run으로 배포한 이후, 추론한 결과를 Flask와 SQLAlchemy를 이용하여 BATCH UPSERT로 처리하는 중이었습니다. 그런데, CPU 사용량에 과부하가 와 서버가 터지고, DB에 데이터 삽입에 너무 오랜 시간이 걸렸습니다. 따라서 문제점을 여러 곳을 진단하다 아래와 같이 문제를 해결했습니다. (문제점 진단은 이후에 제대로 포스팅을 하겠습니다)  1. 프로파일링 배웠던 @contextmanager 문법으로 cpu와 메모리 tracking을 로컬에서 진행하였습니다.  [Python] 클로저, 데코레이터, wraps, contextmanager안녕하세요. 오늘은 클로저와 ..