前言
目前,AIGC领域正处于蓬勃发展的阶段,同时大规模数据集的使用和计算资源用量提升,也为AIGC业务架构底层的基础设施提出了更高的要求。为了更好地支持AIGC业务的发展,UCloud在数据中心建设、网络、文件存储、主机镜像市场等多个方面都提供了相关产品和解决方案。
数据库方面,在云主机镜像市场已支持Milvus向量数据库的基础上,UCloud云数据库UDB中的PostgreSQL(以下简称UPgSQL)还新增支持了pgvector向量数据库插件,持续在AIGC业务架构中所涉及的向量数据库环节完善产品支持。
pgvector的特点及使用场景
pgvector是PostgreSQL数据库的扩展插件,其设计目的是让用户能够在现有的PostgreSQL数据库上实现向量搜索和计算,而无需引入额外的向量数据库,主要特点如下:
和PostgreSQL数据库深度集成
pgvector作为PostgreSQL数据库的一个扩展插件,它允许在PostgreSQL数据库中存储和查询向量数据,无需迁移数据或更改应用程序架构,从而降低了集成的复杂性。如果业务架构已经在使用 PostgreSQL,而且希望快速地添加向量数据支持,pgvector是一个便捷的选择。
SQL简单易用
pgvector使用标准SQL查询语言,适合于熟悉SQL查询的用户,而Milvus等专业向量数据库则是提供了自己的查询语言和 API。
数据模型可以灵活组合
pgvector允许用户将向量数据存储在表中的特定列中,同时允许将向量数据与其他属性数据混合在一起。这种灵活性使得用户可以在单一查询中同时处理向量数据和其他结构化数据,从而满足更广泛的分析需求。
开箱即用
UDB UPgSQL数据库产品已经内置了pgvector插件,可以在实例创建成功后直接开始使用,无需进行额外的配置。与Milvus等向量数据库相比,这种集成方式减少了学习和配置的成本。
UCloud pgvector数据库快速入门
pgvector最大支持创建16000个维度的向量, 并可以对最大2000个维度的向量建立索引。云数据库UPgSQL默认已经安装并启用pgvector插件,以下是商品搜索与推荐系统案例中使用pgvector的具体步骤:
1.在UCloud UPgSQL控制台创建一台PostgreSQL数据库实例,通过Root用户登陆数据库。
2.创建一个商品表,其中包含商品的名称、描述和特征向量。
3.向商品表中插入一些商品数据,包括商品名称、描述以及与其相关的特征向量。
4. 当搜索商品时,可以使用向量相似度来执行智能的商品搜索
5.基于用户的历史购买记录或浏览行为,可以计算用户的偏好向量,然后根据相似度来为用户推荐其他商品。
6.创建索引:为了提高查询效率, pgvector支持为向量数据建立IVF-Flat索引,可以通过下列语句创建索引。
创建索引语句的参数说明:
●CREATE INDEX ON products表示在 "products" 表上创建一个新的索引。
●USING ivfflat: 这部分指定了要使用的索引方法,即 "ivfflat"。
●(vector_data vector_cosine_ops): "vector_data" 是列的名称, "vector_cosine_ops" 是指向量余弦相似度操作符,这表明你希望使用余弦相似度来优化这个索引。
●WITH (lists = 100): "lists" 参数设置为 100,是为了控制索引中的列表数量,以便在向量搜索时进行更有效的查询。
更多使用方法详见 pgvector官方文档(https://github.com/pgvector/pgvector)
UDB作为UCloud云平台的核心产品,为广大用户提供了多样化的数据库选择,覆盖了MySQL、PostgreSQL、SQL Server、MongoDB等常用数据库品类。UDB PostgreSQL数据库支持pgvector插件后,可以通过创建UDB PostgreSQL数据库快速获得pgvector功能,无需额外的配置。
同时,如果需要专业的向量数据库功能,也可以使用UCloud镜像市场中的Milvus镜像,创建对应主机获取Milvus向量数据库服务。作为一款开源向量数据库,Milvus专注于高性能的向量数据存储与检索。它的设计旨在处理大规模的向量数据,包括图像、文本、音频等各个领域的向量特征。Milvus以高效的相似性搜索和向量计算为特色,满足了多领域数据探索和分析的需求。