PostgreSQL 支持向量功能

        基于 RAG(Retrieval-Augmented Generation)引擎的企业级 AI 业务,对向量的存储和检索是至关重要的,各种类型的数据(文本、图像、声音和视频)都可以转换为向量,从而为复杂的数据结构提供了一种强大的数据表示能力,使其在机器学习和人工智能领域有着广泛的适用性和重要性。目前支持向量操作的解决方案有很多,这里介绍的是通过 PostgreSQL 数据库加插件的方式来支持向量操作。

        操作系统为 Ubuntu os 22.04 64 位操作系统,首先安装数据库、附加组件包(包括一系列扩展模块、工具、插件和额外功能),以及数据库的软件开发包(包括开发工作所需要的头文件和各类函数)。

sudo apt-get install postgresql postgresql-contrib postgresql-server-dev-14

        如果整个安装过程正常结束的话,可以通过指令查看和操作数据库服务状态,也可以根据监听端口(默认端口 5432)查看服务状态。

# 查看
sudo systemctl status postgresql.service
# 停止
sudo systemctl stop postgresql.service
# 启动
sudo systemctl start postgresql.service
# 重启
sudo systemctl restart postgresql.service

        接下来执行 sudo -i -u postgres 命令,使用用户 postgres 登录数据库,执行 createuser --interactive 命令后并输入新的用户名,并根据情况赋予用户角色权限,更可以通过命令 alter role 用户名 with password '123456' 来设置新用户的密码。

(Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y)

        然后可以准备安装插件了,经过下载、编译、部署,以及重启数据库服务,向量插件就算安装完成了。

# 临时安装路径
cd /tmp
# 下载插件源码
git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git
# 进入安装路径
cd pgvector
# 编译插件源码
make
# 安装部署组件
sudo make install
# 重启数据服务
sudo systemctl restart postgresql.service

       另外还有二个地方的配置需要做个调整,/etc/postgresql/14/main/pg_hba.conf 文件的 98 行,以及 /etc/postgresql/14/main/postgresql.conf 文件的 60 行;

# /etc/postgresql/14/main/pg_hba.conf
# 原始配置
host    all             all             127.0.0.1/32            scram-sha-256
# 变更配置(允许所有地址以用户名密码方式登录数据库)
host    all             all             0.0.0.0/0               md5

# /etc/postgresql/14/main/postgresql.conf 
# 原始配置
listen_addresses = 'localhost'          # what IP address(es) to listen on;
# 变更配置
listen_addresses = '*'                  # what IP address(es) to listen on;

        最后再次登录数据库,执行命令 CREATE EXTENSION IF NOT EXISTS vector ,完成整个安装过程,下面是一个包含 vector 类型字段的建表 SQL 供参考。

CREATE TABLE "public"."my_table"
(
    "id" bigserial NOT NULL ,
    "doc_id" varchar(64) ,
    "embedding" vector(1024)
)
WITH (
    FILLFACTOR = 100,
    OIDS = FALSE
)
;
ALTER TABLE "public"."my_table" OWNER TO dev;
COMMENT ON COLUMN "public"."my_table"."doc_id" IS '文档 ID';
COMMENT ON COLUMN "public"."my_table"."embedding" IS '向量';

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
除了基本的关系型数据库功能外,PostgreSQL还提供了许多高级功能,让它成为一个非常强大和灵活的数据库管理系统。以下是一些PostgreSQL的高级功能: 1. 大型对象(Large Objects,LO):LO是PostgreSQL特有的一种数据类型,它可以保存任意长度的二进制数据,例如图像、音频、视频等等。LO支持随机访问和部分读写,可以方便地对大型数据进行处理和存储。 2. 全文搜索(Full Text Search):PostgreSQL提供了全文索引和全文搜索功能,可以快速地在文本数据中搜索关键字或短语。全文搜索支持多种语言和多种搜索方式,可以方便地应用于文档管理、知识库、搜索引擎等场景。 3. GIS和空间数据(GIS and Spatial Data):PostgreSQL提供了PostGIS扩展,支持GIS(地理信息系统)和空间数据的存储和查询。PostGIS支持各种空间数据类型和空间算法,可以方便地进行地理空间分析、地图制作、位置服务等操作。 4. 多版本并发控制(MVCC):PostgreSQL是一种基于MVCC的数据库管理系统,它可以支持多个事务并发执行,并且保证数据的一致性和隔离性。MVCC可以避免锁定和死锁等问题,提高了系统的并发性和可靠性。 5. 多种语言扩展(Multi-Language Extensions):PostgreSQL支持多种编程语言的扩展,包括PL/Python、PL/Java、PL/Perl、PL/R等等。这些扩展可以让开发人员在数据库中直接编写和执行自己的代码,提高了系统的灵活性和可扩展性。 6. 复制和高可用性(Replication and High Availability):PostgreSQL提供了复制和流复制功能,可以将数据复制到多个节点上,实现数据的备份、负载均衡、容错等功能。同时,PostgreSQL支持各种高可用性方案,例如基于Pacemaker和Corosync的集群、基于Patroni的自动故障转移等等。 除了以上功能PostgreSQL支持各种高级查询和优化技术、安全性和权限管理、性能监控和调优等功能,为开发人员和系统管理员提供了丰富的工具和功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉力文武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值