Postgres/Extension

pgvector Extension의 설치 및 환경구성

moxie2ks 2025. 2. 16. 18:01
728x90
반응형

개요

PostgreSQL에서는 pgvector라는 PostgreSQL 확장(Extension)을 사용하여 벡터 데이터를 쉽게 저장하고 쿼리할 수 있게 해준다.

pgvector는 PostgreSQL에서 벡터 데이터를 저장하고 검색하는 데 유용한 확장이다. 이 확장을 사용하면 머신러닝 모델의 출력을 데이터베이스에 저장하고, 나중에 이 데이터를 기반으로 다양한 분석을 할 수 있다. 또한, 아래 그림처럼 Langchain과 pgvector를 사용하여 RAG 시스템을 구축할 수도 있다.

출처 :  https://jerry-ai.com/39

 

이렇듯, 데이터베이스에서 벡터 데이터를 다루는 게 점점 중요해지고 있다. 이 글에서는 이러한 벡터 데이터를 저장할 수 있는 여러가지 방법중에 pgvector를 사용하여 PostgreSQL 데이터베이스에서 활용하기 위한 pgvecor의 설치와 환경 구성 및 간단한 예제를 설명하고자 한다.

PostgreSQL 설치확인

터미널을 열고 아래 명령어를 통해 PostgreSQL 설치 여부를 확인한다.

$ postgres --version
$ pg_config

이 명령어로 PostgreSQL 버전이 제대로 출력되어야 한다. 특히, pg_config 바이너리가 반드시 존재해야 하며, 이를 실행하여 설치된 PostgreSQL의 config 정보를 확인할 수 있어야 한다.

만약 PostgreSQL이 설치가 되었지만 위 명령어 실행이 되지 않는다면, postgres, pg_config 바이너리가 있는 디렉토리를 PATH환경 변수에 등록한다.

export PATH=<path to pg binary dir>:$PATH

pgvector 설치

준비가 되었으면 pgvector를 설치해보자. 본 글에서는 github에서 소스코드를 가져와 직접 빌드하고, PostgreSQL에 설치해 보겠다.

$ git clone git@github.com:pgvector/pgvector.git
$ cd pgvector
$ make install

이 방법 외에도 Homebrew를 사용해서 아래 처럼 간단하게 설치할 수 있다. 터미널에서 아래의 명령어를 입력한다. 다만, Homebrew를 사용한다면 postgres@14 밖에 사용할 수 없다.

출처 : 비독개 [PGvector] PGvector란? Mac Python 개발환경 구성하기

pgvector 설정

설치가 끝나면 PostgreSQL에 pgvector를 추가해야 한다. PostgreSQL에 접속하고, 아래의 SQL 명령어를 실행한다.

$ psql -d postgres
postgres=# CREATE EXTENSION vector;

이러면 pgvector를 통해 벡터 데이터를 저장할 수 있는 환경이 구성 되었다.

예제

다음과 같은 SQL 명령어를 통해 벡터 데이터를 저장할 수 있다.

CREATE TABLE documents (
id serial PRIMARY KEY,
content text,
vector vector(3)  -- 여기서 3은 벡터의 차원 수
);

이렇게 하면 documents라는 테이블이 생성되고, 벡터 타입의 컬럼이 추가된다. 벡터의 차원 수는 원하는 대로 설정할 수 있다.

이제 아래 간단한 쿼리를 작성해서 데이터를 삽입해보자.

sql
INSERT INTO documents (content, vector) VALUES
('첫 번째 문서', '[0.1, 0.2, 0.3]'),
('두 번째 문서', '[0.4, 0.5, 0.6]');

이렇게 입력한 후에 아래 쿼리로 데이터를 조회해보면, 벡터 데이터가 잘 저장된 걸 확인할 수 있다.

SELECT * FROM documents;

결론

pgvector를 사용하면 데이터베이스에서 벡터 데이터를 효율적으로 저장하고 검색할 수 있다. 앞으로 데이터와 AI가 결합하는 시대에 맞춰 pgvector를 잘 활용한다면 더 다양한 방면으로 벡터 데이터를 활용할 수 있을 것으로 기대한다.

참고문헌

PostgreSQL PGVector 설치 및 사용하기(Feat. 벡터 데이터베이스(Vector Database) 구축)

[PGvector] PGvector란? Mac Python 개발환경 구성하기

Google Colab에 PostgreSQL 과 pgvector extension 설치하는 방법 (How to install PosgreSQL and pgvector in Google Colab?)

pgVector

728x90
반응형