벡터 DB 운영 가이드

벡터 DB는 문서를 AI가 검색할 수 있는 형태(벡터)로 바꿔 저장하는 곳입니다. 지식 인덱싱이 만든 검색 데이터가 여기에 저장되고, AI 문서 검색과 RAG 답변이 이 데이터를 사용합니다.

벡터 DB에 저장되는 데이터는 원본 문서에서 언제든 다시 만들 수 있는 파생 데이터입니다. 벡터 DB를 바꾸거나 초기화해도 워크스페이스의 원본 파일은 바뀌지 않습니다.


벡터 저장소 선택

AI DB 설정의 드라이버에서 선택합니다.

드라이버저장 위치컬렉션 준비권장 환경
Automatic (SQLite)SpaceBuilder 서버 내부 파일필요 없음기본값. 임베딩 모델을 선택하면 내장 SQLite 저장소를 사용합니다.
Local (SQLite)지정한 경로의 local_vectors.db 파일필요 없음벡터 약 5만 개 이하의 소규모 환경. 저장 경로를 직접 정하고 싶을 때 사용합니다.
Qdrant외부 Qdrant 서버자동 생성벡터가 많거나 검색 데이터를 별도 서버로 분리할 때
Milvus외부 Milvus 서버미리 만들어야 함이미 Milvus를 운영 중이거나 대규모 클러스터가 필요할 때

벡터 수는 문서 수가 아니라 문서 조각(청크) 수입니다. 문서는 형식에 따라 섹션, 페이지, 행 단위로 나눈 뒤 한국어 기준 약 700~1,000자 크기로 다시 나눠 저장합니다. 긴 문서 하나가 수십 개의 벡터가 될 수 있습니다.

외부 벡터 DB의 설치와 연결 방법은 각 문서를 참고하세요.

  • Qdrant 연결 — Docker 컨테이너 하나로 설치할 수 있어 가볍습니다. 별도 서버를 처음 구성한다면 Qdrant를 권장합니다.
  • Milvus 연결 — 메모리 8GB 이상의 별도 서버를 권장합니다. 컬렉션을 직접 만들어야 합니다.

Local (SQLite) 운영

Local 드라이버는 외부 서비스 없이 SQLite 파일 하나(local_vectors.db)로 벡터 검색을 운영합니다.

항목내용
저장 파일데이터 경로 아래의 local_vectors.db
데이터 경로기본값은 vectordb_local입니다. 상대 경로는 SpaceBuilder 설정 파일이 있는 폴더를 기준으로 합니다.
검색 방식저장된 벡터를 모두 비교하는 방식입니다. 1024차원 기준 1만 개에서 약 10ms가 걸리며, 데이터가 늘수록 검색 시간도 늘어납니다.
권장 규모벡터 약 5만 개 이하. 이를 넘으면 Qdrant 또는 Milvus로 전환을 권장합니다.

로컬 AI DB 운영 현황에는 local_vectors.db 사용량이 함께 표시됩니다.

항목의미
DB 파일 / WAL / SHMSQLite 본 파일과 쓰기 로그 파일의 크기
DB 내부 재사용 가능 공간데이터 삭제로 비었지만 아직 파일 크기에서 빠지지 않은 공간입니다. 새 데이터가 저장될 때 이 공간을 먼저 다시 사용합니다.

저장소나 임베딩 모델을 바꿀 때

아래 항목 중 하나라도 바꾸고 저장하면, SpaceBuilder가 변경을 감지해 원본 전체 재인덱싱을 자동으로 시작합니다.

  • 드라이버, 엔드포인트, 컬렉션, 데이터 경로
  • 임베딩 모델, 벡터 차원

전환은 다음 순서로 진행됩니다.

  1. 새 설정을 저장합니다.
  2. 인덱싱 스케줄러가 변경을 감지하고 원본 전체 재인덱싱을 요청합니다.
  3. 모든 문서를 새 설정으로 다시 임베딩해 새 저장소에 저장합니다.
  4. 모든 문서가 새 저장소에 저장되고 검색 검증까지 끝나면, 이전 벡터를 원래 저장돼 있던 곳에서 삭제합니다.

전환 중 검색

  • 변경을 감지하기 전까지는 벡터 검색을 잠시 멈추고 키워드 검색만 사용합니다.
  • 재인덱싱 중에는 새 저장소를 검색합니다. 아직 새 저장소로 옮겨지지 않은 문서는 벡터 검색 결과에 나오지 않을 수 있습니다.
  • 재인덱싱이 끝나면 새 설정으로 만든 벡터만 검색합니다.

