预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN111309985A(43)申请公布日2020.06.19(21)申请号202010163627.4(22)申请日2020.03.10(71)申请人支付宝(杭州)信息技术有限公司地址310000浙江省杭州市西湖区西溪路556号8层B段801-11(72)发明人杨文李涛方概魏宏(74)专利代理机构北京亿腾知识产权代理事务所(普通合伙)11309代理人陈霁周良玉(51)Int.Cl.G06F16/901(2019.01)权利要求书3页说明书8页附图2页(54)发明名称基于PostgreSQL数据库的高维向量存储方法和装置(57)摘要本说明书实施例提供一种基于PostgreSQL数据库的高维向量存储方法和装置。该数据库包括多个节点向量,数据库的索引包括多个数据页,数据页用于存储节点向量,且一个节点向量的数据量大于一个数据页的容量。在对第一节点向量进行存储时,生成与第一节点向量对应的第一数据元组,第一数据元组包括向量位置区段和向量数据区段,向量数据区段存储第一节点向量的向量数据;获取索引中待存储数据的第一数据页,从第一数据页的空闲存储区域的开端开始存储第一数据元组,根据剩余数据量至少生成一个第二数据页,并将剩余数据存储至第二数据页;基于第一数据页和第二数据页确定第一节点向量的位置信息,将第一节点向量的位置信息存储至向量位置区段。CN111309985ACN111309985A权利要求书1/3页1.一种基于PostgreSQL数据库的高维向量存储方法,通过计算机执行,所述数据库至少包括多个节点向量,所述数据库的索引包括多个数据页,所述数据页用于存储节点向量,一个节点向量的数据量大于一个数据页的容量;所述方法包括:从所述数据库中获取待存储至所述索引的第一节点向量;生成与所述第一节点向量对应的第一数据元组;其中,所述第一数据元组包括向量位置区段和向量数据区段,所述向量数据区段存储所述第一节点向量的向量数据;获取所述索引中待存储数据的第一数据页;从所述第一数据页的空闲存储区域的开端开始存储所述第一数据元组,根据剩余数据量至少生成一个第二数据页,并将剩余数据存储至生成的所述第二数据页;基于所述第一数据页和所述第二数据页,确定所述第一节点向量的位置信息,将所述第一节点向量的位置信息存储至所述向量位置区段。2.根据权利要求1所述的方法,所述生成与所述第一节点向量对应的第一数据元组的步骤,还包括:采用初始化位置信息填充所述向量位置区段;所述将所述第一节点向量的位置信息存储至所述向量位置区段的步骤,包括:用所述第一节点向量的位置信息替换所述第一数据元组中的初始化位置信息。3.根据权利要求1所述的方法,所述从所述第一数据页的空闲存储区域的开端开始存储所述第一数据元组,根据剩余数据量至少生成一个第二数据页,并将剩余数据存储至生成的所述第二数据页的步骤,包括:将所述第一数据页作为当前数据页,从所述当前数据页的空闲存储区域的开端开始存储所述第一数据元组;当检测到所述当前数据页已存满,且所述第一数据元组未存储完成时,生成第二数据页,将所述第二数据页作为当前数据页,返回执行所述从所述当前数据页的空闲存储区域的开端开始存储所述第一数据元组的步骤。4.根据权利要求3所述的方法,在生成第二数据页之后,还包括:在所述第二数据页的页头区域中存储所述第二数据页的前一数据页的数据页标识;在所述前一数据页的页尾区域中存储所述第二数据页的数据页标识。5.根据权利要求3所述的方法,所述基于所述第一数据页和所述第二数据页,确定所述第一节点向量的位置信息的步骤,包括:将所述第一数据页作为起始数据页,并将最后一个第二数据页作为末尾数据页,确定所述第一节点向量在所述起始数据页中的偏移量,以及所述第一节点向量在所述末尾数据页中的偏移量;将所述起始数据页的数据页标识和对应的偏移量、所述末尾数据页的数据页标识和对应的偏移量,确定为所述第一节点向量的位置信息。6.根据权利要求1所述的方法,在将剩余数据存储至生成的所述第二数据页之后,还包括:记录最后一个第二数据页的空闲存储区域的开端。7.根据权利要求1所述的方法,所述第一数据页和所述第二数据页连续,或者不连续。8.一种基于PostgreSQL数据库的高维向量存储装置,部署在计算机中,所述数据库至2CN111309985A权利要求书2/3页少包括多个节点向量,所述数据库的索引包括多个数据页,所述数据页用于存储节点向量,一个节点向量的数据量大于一个数据页的容量;所述装置包括:向量获取模块,配置为从所述数据库中获取待存储至所述索引的第一节点向量;元组生成模块,配置为生成与所述第一节点向量对应的第一数据元组;其中,所述第一数据元组包括向量位置区段和向量数据区段,所述向量数据区段存储