openGauss插件使用指南:datavec Extension

datavec概述

openGauss提供datavec Extension(版本为datavec-0.4.4)。datavec是一个基于openGauss的向量扩展,目前支持的向量功能有:精确和近似的最近邻搜索、L2距离&余弦距离&内积、向量索引、向量操作函数和操作符。作为openGauss的扩展,datavec 使用熟悉的SQL语法操作向量,简化了用户使用向量数据库的过程。

datavec限制

  • 暂时仅支持Create extension命令方式加载插件。
  • 暂时仅支持ivfflat索引。
  • 只支持行存表。
  • 索引WAL日志功能待完善,可能出现重启索引失效。

datavec安装

插件手动安装。如果需要手动编译加载插件最新变更,步骤如下:

编译安装

  1. 编译安装openGauss

  2. datavec源码拷贝到openGauss-server源码的contrib目录下。

  3. 进入datavec目录执行make install。

OM安装

  1. om安装的openGauss。

  2. 拷贝插件所需文件: datavec.so 路径: app/lib/postgresql/。 datavec.control和datavec--0.4.4.sql 路径 app/share/postgresql/extension。

datavec使用

datavec使用

创建Extension

创建datavec Extension可直接使用CREATE Extension命令进行创建:

openGauss=# CREATE Extension datavec;

使用Extension

示例1:创建一个带有3维向量的表。

openGauss=# CREATE TABLE items (val vector(3));

示例2:向量数据的插入。

openGauss=# INSERT INTO items (val) VALUES ('[1,2,3]'), ('[4,5,6]');

示例3:索引创建。

openGauss=# CREATE INDEX ON items USING ivfflat (val vector_l2_ops) WITH (lists = 100);
openGauss=# CREATE INDEX ON items USING ivfflat (val vector_ip_ops) WITH (lists = 100);
openGauss=# CREATE INDEX ON items USING ivfflat (val vector_cosine_ops) WITH (lists = 100);

 说明:

索引最大支持2000维向量。

示例4:计算最近邻。

openGauss=# SELECT * FROM items ORDER BY val <-> '[3,1,2]' LIMIT 5;
openGauss=# SELECT * FROM items ORDER BY val <#> '[3,1,2]' LIMIT 5;
openGauss=# SELECT * FROM items ORDER BY val <=> '[3,1,2]' LIMIT 5;

删除Extension

在openGauss中删除datavec Extension的方法如下所示:

openGauss=# DROP Extension datavec [CASCADE];

 说明:

如果Extension被其它对象依赖,需要加入CASCADE(级联)关键字,删除所有依赖对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值