AlloyDB AI 벡터 검색 개요

AlloyDB AI는 엔터프라이즈급 관계형 데이터베이스 내에 고성능 벡터 처리를 직접 통합하도록 설계된 PostgreSQL용 AlloyDB의 고급 확장 프로그램입니다. 이를 통해 개발자는 정형 및 비정형 형식 전반에 걸친 데이터의 의미를 이해하는 정교하고 지능적인 애플리케이션을 빌드할 수 있습니다. AlloyDB AI는 SQL 기능과 최첨단 벡터 검색 기술을 통합하여 데이터 관리 및 검색 증강 생성(RAG) 워크플로를 위한 단일 AI 지원 플랫폼을 제공하므로 별도의 벡터 데이터베이스를 배포하고 관리할 필요가 없습니다.

핵심 아키텍처 및 성능

AlloyDB는 벡터 기능을 위해 PostgreSQL의 pgvector 확장 프로그램을 사용합니다. 이 확장 프로그램은 인기 있는 HNSW 색인과 함께 구글 검색 연구를 바탕으로 수년에 걸쳐 개발된 최신식 벡터 검색 알고리즘인 확장 가능한 최근접 이웃(ScaNN) 색인을 지원합니다. PostgreSQL 환경에 대한 이러한 심층적인 통합으로 고속의 pgvector 호환 작업과 고급 시맨틱 쿼리가 가능합니다.

ScaNN 색인 성능

ScaNN 색인은 표준 PostgreSQL HNSW(Hierarchical Navigable Small Worlds) 색인보다 훨씬 빠른 속도를 제공하여 까다로운 AI 워크로드에 필요한 빠른 벡터 작업을 제공합니다.

작업 성능 향상(표준 PostgreSQL HNSW 색인 대비) 기능
색인 생성 최대 10배 더 빠름 병렬 색인 빌드
벡터 검색 쿼리 최대 4배 더 빠름 색인 자동 유지보수
필터링된 벡터 검색 쿼리 최대 10배 더 빠름 엔터프라이즈급 모니터링 가능성

적응형 필터링 및 쿼리 최적화

ScaNN 색인은 PostgreSQL 쿼리 플래너와 긴밀하게 통합되어 벡터 유사성과 표준 구조화된 메타데이터 필터가 모두 포함된 하이브리드 쿼리의 최적 성능을 보장합니다.

  • 적응형 필터링: 이 메커니즘은 필터, 조인, 벡터 색인을 동시에 사용할 때 최적의 성능을 보장합니다. 런타임에 쿼리 실행 통계를 관찰하고, 필터의 선택도를 학습하고, 필터 적용과 벡터 검색의 가장 효율적인 순서를 결정하도록 실행 계획을 자동으로 조정하는 방식으로 작동합니다.
  • 인라인 필터링: ScaNN 알고리즘에 특화된 인라인 필터링은 벡터 검색과 메타데이터 필터 평가를 함께 실행하는 최적화 전략입니다. 필터 기준을 충족하는 행의 간단한 목록(비트맵)을 만들기 위해 보조 PostgreSQL 색인(예: B-트리, GIN, GiST)을 활용합니다. 후속 벡터 스캔은 사전 필터링된 세트 내에 포함된 벡터의 거리만 계산하므로 특히 필터가 적당히 선택적인 경우 계산 오버헤드가 크게 줄어듭니다.

Vertex AI와의 원활한 통합

AlloyDB AI는 Vertex AI 생태계와의 기본 통합을 위해 설계되어, SQL을 사용하여 데이터베이스 내에서 직접 데이터를 변환하고 보강할 수 있습니다.

자동 임베딩 생성

이 플랫폼은 google_ml_integration 확장 프로그램을 사용하여 자동 임베딩 생성을 지원합니다. 이 기능을 사용하면 text-embedding-005와 같은 Vertex AI 모델을 사용하여 운영 데이터(텍스트, 이미지, 동영상)를 벡터 임베딩으로 변환할 수 있습니다.

  • 모델 등록: Vertex AI 모델(임베딩 및 생성형)은 google_ml.create_model 절차를 사용하여 데이터베이스 내에 등록됩니다.
  • 가상 열: embedding() 함수를 사용하여 생성된 열에 임베딩을 자동으로 생성하고 유지하여 벡터 데이터가 소스 열 데이터와 동기화된 상태를 유지할 수 있습니다.
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;

쿼리 및 생성형 AI 보강

벡터 임베딩이 저장되면 개발자는 표준 SQL에서 벡터 유사성 연산자(<=>)를 사용하여 정교한 시맨틱 검색을 실행할 수 있습니다. 또한 이러한 검색 결과를 google_ml.generate_content와 같은 함수를 사용하여 RAG 기반 쿼리 보강 및 사용자 친화적인 출력 생성을 위해 gemini-2.0-flash-001과 같은 생성형 AI 모델에 직접 전달할 수 있습니다.