Vector Data Modeling
The underlying data type used to store vector data can vary by database. Oracle GoldenGate can be used to replicate vector data from many different databases, such as PostgreSQL and MySQL Heatwave.
For Oracle database, it is recommended that you use the VECTOR datatype, which stores embeddings in a native, semantically meaningful format enabling efficient vector indexing, similarity search, and AI-focused query operations. The Oracle VECTOR data type has multiple storage formats, including FLOAT32 a standard for most models, and FLOAT64, which allows for higher precision, INT8, which reduces the storage used by the vector data, and BINARY, which uses UINT8 arrays to reduce storage and optimize distance computations. Vectors can also be DENSE, which stores every dimension, or SPARSE, which is optimized storage for vectors with many zero-values.
-- Simple declaration (flexible dimensions)
CREATE TABLE my_vectors ( id NUMBER, embedding VECTOR);
-- Defined declaration (768 dimensions, 8-bit integers)
CREATE TABLE optimized_vectors ( id NUMBER, embedding VECTOR(768, INT8)
);
GoldenGate treats vector data types as LOB data because the vectors are often larger than the 4kb in-row limitation of GoldenGate 26ai. This means that you cannot perform transformation or filtering using standard GoldenGate column conversion functions. Therefore, if the data is already in vector format, the source and target datatypes must be compatible, implying that the underlying storage and numeric values must be the same.
See details in the Cross-Platform Vector Replication Considerations section.