Vector Storage
Overview
With the explosive growth of AI scenarios, vector storage has become increasingly important. Paimon provides optimized storage solutions specifically designed for vector data.
Paimon stores vector columns in dedicated files using the Vortex columnar format, which is optimized for vector workloads with high compression ratio and fast scan performance.
Vector Data Type
Paimon supports defining columns of type VECTOR<t, n>, which represents a fixed-length, dense vector column, where:
t: The element type. Supports:BOOLEAN,TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE;n: The vector dimension, must be a positive integer not exceeding2,147,483,647.
Compared to variable-length arrays, dense vectors provide:
- More natural semantic constraints, preventing mismatched lengths and
nullelements at the storage layer; - Better point-lookup performance, eliminating offset array storage and access;
- Closer alignment with type representations in specialized vector engines, avoiding memory copies and type conversions.
Notes:
- Columns of
VECTORtype cannot be used as primary key columns, partition columns, or for sorting. - If a
VECTORvalue itself is notnull, its elements are not allowed to benull.
Dedicated Vector File Storage
Paimon stores vector columns in separate .vector.vortex files within Data Evolution tables, keeping scalar and vector data independently optimized.
File layout:
table/
├── bucket-0/
│ ├── data-uuid-0.parquet # Scalar columns (id, name, ...)