PolarDB 湖库一体支持直接分析与检索对象存储 OSS 上的 Lance 格式数据集,无需预先将整份数据导入数据库。应用可以查询数据集中的结构化属性、对象引用、特征向量和文本,按需执行分析查询、向量检索、全文检索与混合检索,并可关联 PolarDB 库内业务数据,减少多套访问接口集成和应用侧结果拼接。
功能简介
分析查询:结合 Lance 的随机访问与列式扫描能力,支持条件筛选、聚合、排序等分析查询,并可关联 PolarDB 库内业务数据,适用于模型训练样本筛选、探索性数据分析和 BI 报表等场景。
向量检索:利用 Lance 的向量数据存储与索引能力,支持精确和近似向量最近邻(KNN)检索,可用于以图搜图、以文搜图等多模态内容检索,以及具身智能数据分析中的相似场景检索等业务。
全文检索:利用 Lance 的原生全文索引能力,支持文本字段的自然语言关键词检索和相关性排序,可用于知识库问答场景中技术文档、知识片段和日志等文本检索。
混合检索:融合向量与全文两路候选结果,综合语义相似度和文本相关性排序,在知识库问答、智能体上下文等应用中召回结果。
这些能力可支撑 BI 报表、多模态内容搜索、知识库问答、智能体上下文获取,以及具身智能与物理 AI 数据分析等业务场景。
接入架构
统一 SQL 入口:应用通过兼容 MySQL 协议的连接方式向 PolarDB 提交 SQL,由 PolarDB 承接查询与检索任务。
数据源连接与外表映射:读写节点(RW)负责创建和维护数据源连接(SERVER),保存 Lance 数据源的访问方式、地址和凭据。创建外表时引用数据源连接,指定目标数据集,并建立字段映射。
远端数据读取与查询执行:读写节点(RW)和只读节点(RO)根据外表及数据源配置定位 Lance 数据集,读取 OSS 上的元信息、数据文件及适用索引,执行查询与检索。需要结合库内业务数据分析时,可在同一条 SQL 中关联 Lance 外表与 PolarDB 库内业务表。
Lance 数据访问架构如下图所示:
快速开始
本节介绍如何将已有的 Lance 数据集映射为外表并执行查询。文中的 example_* 和 YOUR_* 为占位符,需替换为实际内容。本节以 Direct OSS 接入为例。Directory Namespace 和 REST Namespace 使用数据源管理中对应接入方式的连接配置与表标识。
开通功能
请先根据使用前提与功能限制中的说明开通功能,并确认允许读写节点(RW)读取 Lance 数据。
连接数据库
使用 MySQL 客户端,使用读写节点(RW)的主地址连接已有数据库。
创建数据源连接
使用
CREATE SERVER创建example_server,数据源的具体接入方式参见数据源管理。CREATE SERVER example_server FOREIGN DATA WRAPPER lance OPTIONS (EXTRA_SERVER_INFO 'YOUR_CONNECTION_OPTIONS_JSON');创建外表映射
以下语句引用数据源连接
example_server,使用 Direct OSS 的数据集路径example_table.lance创建本地映射。使用其他接入方式时,按对应接入文档替换完整的CONNECTION地址。CREATE FOREIGN TABLE example_table FROM CONNECTION 'server://example_server/example_table.lance';查询数据
以下语句设置使用原生 MySQL 行式执行,并通过
SELECT语句发起查询。SET SESSION use_imci_engine = OFF; SELECT * FROM example_table LIMIT 10;