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實例內存的規格要求,請參見向量計算實例規格推薦。