본문 바로가기
AI

PostgreSQL에서 vectorData를 저장하는법은?

by Lcoding 2025. 7. 3.
반응형

안녕하세요.

 

오늘은 PostgreSQL에서 vectorData를 저장하는법에 대하여 알아보겠습니다.

 

 

llm 관련하여 프로젝트를 하다보면 로컬서버에서 PostgreSQL에 vector디비를 사용해야하는 상황이 있을 수 있습니다.

 

그럴경우 아래와 같은 명령어로 PostgreSQL에  vector를 EXTENSION 해야하는데요.

 

CREATE EXTENSION IF NOT EXISTS vector;


이렇게 벡터 확장프로그램을 추가해주면 아래와 같은 에러가 발생합니다.

 

ERROR:  "vector" 이름의 확장 모듈을 사용할 수 없습니다
"C:/Program Files/PostgreSQL/16/share/extension/vector.control" 확장 모듈 제어 파일 열기 실패: No such file or directory. 

오류:  "vector" 이름의 확장 모듈을 사용할 수 없습니다
SQL state: 0A000
Detail: "C:/Program Files/PostgreSQL/16/share/extension/vector.control" 확장 모듈 제어 파일 열기 실패: No such file or directory.
Hint: 해당 확장 모듈은 PostgreSQL 시작 전에 먼저 설치 되어 있어야합니다.

 

PostgreSQL의 경우 pgvector 확장을 별도로 설치해주어야합니다.

확장프로그램 설치에 앞서 사전 작업부터 알아보겠습니다.

1. Visual Studio 설치 (C++ 지원 포함)
  - 설치할 때 “C++를 사용한 데스크톱 개발” 워크로드 체크 필수


2. Git 설치
 - https://git-scm.com/downloads

3. x64 Native Tools Command Prompt for VS 실행 (관리자 권한으로)

위와 같이 진행 후에 PostgreSQL 설치된 버전 기준으로 아래 경로에 설치되었다고 가정하고 Command창에 입력해줍니다.

 

set "PGROOT=C:\Program Files\PostgreSQL\16"
cd %TEMP%
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
nmake /F Makefile.win
nmake /F Makefile.win install

 


그러면 C:\Users\PC계정명\AppData\Local\Temp\pgvector 경로에 vector.dll / vector.control 이 생성되고, 
하위 sql 디렉토리안에 vector.sql를 포함한 여러 버전 파일들이 생성되어 있을 것 입니다.

vector.dll 파일은 C:\Program Files\PostgreSQL\16\lib 경로에 붙여넣고
vector.control 파일과 sql디렉토리안에 vector.sql를 포함한 나머지 파일들은

C:\Program Files\PostgreSQL\16\share\extension\ 경로에 붙여넣습니다.

 

위 작업을 마쳤으면 postgreSQL 재시작후에 아래 대로 쿼리를 실행해주면됩니다.

CREATE EXTENSION IF NOT EXISTS vector;

#참고용
CREATE TABLE documents (
  id SERIAL PRIMARY KEY,
  content TEXT,
  embedding VECTOR(3072) -- text-embedding-3-large 기준
);



감사합니다.

 

 

반응형

loading