Search before asking
Motivation
Apache Paimon Java has introduced the VECTOR<T, N> data type based on PIP-40. It supports schema representation, regular data-file storage such as Parquet, dedicated vector storage, reads, writes, and Data Evolution.
Paimon C++ currently recognizes .vector. file names for some file-level bookkeeping, but it does not yet provide a VECTOR logical type, Arrow mapping, serialization, storage, or end-to-end read and write support.
This issue implements the VECTOR roadmap item tracked in #186.
Solution
Introduce VECTOR<T, N> support incrementally, while keeping the schema and storage behavior compatible with Apache Paimon Java.
Phase 1: Schema and regular Parquet storage
Phase 2: Data Evolution
Phase 3: Dedicated vector storage
Initial scope
The initial implementation can focus on Phase 1, providing a usable end-to-end vertical slice through schema representation, Arrow mapping, and regular Parquet reads and writes.
Dedicated Vortex vector storage and Data Evolution can be delivered through follow-up pull requests under this issue.
The following items are not required for the initial implementation:
- ORC VECTOR support
- Vector indexes or similarity search
- Changing vector dimensions through schema evolution
- VECTOR values inside shared-shredding MAP columns
- Element types not supported by Apache Paimon Java
PIP-40 should only be considered fully supported after all phases are complete. Completing Phase 1 means that regular Parquet VECTOR storage is supported, but does not imply support for dedicated Vortex vector files.
Anything else?
Related roadmap: #186
Are you willing to submit a PR?
Search before asking
Motivation
Apache Paimon Java has introduced the VECTOR<T, N> data type based on PIP-40. It supports schema representation, regular data-file storage such as Parquet, dedicated vector storage, reads, writes, and Data Evolution.
Paimon C++ currently recognizes .vector. file names for some file-level bookkeeping, but it does not yet provide a VECTOR logical type, Arrow mapping, serialization, storage, or end-to-end read and write support.
This issue implements the VECTOR roadmap item tracked in #186.
Solution
Introduce
VECTOR<T, N>support incrementally, while keeping the schema and storage behavior compatible with Apache Paimon Java.Phase 1: Schema and regular Parquet storage
VECTOR<T, N>to the Paimon C++ logical type system.VECTOR<T, N>to ArrowFixedSizeList<T, N>.BOOLEANTINYINTSMALLINTINTBIGINTFLOATDOUBLEN.Phase 2: Data Evolution
VECTOR<FLOAT, 3>toVECTOR<FLOAT, 5>.Phase 3: Dedicated vector storage
*.vector.vortexfiles.Initial scope
The initial implementation can focus on Phase 1, providing a usable end-to-end vertical slice through schema representation, Arrow mapping, and regular Parquet reads and writes.
Dedicated Vortex vector storage and Data Evolution can be delivered through follow-up pull requests under this issue.
The following items are not required for the initial implementation:
PIP-40 should only be considered fully supported after all phases are complete. Completing Phase 1 means that regular Parquet VECTOR storage is supported, but does not imply support for dedicated Vortex vector files.
Anything else?
Related roadmap: #186
Are you willing to submit a PR?