更新时间:2026-07-20 GMT+08:00
分享

使用入门

在机器学习和自然语言处理中,Embedding是指将高维度的数据(例如文字、图片、音频)映射到低维度空间的过程。Embedding向量通常是一个由实数构成的向量,它将输入的数据表示成一个连续的数值空间中的点。简而言之,Embedding是一个N维的实值向量,可以用来表示任何事情,如文本、音乐、视频等。

本小节介绍向量数据库的基本功能,包括创建向量表、修改向量属性类型、管理向量数据、清空表格等操作。

  1. 创建含向量类型的表,同时设定数据维度。建表时向量类型必须要指定维度,当插入数据的维度与设置的数据维度不一致时,数据库报错。

    gaussdb=# CREATE TABLE t1(id int unique, repr floatvector(4));
    gaussdb=# CREATE TABLE t2(id int unique, repr boolvector(3));

  2. 增加向量列。需指定默认值,否则数据库报错。

    gaussdb=# ALTER TABLE t1 ADD COLUMN floatvec floatvector(3) default '[1,1,1]';

  3. 修改表中的向量数据类型属性。可以通过ALTER TABLE语句修改向量维度。

    gaussdb=# ALTER TABLE t1 ALTER COLUMN repr type floatvector(4);

    注意:如果表中已经插入数据,变换向量维度时需要表中数据符合维度设定,否则数据库报错;当向量属性已创建向量索引,属性的数据类型无法切换到其他数据类型,数据库报错。

  4. 插入数据。

    gaussdb=# INSERT INTO t1 VALUES(0, '[30,12,12,25]');
    gaussdb=# INSERT INTO t1 VALUES(1, '{7.5,62,1,235}');

    字符型数据隐式转化为向量数据类型。

    gaussdb=# INSERT INTO t2 VALUES(2, '[1, 0, 1]');
    gaussdb=# INSERT INTO t2 VALUES(3, '[T, T, F]');
    gaussdb=# INSERT INTO t2 VALUES(4, '[false, true, true]');
    gaussdb=# INSERT INTO t2 VALUES(5, '[Y, N, N]');
    gaussdb=# INSERT INTO t2 VALUES(6, '[no, yes, no]');
    gaussdb=# INSERT INTO t2 VALUES(7, '[off, off, on]');
    gaussdb=# INSERT INTO t2 VALUES(8, '[1, yes, on]');

  5. 删除数据。

    gaussdb=# DELETE t1 where repr <-> '[30,12,12,25]' < 0.2;

  6. 对向量列和非向量列的更新和删除操作,以及VACUUM操作。

    gaussdb=# UPDATE t1 SET id = 38;
    gaussdb=# UPDATE t1 SET repr = '[1000,152,132,5]';
    gaussdb=# DELETE FROM t1 WHERE id=38;
    gaussdb=# DELETE FROM t1 WHERE repr='[30,12,12,25]';
    gaussdb=# DELETE FROM t1 WHERE repr <-> '[30,12,12,25]' < 0.8;
    gaussdb=# VACUUM t1;

相关文档