Hologres支持向量计算,可以使用向量数据表示非结构化数据的特征,通过高性能向量检索实现对非结构化数据的快速查询。本文为您介绍Hologres中向量计算的特点及优势。
背景信息
Hologres是兼容PostgreSQL协议的一站式实时数仓引擎,V4.0版本前,通过集成阿里达摩院自研向量近邻搜索库Proxima,支持Graph索引,提供稳定、高性能的向量计算服务。
Hologres V4.0版本全面升级向量检索能力,支持HGraph向量检索算法,有如下能力增强:
支持内存+磁盘混合索引,可针对性能、精度的不同需求场景定制查询策略。
可支持千亿级超大规模向量数据写入与召回。
HGraph向量检索算法对MPP架构上表现更优,读写性能均有显著提升。
Hologres在向量计算方面的优势如下:
向量计算功能强大:
时效性:支持向量数据实时写入、实时更新,数据写入即可查。
查询能力:支持向量检索与其他复杂过滤条件融合查询,支持同时使用向量索引和其他结构化索引。
高性能:支持超高QPS向量数据实时写入,支持高效索引构建,支持高QPS、低延时向量检索。
低成本:通过Float2类型进行向量索引数据压缩,降低向量存储成本。
实时数仓能力与向量计算有机结合:
易用性:支持通过标准SQL语法创建并使用Proxima,简单易用。
事务性:支持多条DDL事务,支持多条DML混合事务。
Binlog:支持Binlog,可以实现对向量数据变更事件的订阅。
多场景:支持行存、列存、行列共存三种表存储格式,可以支持对一张向量表同时进行高性能OLAP分析、Key/Value点查以及向量查询。
企业级高可用能力与向量计算有机结合:
支持计算组型实例:支持共享存储的多计算组架构,灵活实现读写分离、读读分离、写写分离,详情请参见计算组实例快速入门。
支持灵活的资源弹性能力,详情请参见计算资源管理最佳实践。
产品生态与向量计算有机结合:
无缝对接MaxCompute,支持通过外部表加速查询MaxCompute向量数据,支持MaxCompute向量数据高性能批量写入。
原生集成Flink,支持海量向量数据实时写入与更新,支持源表、结果表、维度表多种场景,支持向量数据多流合并等复杂操作。
深度集成DataWorks,支持海量数据源向量数据集成,支持数据资产、数据血缘、数据服务等企业级能力。
向量计算简介
名词解释
特征向量:向量是一种将实体和应用代数化的一种表示,其将实体间的关系抽象成向量空间中的距离,而距离的远近代表着形似程度。例如:身高、年龄、性别、地域。
向量检索:在特征向量数据集合中进行快速搜索和匹配的方法,常涉及到的问题有KNN和RNN。
KNN(K-Nearest Neighbor):查找离查询点最近的K个点。
RNN(Radius Nearest Neighbor):查找查询点某半径范围内的所有点。
向量计算概念对比
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中的使用方法请参见HGraph索引使用指南。
若您想了解向量的高性能检索对Hologres实例内存的规格要求,请参见向量计算实例规格推荐。