AlloyDB AI Vector Search 概览

AlloyDB AI 是 AlloyDB for PostgreSQL 的高级扩展程序,旨在将高性能向量处理直接集成到企业级关系型数据库中。借助它,开发者可以构建复杂的智能应用,这些应用能够理解结构化和非结构化格式的数据的语义。AlloyDB AI 将 SQL 功能与先进的向量搜索技术相结合,提供了一个单一的 AI 就绪平台,用于数据管理和检索增强生成 (RAG) 工作流,无需部署和管理单独的向量数据库。

核心架构和性能

AlloyDB 使用 PostgreSQL 的 pgvector 扩展程序来实现向量功能。它支持热门的 HNSW 索引,以及可扩容最近邻 (ScaNN) 索引,这是一种先进的向量搜索算法,源自多年的 Google 搜索研究。这种与 PostgreSQL 环境的深度集成可实现高速、与 pgvector 兼容的操作和高级语义查询。

ScaNN 索引性能

与标准 PostgreSQL HNSW(分层可导航小世界)索引相比,ScaNN 索引在速度方面具有显著优势,可提供要求苛刻的 AI 工作负载所需的快速向量运算:

操作 性能增幅(与标准 PostgreSQL HNSW 索引相比) 特性
索引创建 速度高达原来的 5 倍 并行索引构建
Vector Search 查询 速度高达原来的 5 倍 索引自动维护
过滤式向量搜索查询 速度高达原来的 5 倍 企业级可观测性

自适应过滤和查询优化

ScaNN 索引与 PostgreSQL 查询规划器深度集成,可确保涉及向量相似性和标准结构化元数据过滤器的混合查询获得最佳性能。

  • 自适应过滤:此机制可确保在同时使用过滤条件、联接和向量索引时获得最佳性能。其工作原理是在运行时观察查询执行统计信息,了解过滤条件的选择性,并自适应地调整执行计划,以确定过滤条件应用和向量搜索的最有效顺序。
  • 内嵌过滤:内嵌过滤是 ScaNN 算法特有的一种优化策略,可同时执行向量搜索和元数据过滤条件评估。它利用辅助 PostgreSQL 索引(例如 B 树、GIN 或 GiST)创建满足过滤条件的行简短列表(位图)。后续的向量扫描仅计算预过滤集中包含的向量的距离,从而大幅减少计算开销,尤其是在过滤条件具有中等选择性时。

与 Vertex AI 无缝集成

AlloyDB AI 经过精心设计,可与 Vertex AI 生态系统进行内置集成,从而能够使用 SQL 直接在数据库中转换和丰富数据。

自动生成嵌入内容

该平台支持使用 google_ml_integration 扩展程序自动生成嵌入内容。借助此功能,您可以使用 Vertex AI 模型(例如 text-embedding-005)将运营数据(文本、图片和视频)转换为向量嵌入。

  • 模型注册:使用 google_ml.create_model 过程在数据库中注册 Vertex AI 模型(嵌入模型和生成式模型)。
  • 虚拟列:可以使用 embedding() 函数自动生成嵌入并将其持久保存在生成的列中,从而确保向量数据与源列数据保持同步:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;

查询和生成式 AI 扩充

存储向量嵌入后,开发者可以使用标准 SQL 中的向量相似性运算符 (<=>) 执行复杂的语义搜索。此外,这些搜索的结果可以直接传递给生成式 AI 模型(例如 gemini-2.0-flash-001),使用 google_ml.generate_content 等函数进行基于 RAG 的查询丰富和用户友好型输出生成。