postgresql与pgvector安装与利用

打印 上一主题 下一主题

主题 1119|帖子 1119|积分 3357

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
环境变量修改


  • 打开 .bashrc 文件进行编辑:
    vim ~/.bashrc
  • 在文件的末尾添加上面的环境变量配置
  1. # 添加 PostgreSQL 可执行文件路径到系统 PATH
  2. export PATH=/home/....../pg/postgresql-12.4/bin:$PATH
  3. # 设置 PostgreSQL 数据目录
  4. export PGDATA=/home/....../pg/postgresql-12.4/data
  5. # 设置 PostgreSQL 库文件路径
  6. export LD_LIBRARY_PATH=/home/....../pg/postgresql-12.4/lib:$LD_LIBRARY_PATH
  7. # 自定义 PostgreSQL 端口号(可选)
  8. export PGPORT=5333  # 如果不需要自定义端口,可以改为 5432 或删除这行
复制代码
3.保存并退出 .bashrc,然后使配置立即收效:
source ~/.bashrc
Postgresql安装与链接



解压乐成后显示
  1. ls
  2. postgresql-12.4 postgresql-12.4.tar.gz
复制代码
进入到postgresql-12.4目录编译安装
  1. # 制定编译工具
  2. ./configure --prefix=/home/....../pg --enable-depend --enable-cassert --enable-debug CFLAGS=-O0
  3. # 编译安装
  4. make && make install
复制代码


  • prefix:安装在自己的目录下
    注意:CFLAGS发起加上面这个-O0选择,这样可以调试更多内容,方便后续GDB进行调试,否则后续进行学习的时候会重新安装PGSQL。
  1. cd ../               
  2. cd pg       
  3. cd bin
复制代码
2、初始化数据库簇 (在postgresql-12.4目录下创建data文件夹)
./initdb -D ../data
3、启动数据库
  1. ./pg_ctl -D ../        data -l logfile start       
  2. ./psql postgres
复制代码
配置环境变量后,可直接利用 :
启动 PostgreSQL
pg_ctl start
停止 PostgreSQL
pg_ctl stop
如果是手动安装的 PostgreSQL,可以利用 pg_ctl:
/home/....../pg/postgresql-12.4/bin/pg_ctl -D /home/....../pg/postgresql-12.4/data stop
毗连到 PostgreSQL 数据库
利用 psql 下令行工具毗连到 PostgreSQL 数据库:
psql -U username -d dbname
例如,利用用户 username 毗连到 postgres 数据库:
  1. psql -U username -d postgres
复制代码
如果没有指定命据库名,psql 会尝试毗连与当前用户同名的数据库。
断开毗连(退出 psql 控制台)
利用以下下令退出 psql 控制台:
\q
PGSQL的利用

  1. 使用 \l 用于查看已经存在的数据库;
  2. 使用 \c + 数据库名 来进入数据库;
  3. \d 命令来查看表格;
  4. \d tablename 查看表格信息;
复制代码
pgvector安装

  1. tar -zxvf pgvector-0.7.0.tar.gz
  2. cd pgvector-0.7.0
  3. # 安装调试版本
  4. CFLAGS="g" PG_CFLAGS="-DDISABLE_DISPATCH" make &&  make install
复制代码
之后进入到postgresql服务器里面,利用
  1. create extension vector;
复制代码
创建Vevtor插件。
利用如下代码可以快速在表中生成大量的向量:
  1. create or replace function gen_float4_arr1(int,int) returns float4[] as $$  
  2.   select array_agg(trunc(random()*$1)::float4) from generate_series(1,$2);  
  3. $$ language sql strict volatile;
  4. create or replace function gen_float4_arr(float4[], int) returns float4[] as $$  
  5.   select array_agg( (u + (u*$2/2.0/100) - u*$2/100*random())::float4 ) from unnest($1) u;
  6. $$ language sql strict volatile;
复制代码
创建表,id要用serial
  1. create table if not exists v(  
  2.     id serial PRIMARY KEY,  
  3.     vec vector(10)    --  自己写想要的维度,比如10
  4. );
复制代码
利用下面的代码进行向量的随机生成:
  1. do language plpgsql $$
  2. declare
  3.   v_cent float4[];
  4. begin
  5.   for i in 1..10 loop  -- 10个中心点,下面一次插1k条,那就是1万,自己想怎么改怎么改
  6.     v_cent := gen_float4_arr1(10000,10);   -- 取值范围10000,表是什么维度,这里就写多少
  7.     insert into v (vec) select gen_float4_arr(v_cent, 20)::vector(10) from generate_series(1,1000);   -- 1万个点围绕一个中心点, 每个维度的值随机加减20% ,10000,20也都可以改
  8.   end loop;
  9. end;
  10. $$;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表