문서가 많으면 재인덱싱에 오래 걸릴 수 있으므로, 사용자가 적은 시간대에 전환하세요.

전환할 때 주의할 점

  • 이전 외부 저장소는 정리가 끝날 때까지 켜두세요. Qdrant나 Milvus에서 다른 저장소로 옮겼다면, 이전 벡터 삭제가 끝날 때까지 이전 서버에 접속할 수 있어야 합니다. 접속할 수 없으면 정리 작업이 기존 저장 대상에 연결할 수 없음으로 계속 재시도됩니다.
  • 벡터 차원을 바꾸면 컬렉션도 새로 지정하세요. 이미 만들어진 Qdrant·Milvus 컬렉션은 차원을 바꿀 수 없습니다. 차원이 다른 컬렉션에는 저장할 수 없습니다.
  • 이전 설정으로 되돌려도 다시 인덱싱합니다. A → B → A로 되돌리면 처음 A의 데이터를 재사용하지 않고 새로 인덱싱합니다.

운영 상태 확인

AI DB 운영 현황

AI DB 설정 화면 상단에서 확인합니다.

항목의미
연결 상태벡터 저장소에 접속할 수 있는지 여부
벡터 스토어사용 중인 드라이버와 유형(내장형·서비스형)
데이터(엔티티) 수이 인스턴스(현재 SpaceBuilder)가 저장한 벡터 수. 같은 저장소를 쓰는 다른 인스턴스의 데이터는 포함하지 않습니다.
컬렉션 수Local은 1(첫 인덱싱 전에는 0), Qdrant·Milvus는 해당 서버의 전체 컬렉션 수
컬렉션 구성저장소의 차원과 거리 계산 방식이 설정과 맞는지 여부

컬렉션 구성에는 다음 중 하나가 표시됩니다.

표시의미
정상 (차원·거리 설정 일치)컬렉션을 사용할 수 있습니다.
아직 생성되지 않음 · 첫 인덱싱 때 자동으로 만들어집니다Qdrant 컬렉션이 아직 없습니다. 오류가 아니며, 첫 인덱싱 때 만들어집니다.
컬렉션이 없습니다 · Milvus에 컬렉션을 먼저 만들어야 합니다Milvus 컬렉션은 자동으로 만들어지지 않습니다. Milvus 연결을 참고해 만드세요.
컬렉션 설정 확인 필요차원이나 거리 계산 방식이 맞지 않습니다. 함께 표시되는 오류 내용을 확인하세요.

지식 인덱싱 화면

지식 인덱싱의 인덱싱 요약에서 진행 상황을 확인합니다.

항목의미
대기 갱신새로 만들거나 수정한 파일이 인덱싱을 기다리는 수
대기 임베딩글자 추출이 끝나 벡터로 바뀌기를 기다리는 수
임베딩 수SpaceBuilder가 기록한 현재 임베딩 수. 전환이나 재인덱싱 중에는 벡터 DB의 데이터(엔티티) 수와 다를 수 있습니다.
벡터 삭제 대기파일 삭제나 저장소 전환 뒤 원래 저장 위치에서 지워지기를 기다리는 벡터 수

이전 벡터 삭제에 실패하면 정리 재시도 목록에 저장 대상과 사유가 표시됩니다. 재시도 간격은 점점 늘어나며 최대 5분입니다.

사유의미와 조치
기존 저장 대상에 연결할 수 없음이전 벡터 DB 서버가 꺼져 있거나 접속할 수 없습니다. 이전 서버를 다시 켜면 자동으로 이어서 정리합니다.
원격 삭제 실패벡터 DB가 삭제 요청을 거부했습니다. 벡터 DB 서버 상태와 로그를 확인하세요.
이전 저장 요청 결과 확인 중결과가 확인되지 않은 저장 요청이 남아 있어 삭제 완료를 기다리는 중입니다. 대부분 자동으로 해소됩니다.
삭제 완료 기록 실패삭제는 됐지만 SpaceBuilder에 완료를 기록하지 못했습니다. 다음 주기에 다시 시도합니다.

재인덱싱과 초기화

AI DB 설정의 관리자 전용 영역에서 실행합니다. 두 작업 모두 원본 파일은 삭제하지 않습니다.

