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

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.gz

cd 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 $$
declare
  v_cent float4[];
begin
  for 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.kler.cn/a/422095.html

相关文章:

  • qt QToolBox详解
  • 13TB的StarRocks大数据库迁移过程
  • jmeter 压测常用静默参数解释应用
  • 二百七十八、ClickHouse——将本月第一天所在的那一周视为第一周,无论它是从周几开始的,查询某个日期是本月第几周
  • 公共github私有化教程
  • TCP、HTTP、RPC
  • PHP语法学习(第一天)
  • 【Pytorch】torch.reshape与torch.Tensor.reshape区别
  • 洛谷P1241 括号序列(c嘎嘎)
  • 无人机倾斜摄影测绘三维建模技术详解
  • Linux-虚拟环境
  • Qt Qtablewidget 标题 QHeaderView 增加可选框 QcheckBox
  • 【Vue3】【Naive UI】<NAutoComplete>标签
  • 【Flink】Flink Checkpoint 流程解析
  • Vue 入门级教程四:深入 Vue 组件与路由
  • 【pytorch】pytorch的缓存策略——计算机分层理论的另一大例证
  • 实数与复数频谱掩蔽在音频分离中的应用
  • WPF_1
  • Scala身份证号if else if else查询省份
  • 每日一题:golang并发 mutex、context
  • 【论文阅读】Adversarial gradient-based meta learning with metric-based test
  • 什么是 Socket?
  • 005 MATLAB符号微积分
  • 数仓项目常见问题解答
  • Narya.ai正在寻找iOS工程师!#Mixlab内推
  • linux下环境变量的使用