向量数据建模

用于存储向量数据的底层数据类型可能因数据库而异。Oracle GoldenGate 可用于从许多不同的数据库(例如 PostgreSQL 和 MySQL Heatwave)复制向量数据。

对于 Oracle AI Database,建议您使用 VECTOR 数据类型,该数据类型以具有语义意义的本机格式存储嵌入,从而实现高效的向量索引、相似性搜索和以 AI 为中心的查询操作。Oracle VECTOR 数据类型具有多种存储格式,包括 FLOAT32(大多数模型的标准)和 FLOAT64(允许更高的精度),INT8(用于减少向量数据使用的存储)以及 BINARY(使用 UINT8 数组来减少存储并优化距离计算)。向量也可以是 DENSE(用于存储每个维)或 SPARSE(用于为具有许多零值的向量优化存储)。

   -- 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 将向量数据类型视为 LOB 数据,因为向量通常大于 GoldenGate 26ai 的 4kb 行内限制。这意味着您无法使用标准 GoldenGate 列转换函数执行转换或过滤。因此,如果数据已经采用向量格式,则源数据类型和目标数据类型必须兼容,这意味着底层存储和数字值必须相同。

请参见 Cross-Platform Vector Replication Considerations 一节中的详细信息。