작업동작사용 시점
전체 데이터 다시 인덱싱모든 원본 문서를 다시 읽고 나누고 임베딩해서 검색 데이터를 새로 만듭니다.추출 규칙을 바꿨거나 검색 품질이 떨어졌을 때
초기화(벡터 삭제 후 재인덱싱)현재 저장소에서 이 인스턴스의 벡터만 지우고, 원본 전체 재인덱싱을 요청합니다.저장소 데이터가 꼬였거나 처음부터 다시 만들고 싶을 때
  • 두 작업 모두 요청을 접수하는 것이며, 완료는 지식 인덱싱에서 확인합니다.
  • 초기화하면 새 인덱스가 준비될 때까지 벡터 검색이 제한됩니다.
  • 같은 Qdrant·Milvus 컬렉션을 쓰는 다른 인스턴스의 데이터는 초기화해도 지워지지 않습니다.

여러 인스턴스가 벡터 DB 하나를 함께 쓸 때

인스턴스는 따로 설치해 운영하는 SpaceBuilder 하나를 말합니다. 인스턴스마다 고유한 인스턴스 격리 키가 있고, 저장하는 벡터에는 이 키가 함께 기록됩니다. 그래서 같은 컬렉션을 함께 써도 검색, 통계, 초기화는 각 인스턴스의 데이터 안에서만 이루어집니다.

다만 백업, 용량 관리, 삭제를 인스턴스별로 하려면 컬렉션을 인스턴스마다 따로 쓰는 것을 권장합니다. 기본 컬렉션 이름(knowledge_vectors)을 쓰면 설정 화면에 경고와 함께 이 인스턴스의 권장 이름(setfn_knowledge_...)이 표시됩니다.

백업과 복원

지식 데이터 백업은 SpaceBuilder 서버를 멈춘 뒤 명령어로 실행합니다. 서버가 실행 중이면 백업과 복원이 거부됩니다. 복원은 같은 인스턴스, 같은 홈 폴더에서 만든 백업만 할 수 있습니다.

# 백업 (대상 폴더는 아직 없는 새 경로여야 합니다)
~/SetFnSpaceBuilder admin knowledge-backup <백업 폴더>

# 복원
~/SetFnSpaceBuilder admin knowledge-restore <백업 폴더>
대상백업 포함 여부
지식 인덱싱 기록(팀·개인 공간)포함
Local의 local_vectors.dbSpaceBuilder 홈 또는 설정 폴더 안에 있을 때만 포함
Qdrant·Milvus의 벡터포함하지 않음 (원본에서 다시 만드는 파생 데이터)

복원 후에는 서버를 시작하고 AI DB 설정에서 전체 데이터 다시 인덱싱을 실행하세요. 백업 이후 외부 벡터 DB에 저장됐던 벡터는 복원 과정에서 정리 대상으로 넘어가, 서버 시작 후 원래 저장 위치에서 자동으로 삭제됩니다.

문제 해결

증상확인할 내용
연결 상태가 연결 안됨엔드포인트 주소와 포트, 방화벽, 벡터 DB 서버 실행 여부를 확인하세요.
컬렉션 설정 확인 필요와 collection dimension is ..., expected ...컬렉션 차원과 설정한 벡터 차원이 다릅니다. 새 컬렉션 이름을 지정하세요.
컬렉션 설정 확인 필요와 unnamed dense vector 관련 오류Qdrant 컬렉션을 Hybrid 또는 named vector로 만들었습니다. Qdrant 연결을 참고하세요.
데이터(엔티티) 수가 늘지 않음지식 인덱싱이 켜져 있는지, 허용 시간대 밖이 아닌지, 시작 전 설정 확인이 모두 완료됐는지 확인하세요.
시작 전 설정 확인의 AI 벡터 DB에 경고 표시벡터 DB 연결 오류, 컬렉션 설정 불일치, 또는 Milvus 컬렉션 없음입니다. 연결 오류와 설정 불일치는 카드에 마우스를 올리면 자세한 오류가 보입니다. Milvus 컬렉션 없음에는 따로 표시되는 오류 내용이 없으니 Milvus 연결을 참고해 컬렉션을 만드세요. 카드를 누르면 AI DB 설정으로 이동합니다.
벡터 DB에 인증이 걸려 있어 연결 안됨AI DB 설정에서 API 키(Qdrant·Milvus) 또는 사용자 이름과 비밀번호(Milvus)를 입력하고 저장하세요.
정리 재시도가 계속 쌓임이전 저장소에 접속할 수 있는지 확인하세요. 운영 상태 확인의 사유별 조치를 참고하세요.

관련 문서