当前位置: 首页 > news >正文

postgresql与pgvector安装与使用

环境变量修改

  1. 打开 .bashrc 文件进行编辑:
    vim ~/.bashrc
  2. 在文件的末尾添加上面的环境变量配置
# 添加 PostgreSQL 可执行文件路径到系统 PATH
export PATH=/home/....../pg/postgresql-12.4/bin:$PATH# 设置 PostgreSQL 数据目录
export PGDATA=/home/....../pg/postgresql-12.4/data# 设置 PostgreSQL 库文件路径
export LD_LIBRARY_PATH=/home/....../pg/postgresql-12.4/lib:$LD_LIBRARY_PATH# 自定义 PostgreSQL 端口号(可选)
export PGPORT=5333  # 如果不需要自定义端口,可以改为 5432 或删除这行

3.保存并退出 .bashrc,然后使配置立即生效:

source ~/.bashrc

Postgresql安装与链接

解压成功后显示

ls 
postgresql-12.4 postgresql-12.4.tar.gz

进入到postgresql-12.4目录编译安装

# 制定编译工具
./configure --prefix=/home/....../pg --enable-depend --enable-cassert --enable-debug CFLAGS=-O0# 编译安装make && make install
  • prefix:安装在自己的目录下
    注意:CFLAGS建议加上面这个-O0选择,这样可以调试更多内容,方便后续GDB进行调试,否则后续进行学习的时候会重新安装PGSQL。
cd ../		cd pg	cd bin

2、初始化数据库簇 (在postgresql-12.4目录下创建data文件夹)

./initdb -D ../data

3、启动数据库

./pg_ctl -D ../	data -l logfile start	./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 数据库:

psql -U username -d postgres

如果没有指定数据库名,psql 会尝试连接与当前用户同名的数据库。

断开连接(退出 psql 控制台)
使用以下命令退出 psql 控制台:

\q

PGSQL的使用

使用 \l 用于查看已经存在的数据库;使用 \c + 数据库名 来进入数据库;\d 命令来查看表格;\d tablename 查看表格信息;

pgvector安装

tar -zxvf pgvector-0.7.0.tar.gzcd pgvector-0.7.0
# 安装调试版本CFLAGS="g" PG_CFLAGS="-DDISABLE_DISPATCH" make &&  make install

之后进入到postgresql服务器里面,使用

create extension vector;

创建Vevtor插件。

使用如下代码可以快速在表中生成大量的向量:

create or replace function gen_float4_arr1(int,int) returns float4[] as $$  select array_agg(trunc(random()*$1)::float4) from generate_series(1,$2);  
$$ language sql strict volatile; create or replace function gen_float4_arr(float4[], int) returns float4[] as $$  select array_agg( (u + (u*$2/2.0/100) - u*$2/100*random())::float4 ) from unnest($1) u;
$$ language sql strict volatile;

创建表,id要用serial

create table if not exists v(  id serial PRIMARY KEY,  vec vector(10)    --  自己写想要的维度,比如10
);

使用下面的代码进行向量的随机生成:

do language plpgsql $$
declarev_cent float4[];
beginfor i in 1..10 loop  -- 10个中心点,下面一次插1k条,那就是1万,自己想怎么改怎么改v_cent := gen_float4_arr1(10000,10);   -- 取值范围10000,表是什么维度,这里就写多少insert into v (vec) select gen_float4_arr(v_cent, 20)::vector(10) from generate_series(1,1000);   -- 1万个点围绕一个中心点, 每个维度的值随机加减20%1000020也都可以改end loop;
end;
$$;
http://www.lryc.cn/news/496497.html

相关文章:

  • 开箱即用,阿里开源!专业AI 聊天界面工具包:Ant Design X
  • 详解版本控制工作原理及优势,常见的版本控制系统对比(HelixCore、Git、SVN等)
  • Vue2 vs Vue3:核心原理与性能优化详解
  • Qt+GDAL属性计算软件开发记录
  • 在超表面中琼斯矩阵的使用
  • 在macOS上从源码部署RAGFlow-0.14.1
  • 2-2-18-9 QNX系统架构之文件系统(二)
  • 【经管数据】上市公司企业审计报告时滞数据、 年报披露时滞数据(2001-2022年)
  • debian ubuntu armbian部署asp.net core 项目 开机自启动
  • 无人机地面遥控遥测技术与算法概述!
  • 游戏引擎学习第30天
  • Django drf 快速使用
  • 机器学习介绍与实战:案例解析与未来展望
  • 【SCT71401】3V-40V Vin, 150mA, 2.5uA IQ,低压稳压器,替代SGM2203
  • 2024.12.3总结
  • Redis探秘Sentinel(哨兵模式)
  • Linux C/C++编程之静态库
  • strlen函数用法,模拟实现
  • 云原生后端:解锁高效可扩展应用的魔法世界
  • 大数据新视界 -- Hive 数据湖架构中的角色与应用(上)(25 / 30)
  • React高阶面试题目(六)
  • 容器运行应用及Docker命令
  • 【Go 基础】channel
  • windows10更新后system磁盘占用100%
  • 无人设备遥控器之防水性能篇
  • 基于Matlab BP神经网络的非线性系统辨识与控制研究
  • 3D基因组工具(HiC可视化)trackc--bioinfomatics tools 35
  • 【大模型微调】图片转pdf
  • Linux-Ubuntu16.04摄像头 客户端抓取帧并保存为PNG
  • 手机ip地址取决于什么?可以随便改吗