All Products
Search
Document Center

Hologres:Introduction to vector computation

Last Updated:Mar 26, 2026

Hologres vector computation lets you store, index, and search high-dimensional vector data at scale — enabling semantic search, recommendation systems, and retrieval-augmented generation (RAG) pipelines directly within your real-time data warehouse, without a separate vector database.

How it works

Unstructured data — images, text, audio — cannot be queried with traditional SQL filters. To make it searchable, a machine learning model encodes each item into a feature vector: a fixed-length array of numbers that captures its meaning. Items with similar meanings land close together in vector space.

Hologres stores these vectors as Array columns and accelerates similarity search with the HGraph vector index. When you run a query, Hologres uses HGraph to find the K nearest vectors to your query vector — K-Nearest Neighbor (KNN) — or all vectors within a given distance threshold — Radius Nearest Neighbor (RNN) — without scanning every row.

For index creation syntax, distance metric options, and parameter tuning, see the HGraph index user guide.

Use cases

Use case How Hologres helps
RAG pipelines Store document embeddings alongside structured metadata; retrieve the most relevant chunks with hybrid SQL queries
Semantic search Search product catalogs, knowledge bases, or media libraries by meaning rather than keywords
Recommendation systems Find similar items or users based on embedding similarity, combined with real-time behavioral filters
Multimedia similarity Match images, audio clips, or video segments using deep-learning embeddings

Key capabilities

Vector search engine

Hologres V4.0 fully upgrades its Vector Search capabilities with support for HGraph, a new vector search algorithm purpose-built for Massively Parallel Processing (MPP) architectures. Before V4.0, Hologres used the Proxima library (developed by DAMO Academy) for vector computation.

HGraph delivers:

  • Hybrid memory and disk indexes — tune the index to balance query latency, memory footprint, and recall precision based on your workload

  • Hundred-billion-scale ingestion and recall — supports ingesting and searching hundreds of billions of vectors in a single cluster

  • High-throughput reads and writes — HGraph exploits the MPP architecture to parallelize both indexing and querying across compute nodes

Real-time ingestion and updates

Vector data is queryable immediately after being written. Hologres supports high-QPS (Queries Per Second) vector ingestion, concurrent index construction, and low-latency vector search at high QPS — all without separate batch refresh jobs.

Hybrid SQL queries

Combine vector search with standard SQL filters in a single query. For example, filter by category or date range and rank results by vector similarity. Hologres supports concurrent use of vector indexes and other structured indexes on the same table.

Flexible storage formats

A single vector table can use row storage, column storage, or hybrid row-columnar storage. This lets one table simultaneously serve:

  • High-performance OLAP analysis

  • Key-value lookups

  • Vector similarity queries

Cost-efficient storage

Vector index data is compressed using the Float2 data type, reducing storage cost without sacrificing query accuracy.

Transactional support

Hologres supports multi-statement DDL (Data Definition Language) transactions and mixed DML (Data Manipulation Language) transactions on vector tables, keeping your vector data consistent with the rest of your data warehouse.

Binary Log

Binary Log lets you subscribe to vector data change events for downstream systems — for example, triggering cache invalidation or syncing to another service when embeddings are updated.

Compute group instances

A multi-compute group architecture with shared storage enables flexible read/write splitting and workload isolation. Hologres also supports flexible resource elasticity for compute resources. For details, see Quick start for compute group instances. To optimize resource usage across workloads, see Best practices for compute resource management.

Ecosystem integrations

Service Integration
MaxCompute Query MaxCompute vector data via external tables; high-performance bulk ingestion into Hologres
Flink Real-time ingestion and updates; source tables, result tables, and dimension tables; multi-stream joins
DataWorks Data integration from external sources; Data Asset management, Data Lineage, and data services

Key concepts

Feature vector

A feature vector is an algebraic representation of an entity — a fixed-length array of numbers. The position of a vector in vector space encodes the entity's characteristics; vectors that are close together represent similar entities.

For example, features like height, age, gender, and region can be encoded into a vector. Similarity search then finds the entities whose vectors are closest to a query vector.

In Hologres, feature vectors are stored as the Array data type. Only fixed-length arrays are supported.

Vector index

A vector index accelerates similarity search by avoiding a full table scan. Hologres currently supports graph indexes, which are used for both KNN and RNN queries.

Distance metrics

Distance metrics measure how similar two vectors are. Each distance metric corresponds to a specific user-defined function (UDF): proxima_distance().

KNN and RNN queries

Query type Definition SQL pattern
KNN (K-Nearest Neighbor) Find the K vectors closest to a query vector ORDER BY distance(col, query_vec) ASC LIMIT k
RNN (Radius Nearest Neighbor) Find all vectors within distance r of a query vector WHERE distance(col, query_vec) < r
RNN queries are not accelerated by vector indexes.

Proxima to HGraph migration

If you used Hologres before V4.0, the table below maps Proxima concepts to their equivalents in the current Hologres interface.

Proxima concept Hologres equivalent
Feature vector Array data type (fixed-length only)
Vector index Graph index (KNN/RNN); currently only graph indexes are supported
Distance calculation UDF: proxima_distance() — each distance metric corresponds to a specific UDF
KNN query ORDER BY distance(x, [x1, x2]) ASC LIMIT k
RNN query WHERE distance(x, [x1, x2]) < r

What's next