벡터 DB 스키마 설계는 벡터 임베딩을 효율적으로 저장하고 검색하는 구조를 계획하는 과정 데이터 특성과 Application의 요구사항을 고려하여 수행
1. 데이터 구조 계획
데이터 유형 결정
벡터 차원 정의
2. 필드 정의
벡터 필드
image_vector
, summary_dense_vector
등메타데이터 필드
summary
, publish_ts
등3. 확장성 및 성능
수평 확장 고려
부하 분산
4. 인덱싱 전략
인덱스 유형
메트릭 유형
5. 데이터 저장 및 검색
저장 방식
메모리 기반 저장 또는 디스크 기반 저장
검색 최적화
구분 | 설명 |
---|---|
벡터 필드 | - 고차원 벡터를 저장하는 필드 (예: 이미지나 텍스트의 임베딩 벡터 저장) - 예시: image_vector , text_embedding |
메타데이터 필드 | - ID 필드: 각 벡터의 고유 식별자 저장 (예: id , article_id )- 텍스트 필드: 관련 텍스트 데이터 저장 (예: title , summary )- 타임스탬프 필드: 생성/수정 시간 저장 (예: publish_ts )- 기타 메타데이터: 추가 정보 저장 (예: author_info , category ) |
인덱싱 | - 벡터 인덱스: 벡터 필드에 대한 인덱스 생성으로 효율적 검색 지원 (예: HNSW, IVF, PQ 등) - 메타데이터 인덱스: 메타데이터 필드에 인덱스 생성 및 필터링·검색 기능 지원 |
collection 안에 원본 데이터가 존재
상황, 데이터형태 별로 VectorDB의 분할 저장을 결정할 수 있음
→ 검색 속도 & 정확도
Vector DB에서 Collection을 효율적으로 관리하기 위한 전략
단일 Collection 관리
다중 Collection 분리
분리 기준 설정
상황별 판단
장점
단점
복합 표현의 한계: 문서와 동영상의 정보를 하나의 벡터에 결합하는 과정에서 정보 손실 발생 가능.
벡터 크기 증가: 두 벡터를 결합하며 벡터 크기가 커지고, 이에 따라 저장공간과 계산 비용이 증가.
기준 | 설명 |
---|---|
데이터의 크기와 스케일링 | 대용량 데이터를 다룰 때는 Collection을 적절하게 나누어 DB의 성능을 유지하고 스케일링을 용이하게 해야 한다. |
데이터의 접근 패턴 | 데이터에 접근하는 패턴을 분석하여, 자주 접근하는 데이터끼리 묶어서 Collection을 설계하는 것이 효과적이다. |
데이터의 생명 주기 | 데이터의 라이프사이클에 따라 Collection을 나누면, 오래된 데이터를 쉽게 아카이브하거나 삭제할 수 있다. |
데이터의 속성 | 비슷한 속성을 가진 데이터끼리 묶어 관리하면 검색과 인덱싱이 효율적이다. |
운영 및 관리의 용이성 | Collection의 수가 너무 많으면 관리가 복잡해질 수 있으므로, 관리의 용이성을 고려해 적절한 단위로 나누어야 한다. |
날짜 기준으로 나누기
주제 또는 카테고리 기준으로 나누기
날짜와 주제 기준을 혼합한 기준으로 나누기
멀티 Collection 유사도 검색을 위해서는 벡터 공간의 일관성 필요
벡터 데이터베이스에서 서로 다른 데이터 항목들이 동일한 차원 수와 동일한 의미적 해석을 갖도록 변환된 공간
벡터 간 유사도를 정확하게 계산하고 비교할 수 있도록 함
서로 다른 Collection의 벡터들도 동일한 임베딩 스페이스에 있어야 함
동일한 차원 수: 모든 벡터는 동일한 차원 수를 가져야 함
동일한 임베딩 모델: 동일한 임베딩 모델을 사용하여 데이터를 벡터화해야 함
동일한 처리 방식: 데이터 전처리와 임베딩 생성 과정이 일관되어야 함
하나의 문서를 다양한 방식(Sparse+Dense)의 벡터로 저장 → 하이브리드 검색(Hybrid Retrieval) 가능
다양한 인덱싱 전략 사용
복합 검색 기능
확장성
항목 | Sparse Vector | Dense Vector |
---|---|---|
대부분의 값 | 0 | 0이 아님 |
크기 | 고차원 | 상대적으로 저차원 |
계산 효율 | 일부 계산에서 빠름 | 계산량 많지만 의미가 풍부함 |
사용 예 | One-hot, BoW, TF-IDF | Word2Vec, BERT 임베딩 |
유사도 측정 | 비효율적일 수 있음 | 코사인 유사도 등 효율적 |