Hologres支持向量计算,可以使用向量数据表示非结构化数据的特征,通过高性能向量检索实现对非结构化数据的快速查询。本文为您介绍Hologres中向量计算的特点及优势。
背景信息
Proxima是一款来自于阿里达摩院的实现向量近邻搜索的高性能软件库,相比于Faiss等开源的同类产品,Proxima在稳定性、性能等方面都更为出色,能够提供业内性能和效果卓越的基础方法模块,支持图像、视频、人脸等各种应用场景。
Hologres与Proxima深度整合,在向量计算方面的优势如下:
向量计算功能强大:
时效性:支持向量数据实时写入、实时更新,数据写入即可查。
查询能力:支持向量检索与其他复杂过滤条件融合查询,支持同时使用向量索引和其他结构化索引。
高性能:支持超高QPS向量数据实时写入,支持高效索引构建,支持高QPS、低延时向量检索。
低成本:通过Float2类型进行向量索引数据压缩,降低向量存储成本。
实时数仓能力与向量计算有机结合:
易用性:支持通过标准SQL语法创建并使用Proxima,简单易用。
事务性:支持多条DDL事务,支持多条DML混合事务。
Binlog:支持Binlog,可以实现对向量数据变更事件的订阅。
多场景:支持行存、列存、行列共存三种表存储格式,可以支持对一张向量表同时进行高性能OLAP分析、Key/Value点查以及向量查询。
企业级高可用能力与向量计算有机结合:
主从实例架构:支持共享存储的一主多从架构,实例之间存储资源共享、计算资源隔离,实现向量计算业务的高可用(读写分离、读读分离),详情请参见主从实例读写分离部署(共享存储)。
计算组实例架构:支持共享存储的多计算组架构,相比于主从架构,可以进一步支持写写分离,详情请参见计算组实例架构。
产品生态与向量计算有机结合:
无缝对接MaxCompute,支持通过外部表加速查询MaxCompute向量数据,支持MaxCompute向量数据高性能批量写入。
原生集成Flink,支持海量向量数据实时写入与更新,支持源表、结果表、维度表多种场景,支持向量数据多流合并等复杂操作。
深度集成DataWorks,支持海量数据源向量数据集成,支持数据资产、数据血缘、数据服务等企业级能力。
Proxima简介
名词解释
特征向量:向量是一种将实体和应用代数化的一种表示,其将实体间的关系抽象成向量空间中的距离,而距离的远近代表着形似程度。例如:身高、年龄、性别、地域。
向量检索:在特征向量数据集合中进行快速搜索和匹配的方法,常涉及到的问题有KNN和RNN。
KNN(K-Nearest Neighbor):查找离查询点最近的K个点。
RNN(Radius Nearest Neighbor):查找查询点某半径范围内的所有点。
Proxima的基本模型
Proxima的基本模型分为索引构建和在线检索两部分:
索引构建:从原始向量数据中构建出相关索引文件,并传予在线检索模块加载使用。支持多种Brute Force、KD-Tree、Product Quantization、KNN Graph、LSH等。
在线检索:加载完索引文件后,为向量检索提供查询服务。在聚类后的数据集上进行KNN和RNN搜索,用户设定检索过程中的参数。
Proxima与Hologres概念对比
Proxima概念 | Hologres中的概念 |
特征向量 | 数组类型Array,仅支持固定长度数组 |
向量索引 | 一种特殊类型的Index,当前仅支持KNN/RNN的Graph索引 |
距离计算 |
|
KNN查询 | order by distance(x, [x1, x2]) asc limit k |
RNN查询 | where distance(x, [x1,x2]) < r 说明 当前RNN查询不支持Proxima索引。 |
相关文档
向量计算在Hologres中的使用方法请参见向量计算使用指南。
若您想了解向量的高性能检索对Hologres实例内存的规格要求,请参见向量计算实例规格推荐。