CN115495457B - 基于单机向量数据库的数据处理系统、设备及存储介质 - Google Patents
基于单机向量数据库的数据处理系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115495457B CN115495457B CN202211433356.5A CN202211433356A CN115495457B CN 115495457 B CN115495457 B CN 115495457B CN 202211433356 A CN202211433356 A CN 202211433356A CN 115495457 B CN115495457 B CN 115495457B
- Authority
- CN
- China
- Prior art keywords
- data table
- data
- name
- sub
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于单机向量数据库的数据处理系统、设备及存储介质,涉及数据处理领域,该系统包括客户端和与客户端通讯连接的n个milvus数据库;每一milvus数据库中均包括x个第一类数据表和y个第二类数据表;不同milvus数据库中数据表名称相同的第一类数据表内存储的数据向量不同;每一milvus数据库中第j个第二类数据表均包括f(j)个子数据表。本发明执行数据查询指令时,每个milvus数据库同时对待查询数据向量进行批量相似度比对,提高了系统的查询性能;在执行数据插入指令时,选择随机的milvus数据库插入,保证了各个milvus数据库的存储节点的负载均衡。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种基于单机向量数据库的数据处理系统、设备及存储介质。
背景技术
目前,传统的数据库主要解决对结构化数据的增删改查的问题,而对非结构化数据(如图片、音频等数据)的管理就存在局限性,但是未来的数据大部分都是非结构化的,传统的数据分析手段很难挖掘非结构化数据中所蕴含的信息,也无法对这些信息进行统一表示。
milvus数据库是用来将非结构化数据转换为向量并进行存储和查询的数据库,但目前milvus数据库的单机式方案中只能对单个milvus数据库中的数据表进行数据处理,数据处理方式较为单一,且随着存储的数据量的增加,单个milvus数据库在进行数据查询时所耗费的查询时间也过长。
发明内容
针对上述技术问题,本发明提供一种基于单机向量数据库的数据处理系统、设备及存储介质,至少部分解决现有技术中存在的单机式方案中只能对单个milvus数据库中的数据表进行数据处理的技术问题,本发明采用的技术方案为:
根据本申请的一个方面,提供一种基于单机向量数据库的数据处理系统,包括客户端和与客户端通讯连接的n个milvus数据库;n个milvus数据库相互之间不具有通讯连接;
每一milvus数据库中均包括x个第一类数据表和y个第二类数据表;
每一milvus数据库中第i个第一类数据表的数据表名称均为Name1i;不同milvus数据库中数据表名称相同的第一类数据表内存储的数据向量不同;其中,i=1,2,...,x;
每一milvus数据库中第j个第二类数据表均包括f(j)个子数据表,每一milvus数据库中第j个第二类数据表的f(j)个子数据表的数据表名称均分别为N1 j,N2 j,...,Np j,...,Nf(j) j,Np j=(Name2j,Tj,p);其中,j=1,2,...,y;p=1,2,...,f(j);f(j)为第j个第二类数据表中子数据表的数量;Np j为每一milvus数据库中第j个第二类数据表的第p个子数据表的数据表名称;Name2j为每一milvus数据库中第j个第二类数据表的每一子数据表的共用名称,且用于表示第j个第二类数据表的数据表类型;Tj,p为每一milvus数据库中第j个第二类数据表的第p个子数据表对应的时间段,且Tj,1,Tj,2,...,Tj,p,...,Tj,f(j)相互不同;
客户端用于执行以下步骤:
S100、将用户输入的数据查询指令A1=(time1,F1)发送至每一milvus数据库中;其中,time1为A1对应的查询时间段;F1为A1对应的待查询数据向量;
每一milvus数据库在接收到A1后,均执行以下步骤:
S200、根据F1确定第一目标数据表的数据表类型G1;若G1表示第一目标数据表为第二类数据表,则执行步骤S210;其中,第一目标数据表为根据F1确定的需进行数据查询的数据表;
S210、获取每一数据表名称中包括G1的子数据表的数据表名称中的时间段H1,H2,...,Hq,...,Hz;其中,q=1,2,...,z;z为数据表名称中包括G1的子数据表的数量;Hq为第q个数据表名称中包括G1的子数据表的数据表名称中的时间段;
S220、若Hq与time1存在相同的时间节点,则将其对应的子数据表确定为第一目标子数据表,并执行步骤S230;
S230、将F1与每一第一目标子数据表中每一数据向量进行特征比对处理,得到第一相似度集;第一相似度集包括当前的milvus数据库中每一第一目标子数据表对应的相似度子集,每一相似度子集包括其对应的第一目标子数据表中每一数据向量与F1之间的相似度;
S240、将第一相似度集发送至客户端;
客户端在接收到每一milvus数据库返回的第一相似度集后,执行以下步骤:
S300、将每一第一相似度集中大于相似度阈值的相似度对应的数据向量确定为目标向量,并进行展示。
在本申请的一种示例性实施例中,客户端还执行以下步骤:
S400、将用户的数据插入指令A2=(time2,F2)发送至每一milvus数据库中;其中,time2为A2对应的插入时间段;F2为A2对应的待插入数据向量;
每一milvus数据库在接收到A2后,均执行以下步骤:
S500、根据F2确定第二目标数据表的数据表类型G2;若G2表示第二目标数据表为第二类数据表,则执行步骤S510;其中,第二目标数据表为根据F2确定的需进行数据插入的数据表;
S510、获取每一数据表名称中包括G2的子数据表的数据表名称中的时间段Y1,Y2,...,Yb,...,Yh;其中,b=1,2,...,h;h为数据表名称中包括G2的子数据表的数量;
S520、若Yb与time2存在相同的时间节点,则将其对应的子数据表确定为第二目标子数据表,并将第二目标子数据表发送至客户端;
S530、获取客户端发送的随机数值a;
S540、将F2存储至a对应的第二目标子数据表中。
在本申请的一种示例性实施例中,每一milvus数据库中第j个第二类数据表还包括一个历史子数据表,历史子数据表的数据表名称为Name2j。
在本申请的一种示例性实施例中,步骤S220,还包括:
S221、若Hq与time1不存在相同的时间节点,则将F1与数据表名称中包括G1的历史子数据表中每一数据向量进行特征比对处理,得到第二相似度集E=(E1,E2,...,Ee,...,Ek);其中,e=1,2,...,k;k为数据表名称中包括G1的历史子数据集中数据向量的数量;Ee为F1与数据表名称中包括G1的历史子数据集中第e个数据向量之间的相似度;
S222、将E发送至客户端;
客户端在接收到每一milvus数据库返回的第二相似度集后,执行以下步骤:
S223、若Ee>g,则将Ee对应的数据向量确定为目标向量,并进行展示;其中,g为预设的相似度阈值。
在本申请的一种示例性实施例中,客户端还执行以下步骤:
S700、获取用户的数据表增加指令A3=(D1,D2)并发送至每一milvus数据库中,D1=(Name3,time3);其中,D1为A3对应的待增加数据表的数据表名称;D2为A3对应的待增加数据表的索引名称;Name3为待增加数据表的数据表名称中的共用名称;time3为待增加数据表的数据表名称中的时间段;
每一milvus数据库在接收到A3后,均执行以下步骤:
S710、根据Name3确定第三目标数据表的数据表类型G3;若G3表示第三目标数据表为第二类数据表,则执行步骤S720;其中,第三目标数据表为根据Name3确定的需进行数据表增加的数据表;
S720、获取每一数据表名称中包括G3的子数据表的数据表名称中的时间段R1,R2,...,Rt,...,Ru;其中,t=1,2,...,u;u为数据表名称中包括G3的子数据表的数量;Rt为第t个数据表名称中包括G3的子数据表的数据表名称中的时间段;
S730、若Rt与time3存在相同的时间节点,则执行步骤S740;若Rt与time3不存在相同的时间节点,则执行步骤S750;
S740、向客户端发送数据表增加失败提示;
S750、建立第三目标子数据表;第三目标子数据表的数据表名称为D1,并建立D1和D2的关联关系。
在本申请的一种示例性实施例中,客户端还执行以下步骤:
S800、将用户输入的数据表删除指令A4=(Name4,time4)发送至每一milvus数据库中;其中,Name4为待删除数据表的数据表名称中的数据表类型字段;time4为待删除数据表的数据表名称中的时间段;
每一milvus数据库在接收到A1后,均执行以下步骤:
S810、根据Name4确定第四目标数据表的数据表类型G4;若G4表示第四目标数据表为第二类数据表,则执行步骤S820;其中,第四目标数据表为根据Name4确定的需进行数据表删除的数据表;
S820、获取每一数据表名称中包括G4的子数据表的数据表名称中的时间段Q1,Q2,...,Qf,...,Ql;其中,f=1,2,...,l;l为数据表名称中包括G4的子数据表的数量;Qf为第f个数据表名称中包括G4的子数据表的数据表名称中的时间段;
S830、若Qf与time4存在相同的时间节点,则执行步骤S840;若Qf与time4不存在相同的时间节点,则执行步骤S850;
S840、将数据表名称包括Qf的子数据表删除;
S850、向客户端发送数据表删除失败提示。
在本申请的一种示例性实施例中,步骤S230,包括:
S231、获取当前时间周的时间段time5=[TI1,TI2];若time1与time5存在相同的时间节点,则执行步骤S232;若time1与time5不存在相同的时间节点,则执行步骤S233;其中,TI1为time5对应的起始时间点;TI2为time5对应的截止时间点;TI1<TI2;
S232、根据F1的数据量,获取对应的第一查询参数,并将第一查询参数确定为目标查询参数,执行步骤S234;其中,第一查询参数和数据向量的数据量的对应关系存储在每一milvus数据库中;
S233、获取客户端发送的用户输入的第二查询参数,并将第二查询参数确定为目标查询参数,执行步骤S234;
S234、根据目标查询参数,将F1与每一第一目标子数据表中每一数据向量进行特征比对处理,得到第一相似度集B=(B1,B2,...,Bc,...,Bd),Bc=(Bc1,Bc2,...,Bcr,...,Bcs);其中,c=1,2,...,d;r=1,2,...,s;d为第一目标子数据表的数量;Bc为第c个第一目标子数据表对应的相似度子集;s为第c个第一目标子数据表中数据向量的数量;Bcr为F1与第c个第一目标子数据表的第r个数据向量之间的相似度。
在本申请的一种示例性实施例中,将步骤S300替换为:
S310、获取每一milvus数据库发送的数据向量对应的相似度,得到目标相似度集O1=(O11,O12,...,O1m,...,O1w);其中,m=1,2,...,w;w为客户端接收到的数据向量对应的相似度的数量;O1m为F1与第m个数据向量之间的相似度;
S320、按照数值递减,对O11,O12,...,O1m,...,O1w进行排序,得到排序后相似度集O2=(O21,O22,...,O2m,...,O2w);其中,O2m为O2中第m个相似度;
S330、将O21,O22,...,O2α,...,O2β对应的数据向量确定为目标向量,并进行展示;其中,α=1,2,...,β;β≤w;O2α为F1与O2中第α个数据向量之间的相似度。
根据本申请的一个方面,提供一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现所述基于单机向量数据库的数据处理系统的方法。
根据本申请的一个方面,提供一种电子设备,包括处理器和所述非瞬时性计算机可读存储介质。
本发明至少具有以下有益效果:
本发明的基于单机向量数据库的数据处理系统中包括若干个第一类数据表和第二类数据表,每个第二类数据表又包括若干个子数据表,同一个第二类数据表对应的若干个子数据表的类型相同,且对应的数据存储时间段不同,根据时间节点对数据进行分类查询或插入。当执行数据查询指令时,每个milvus数据库采用并发查询方式,同时对待查询数据向量进行批量相似度比对,提高了系统的查询性能;在执行数据插入指令时,选择随机的milvus数据库进行插入,保证了各个milvus数据库的存储节点的负载均衡。且使用单机milvus数据库作为数据处理系统的组成数据库,对单机milvus数据库进行拓展,降低了部署和维护的难度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于单机向量数据库的数据处理系统的连接图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一个实施例公开了一种基于单机向量数据库的数据处理系统,如图1所示,包括客户端和与客户端通讯连接的n个milvus数据库;n个milvus数据库相互之间不具有通讯连接,为milvus数据库的单机分布方式;每一milvus数据库中均包括x个第一类数据表和y个第二类数据表;每一milvus数据库中第i个第一类数据表的数据表名称均为Name1i;不同milvus数据库中数据表名称相同的第一类数据表内存储的数据向量不同;其中,i=1,2,...,x;每一milvus数据库中第j个第二类数据表均包括f(j)个子数据表,每一milvus数据库中第j个第二类数据表的f(j)个子数据表的数据表名称均分别为N1 j,N2 j,...,Np j,...,Nf(j) j,Np j=(Name2j,Tj,p);其中,j=1,2,...,y;p=1,2,...,f(j);f(j)为第j个第二类数据表中子数据表的数量;Np j为每一milvus数据库中第j个第二类数据表的第p个子数据表的数据表名称;Name2j为每一milvus数据库中第j个第二类数据表的每一子数据表的共用名称,且用于表示第j个第二类数据表的数据表类型;Tj,p为每一milvus数据库中第j个第二类数据表的第p个子数据表对应的时间段,且Tj,1,Tj,2,...,Tj,p,...,Tj,f(j)相互不同。每一milvus数据库中第j个第二类数据表还包括一个历史子数据表,历史子数据表的数据表名称为Name2j,历史子数据表的数据表名称只有一个共用名称,不存在时间段,历史子数据表可以为用户没有进行时间分类的历史查询数据或系统存在的历史遗留数据,即没有按照时间分类的数据信息。
第二类数据表中的每个子数据表都是独立存在的,每个第二类数据表由其对应的若干个子数据表组成,每个milvus数据库中对应的数据表的名称相同,如在第一个milvus数据库中存在一个名称为abc的数据表,那么在其他milvus数据库中也存在一个名称为abc的数据表,且同一个milvus数据库中的数据表名称均不同,同一个第二类数据表对应的子数据表的共用名称相同,共用名称既表示子数据表所对应的第二类数据表,也表示对应子数据表的类型,且每个子数据表的数据表名称还包括有一个时间段,表示其存储的数据均为此时间段的数据,用于以时间为标准对子数据表内的数据进行统计,由于每个子数据表的数据表名称均不同,所以,在同一个milvus数据库中的每个子数据表的时间段也都不相同,且不存在交集,同一个milvus数据库中的子数据表的时间段可以连续,如在第一个milvus数据库中,第一个子数据表的时间段表示为2022年的第一周,那么在第一个milvus数据库中,其他的子数据表就不可以存储2022年第一周的数据,以防存在一个数据存储多个子数据表的情况,但其他子数据表的时间段可以为2022年的第二周,将存储时间进行连续,以确保当不同的存储时间的数据需要插入或查询时,可以找到对应时间的子数据表进行插入或查询操作。
本发明所述的基于单机向量数据库的数据处理系统,可以对数据进行查询、插入操作,和对数据表进行增加、删除、加载、释放操作。
当用户需要对某一个数据进行查询操作时,客户端执行以下步骤:
S100、将用户输入的数据查询指令A1=(time1,F1)发送至每一milvus数据库中;其中,time1为A1对应的查询时间段;F1为A1对应的待查询数据向量,即用户输入的需要查询的数据;
每一milvus数据库在接收到A1后,均执行以下步骤:
S200、根据F1确定第一目标数据表的数据表类型G1;若G1表示第一目标数据表为第二类数据表,则执行步骤S210;其中,第一目标数据表为根据F1确定的需进行数据查询的数据表;
S210、获取每一数据表名称中包括G1的子数据表的数据表名称中的时间段H1,H2,...,Hq,...,Hz;其中,q=1,2,...,z;z为数据表名称中包括G1的子数据表的数量;Hq为第q个数据表名称中包括G1的子数据表的数据表名称中的时间段;
S220、若Hq与time1存在相同的时间节点,则将其对应的子数据表确定为第一目标子数据表,并执行步骤S230;
进一步,步骤S220,还包括:
S221、若Hq与time1不存在相同的时间节点,则将F1与数据表名称中包括G1的历史子数据表中每一数据向量进行特征比对处理,得到第二相似度集E=(E1,E2,...,Ee,...,Ek);其中,e=1,2,...,k;k为数据表名称中包括G1的历史子数据集中数据向量的数量;Ee为F1与数据表名称中包括G1的历史子数据集中第e个数据向量之间的相似度;
S222、将E发送至客户端;
客户端在接收到每一milvus数据库返回的第二相似度集后,执行以下步骤:
S223、若Ee>g,则将Ee对应的数据向量确定为目标向量,并进行展示;其中,g为预设的相似度阈值;
S230、将F1与每一第一目标子数据表中每一数据向量进行特征比对处理,得到第一相似度集;第一相似度集包括当前的milvus数据库中每一第一目标子数据表对应的相似度子集,每一相似度子集包括其对应的第一目标子数据表中每一数据向量与F1之间的相似度;
具体的,步骤S230,包括:
S231、获取当前时间周的时间段time5=[TI1,TI2];若time1与time5存在相同的时间节点,则执行步骤S232;若time1与time5不存在相同的时间节点,则执行步骤S233;其中,TI1为time5对应的起始时间点;TI2为time5对应的截止时间点;TI1<TI2;
S232、根据F1的数据量,获取对应的第一查询参数,并将第一查询参数确定为目标查询参数,执行步骤S234;其中,第一查询参数和数据向量的数据量的对应关系存储在每一milvus数据库中;
S233、获取客户端发送的用户输入的第二查询参数,并将第二查询参数确定为目标查询参数,执行步骤S234;
S234、根据目标查询参数,将F1与每一第一目标子数据表中每一数据向量进行特征比对处理,得到第一相似度集B=(B1,B2,...,Bc,...,Bd),Bc=(Bc1,Bc2,...,Bcr,...,Bcs);其中,c=1,2,...,d;r=1,2,...,s;d为第一目标子数据表的数量;Bc为第c个第一目标子数据表对应的相似度子集;s为第c个第一目标子数据表中数据向量的数量;Bcr为F1与第c个第一目标子数据表的第r个数据向量之间的相似度;
S240、将第一相似度集发送至客户端;
客户端在接收到每一milvus数据库返回的第一相似度集后,执行以下步骤:
S300、将每一第一相似度集中大于相似度阈值的相似度对应的数据向量确定为目标向量,并进行展示。
步骤S300是将相似度大于相似度阈值的数据向量确定为目标向量,但若是相似度阈值设定的过小,或第一相似度集中的相似度数值普遍偏高,就会导致很多数据向量被确定为目标向量进行展示,那么客户端要展示的目标向量就会过多,用户也无法找到相似度最高的数据向量,反而会因为展示的目标向量数量过多,而影响用户体验。
所以,为了使每次客户端展示的数据向量定量,就需提出步骤S300的另一实施例,如下:将步骤S300替换为:
S310、获取每一milvus数据库发送的数据向量对应的相似度,得到目标相似度集O1=(O11,O12,...,O1m,...,O1w);其中,m=1,2,...,w;w为客户端接收到的数据向量对应的相似度的数量;O1m为F1与第m个数据向量之间的相似度;
S320、按照数值递减,对O11,O12,...,O1m,...,O1w进行排序,得到排序后相似度集O2=(O21,O22,...,O2m,...,O2w);其中,O2m为O2中第m个相似度;
S330、将O21,O22,...,O2α,...,O2β对应的数据向量确定为目标向量,并进行展示;其中,α=1,2,...,β;β≤w;O2α为F1与O2中第α个数据向量之间的相似度。
步骤S300的第二实施例中,是通过把所有客户端接收到的数据向量的相似度进行由大到小的数值排序,选出前β个数据向量,作为目标向量,β可以为用户指定,也可以系统默认值,使客户端输出展示的数据向量的数量固定,用户体验感提升的同时,也可知晓所有数据向量中最高相似度的数据向量的特征。
在数据查询操作中,采取对所有milvus数据库的并发查询的方式,即每个milvus数据库都独立同时查询,当一个milvus数据库在数据查询时,不会对其他milvus数据库的数据查询产生影响,提高了系统的查询性能。
当用户需要对某一个数据进行插入操作时,客户端执行以下步骤:
S400、将用户的数据插入指令A2=(time2,F2)发送至每一milvus数据库中;其中,time2为A2对应的插入时间段;F2为A2对应的待插入数据向量;
每一milvus数据库在接收到A2后,均执行以下步骤:
S500、根据F2确定第二目标数据表的数据表类型G2;若G2表示第二目标数据表为第二类数据表,则执行步骤S510;其中,第二目标数据表为根据F2确定的需进行数据插入的数据表;
S510、获取每一数据表名称中包括G2的子数据表的数据表名称中的时间段Y1,Y2,...,Yb,...,Yh;其中,b=1,2,...,h;h为数据表名称中包括G2的子数据表的数量;
S520、若Yb与time2存在相同的时间节点,则将其对应的子数据表确定为第二目标子数据表,并将第二目标子数据表发送至客户端;
S530、获取客户端发送的随机数值a;
S540、将F2存储至a对应的第二目标子数据表中。
在执行数据插入操作时,先获取用户的数据插入指令中的插入时间段,即用户要将待插入数据向量插入到哪一个时间段内,然后根据待插入数据向量确定其要插入的数据表的类型,根据数据表类型去对应的子数据表中查找数据表名称与插入时间段存在相同时间节点的子数据表,若存在此子数据表,则将其确定为第二目标子数据表。由于每个milvus数据库中都存在相同数据表名称的子数据表,所以,待插入数据向量就可以插入至任何一个milvus数据库中的第二目标子数据表,目前的数据插入方式是直接将数据按照顺序插入,如系统中存在8个milvus数据库,如有数据需要插入时,就将待插入数据插入至第一个milvus数据库中,当第一个milvus数据库满载时,才会插入第二个milvus数据库中,按照milvus数据库的顺序进行插入,但此种插入方式存在弊端,即每个milvus数据库的节点的负载不同,有的milvus数据库中存储的数据量过大,而有的milvus数据库中存储的数据量几乎没有,这就导致在后续的数据查找时所耗费的时间很大,因为在数据查找时,要对每个milvus数据库都进行并行查询,数据量小的milvus数据库查询的时间就短,而数据量大的milvus数据库查询的时间就长,会造成查询时间不一致,导致整个查询时间过长,所以,为了解决此问题,本发明就提出将待插入数据随机存储的方式,即生成一个随机数值a,将待插入数据存储至a对应的milvus数据库的第二目标子数据表中,以保证系统中每个milvus数据库的存储节点的负载均衡。
当用户需要对某一个数据表进行增加操作时,客户端执行以下步骤:
S700、获取用户的数据表增加指令A3=(D1,D2)并发送至每一milvus数据库中,D1=(Name3,time3);其中,D1为A3对应的待增加数据表的数据表名称;D2为A3对应的待增加数据表的索引名称,索引名称用于方便查找与其名称一致的数据表,相当于一个索引记录;Name3为待增加数据表的数据表名称中的共用名称;time3为待增加数据表的数据表名称中的时间段;数据表增加指令也即数据表创建指令;
每一milvus数据库在接收到A3后,均执行以下步骤:
S710、根据Name3确定第三目标数据表的数据表类型G3;若G3表示第三目标数据表为第二类数据表,则执行步骤S720;其中,第三目标数据表为根据Name3确定的需进行数据表增加的数据表;
S720、获取每一数据表名称中包括G3的子数据表的数据表名称中的时间段R1,R2,...,Rt,...,Ru;其中,t=1,2,...,u;u为数据表名称中包括G3的子数据表的数量;Rt为第t个数据表名称中包括G3的子数据表的数据表名称中的时间段;
S730、若Rt与time3存在相同的时间节点,则执行步骤S740;若Rt与time3不存在相同的时间节点,则执行步骤S750;
S740、向客户端发送数据表增加失败提示;
S750、建立第三目标子数据表;第三目标子数据表的数据表名称为D1,并建立D1和D2的关联关系。
在进行数据表增加操作,即数据表创建操作时,用户输入待增加数据表的数据表名称和对应的索引名称,索引名称和数据表名称一致,数据表名称中包括数据表的类型和要创建的时间段,根据待增加数据表的数据表名称来确定创建的数据表的类型,再根据待增加数据表的时间段来对milvus数据库中该类型的所有子数据表进行查询,对比同类型子数据表的数据表名称中的时间段信息,若两个时间段存在相同时间节点,则表示用户输入的创建时间段在milvus数据库中已存在有对应时间段的子数据表,为了使milvus数据库中每个子数据表的存储时间都不同,所以,返回创建失败;若两个时间段不存在相同的时间节点,则表示用户输入的创建时间段在milvus数据库中不存在对应时间段的子数据表,则创建成功,在每个milvus数据库中都建立一个以用户输入的待增加数据表的数据表名称为数据表名称的子数据表。
当用户需要对某一个数据表进行删除操作时,客户端执行以下步骤:
S800、将用户输入的数据表删除指令A4=(Name4,time4)发送至每一milvus数据库中;其中,Name4为待删除数据表的数据表名称中的数据表类型字段;time4为待删除数据表的数据表名称中的时间段;
每一milvus数据库在接收到A1后,均执行以下步骤:
S810、根据Name4确定第四目标数据表的数据表类型G4;若G4表示第四目标数据表为第二类数据表,则执行步骤S820;其中,第四目标数据表为根据Name4确定的需进行数据表删除的数据表;
S820、获取每一数据表名称中包括G4的子数据表的数据表名称中的时间段Q1,Q2,...,Qf,...,Ql;其中,f=1,2,...,l;l为数据表名称中包括G4的子数据表的数量;Qf为第f个数据表名称中包括G4的子数据表的数据表名称中的时间段;
S830、若Qf与time4存在相同的时间节点,则执行步骤S840;若Qf与time4不存在相同的时间节点,则执行步骤S850;
S840、将数据表名称包括Qf的子数据表删除;
S850、向客户端发送数据表删除失败提示。
数据表删除操作和数据表增加操作的步骤类似,均通过用户输入的数据表类型字段查找每个milvus数据库中的同类型子数据表,再通过用户输入的时间段在同类型子数据表中查找是否存在相同时间节点的子数据表,若存在,则删除,若不存在,则返回删除失败提示。
本发明的基于单机向量数据库的数据处理系统使用单机milvus数据库作为数据处理系统的组成数据库,对单机milvus数据库进行拓展,降低了部署和维护的难度。数据处理系统中包括若干个第一类数据表和第二类数据表,每个第二类数据表又包括若干个子数据表,同一个第二类数据表对应的若干个子数据表的类型相同,且对应的数据存储时间段不同,根据时间节点对数据进行分类查询或插入。当执行数据查询指令时,每个milvus数据库采用并发查询方式,同时对待查询数据向量进行批量相似度比对,提高了系统的查询性能;在执行数据插入指令时,选择随机的milvus数据库进行插入,保证了各个milvus数据库的存储节点的负载均衡。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。
Claims (10)
1.一种基于单机向量数据库的数据处理系统,其特征在于,包括客户端和与所述客户端通讯连接的n个milvus数据库;n个milvus数据库相互之间不具有通讯连接;
每一所述milvus数据库中均包括x个第一类数据表和y个第二类数据表;
每一所述milvus数据库中第i个第一类数据表的数据表名称均为Name1i;不同milvus数据库中数据表名称相同的第一类数据表内存储的数据向量不同;其中,i=1,2,...,x;
每一所述milvus数据库中第j个第二类数据表均包括f(j)个子数据表,每一所述milvus数据库中第j个第二类数据表的f(j)个子数据表的数据表名称均分别为N1 j,N2 j,...,Np j,...,Nf(j) j,Np j=(Name2j,Tj,p);其中,j=1,2,...,y;p=1,2,...,f(j);f(j)为第j个第二类数据表中子数据表的数量;Np j为每一所述milvus数据库中第j个第二类数据表的第p个子数据表的数据表名称;Name2j为每一所述milvus数据库中第j个第二类数据表的每一子数据表的共用名称,且用于表示第j个第二类数据表的数据表类型;Tj,p为每一所述milvus数据库中第j个第二类数据表的第p个子数据表对应的时间段,且Tj,1,Tj,2,...,Tj,p,...,Tj,f(j)相互不同;
所述客户端用于执行以下步骤:
S100、将用户输入的数据查询指令A1=(time1,F1)发送至每一所述milvus数据库中;其中,time1为A1对应的查询时间段;F1为A1对应的待查询数据向量;
每一所述milvus数据库在接收到A1后,均执行以下步骤:
S200、根据F1确定第一目标数据表的数据表类型G1;若G1表示第一目标数据表为第二类数据表,则执行步骤S210;其中,第一目标数据表为根据F1确定的需进行数据查询的数据表;
S210、获取每一数据表名称中包括G1的子数据表的数据表名称中的时间段H1,H2,...,Hq,...,Hz;其中,q=1,2,...,z;z为数据表名称中包括G1的子数据表的数量;Hq为第q个数据表名称中包括G1的子数据表的数据表名称中的时间段;
S220、若Hq与time1存在相同的时间节点,则将其对应的子数据表确定为第一目标子数据表,并执行步骤S230;
S230、将F1与每一所述第一目标子数据表中每一数据向量进行特征比对处理,得到第一相似度集;所述第一相似度集包括当前的milvus数据库中每一第一目标子数据表对应的相似度子集,每一所述相似度子集包括其对应的第一目标子数据表中每一数据向量与F1之间的相似度;
S240、将所述第一相似度集发送至所述客户端;
所述客户端在接收到每一所述milvus数据库返回的第一相似度集后,执行以下步骤:
S300、将每一第一相似度集中大于相似度阈值的相似度对应的数据向量确定为目标向量,并进行展示。
2.根据权利要求1所述的系统,其特征在于,所述客户端还执行以下步骤:
S400、将用户的数据插入指令A2=(time2,F2)发送至每一所述milvus数据库中;其中,time2为A2对应的插入时间段;F2为A2对应的待插入数据向量;
每一所述milvus数据库在接收到A2后,均执行以下步骤:
S500、根据F2确定第二目标数据表的数据表类型G2;若G2表示第二目标数据表为第二类数据表,则执行步骤S510;其中,第二目标数据表为根据F2确定的需进行数据插入的数据表;
S510、获取每一数据表名称中包括G2的子数据表的数据表名称中的时间段Y1,Y2,...,Yb,...,Yh;其中,b=1,2,...,h;h为数据表名称中包括G2的子数据表的数量;
S520、若Yb与time2存在相同的时间节点,则将其对应的子数据表确定为第二目标子数据表,并将第二目标子数据表发送至所述客户端;
S530、获取客户端发送的随机数值a;
S540、将F2存储至a对应的第二目标子数据表中。
3.根据权利要求1所述的系统,其特征在于,每一所述milvus数据库中第j个第二类数据表还包括一个历史子数据表。
4.根据权利要求3所述的系统,其特征在于,所述步骤S220,还包括:
S221、若Hq与time1不存在相同的时间节点,则将F1与数据表名称中包括G1的历史子数据表中每一数据向量进行特征比对处理,得到第二相似度集E=(E1,E2,...,Ee,...,Ek);其中,e=1,2,...,k;k为数据表名称中包括G1的历史子数据集中数据向量的数量;Ee为F1与数据表名称中包括G1的历史子数据集中第e个数据向量之间的相似度;
S222、将E发送至所述客户端;
所述客户端在接收到每一所述milvus数据库返回的第二相似度集后,执行以下步骤:
S223、若Ee>g,则将Ee对应的数据向量确定为目标向量,并进行展示;其中,g为预设的相似度阈值。
5.根据权利要求1所述的系统,其特征在于,所述客户端还执行以下步骤:
S700、获取用户的数据表增加指令A3=(D1,D2)并发送至每一所述milvus数据库中,D1=(Name3,time3);其中,D1为A3对应的待增加数据表的数据表名称;D2为A3对应的待增加数据表的索引名称;Name3为待增加数据表的数据表名称中的共用名称;time3为待增加数据表的数据表名称中的时间段;
每一所述milvus数据库在接收到A3后,均执行以下步骤:
S710、根据Name3确定第三目标数据表的数据表类型G3;若G3表示第三目标数据表为第二类数据表,则执行步骤S720;其中,第三目标数据表为根据Name3确定的需进行数据表增加的数据表;
S720、获取每一数据表名称中包括G3的子数据表的数据表名称中的时间段R1,R2,...,Rt,...,Ru;其中,t=1,2,...,u;u为数据表名称中包括G3的子数据表的数量;Rt为第t个数据表名称中包括G3的子数据表的数据表名称中的时间段;
S730、若Rt与time3存在相同的时间节点,则执行步骤S740;若Rt与time3不存在相同的时间节点,则执行步骤S750;
S740、向所述客户端发送数据表增加失败提示;
S750、建立第三目标子数据表;所述第三目标子数据表的数据表名称为D1,并建立D1和D2的关联关系。
6.根据权利要求1所述的系统,其特征在于,所述客户端还执行以下步骤:
S800、将用户输入的数据表删除指令A4=(Name4,time4)发送至每一所述milvus数据库中;其中,Name4为待删除数据表的数据表名称中的数据表类型字段;time4为待删除数据表的数据表名称中的时间段;
每一所述milvus数据库在接收到A1后,均执行以下步骤:
S810、根据Name4确定第四目标数据表的数据表类型G4;若G4表示第四目标数据表为第二类数据表,则执行步骤S820;其中,第四目标数据表为根据Name4确定的需进行数据表删除的数据表;
S820、获取每一数据表名称中包括G4的子数据表的数据表名称中的时间段Q1,Q2,...,Qf,...,Ql;其中,f=1,2,...,l;l为数据表名称中包括G4的子数据表的数量;Qf为第f个数据表名称中包括G4的子数据表的数据表名称中的时间段;
S830、若Qf与time4存在相同的时间节点,则执行步骤S840;若Qf与time4不存在相同的时间节点,则执行步骤S850;
S840、将数据表名称包括Qf的子数据表删除;
S850、向所述客户端发送数据表删除失败提示。
7.根据权利要求1所述的系统,其特征在于,所述步骤S230,包括:
S231、获取当前时间周的时间段time5=[TI1,TI2];若time1与time5存在相同的时间节点,则执行步骤S232;若time1与time5不存在相同的时间节点,则执行步骤S233;其中,TI1为time5对应的起始时间点;TI2为time5对应的截止时间点;TI1<TI2;
S232、根据F1的数据量,获取对应的第一查询参数,并将第一查询参数确定为目标查询参数,执行步骤S234;其中,所述第一查询参数和数据向量的数据量的对应关系存储在每一milvus数据库中;
S233、获取客户端发送的用户输入的第二查询参数,并将第二查询参数确定为目标查询参数,执行步骤S234;
S234、根据所述目标查询参数,将F1与每一所述第一目标子数据表中每一数据向量进行特征比对处理,得到第一相似度集B=(B1,B2,...,Bc,...,Bd),Bc=(Bc1,Bc2,...,Bcr,...,Bcs);其中,c=1,2,...,d;r=1,2,...,s;d为第一目标子数据表的数量;Bc为第c个第一目标子数据表对应的相似度子集;s为第c个第一目标子数据表中数据向量的数量;Bcr为F1与第c个第一目标子数据表的第r个数据向量之间的相似度。
8.根据权利要求1所述的系统,其特征在于,将所述步骤S300替换为:
S310、获取每一所述milvus数据库发送的数据向量对应的相似度,得到目标相似度集O1=(O11,O12,...,O1m,...,O1w);其中,m=1,2,...,w;w为所述客户端接收到的数据向量对应的相似度的数量;O1m为F1与第m个数据向量之间的相似度;
S320、按照数值递减,对O11,O12,...,O1m,...,O1w进行排序,得到排序后相似度集O2=(O21,O22,...,O2m,...,O2w);其中,O2m为O2中第m个相似度;
S330、将O21,O22,...,O2α,...,O2β对应的数据向量确定为目标向量,并进行展示;其中,α=1,2,...,β;β≤w;O2α为F1与O2中第α个数据向量之间的相似度。
9.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8中任意一项的所述系统。
10.一种电子设备,其特征在于,包括处理器和权利要求9中所述的非瞬时性计算机可读存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211433356.5A CN115495457B (zh) | 2022-11-16 | 2022-11-16 | 基于单机向量数据库的数据处理系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211433356.5A CN115495457B (zh) | 2022-11-16 | 2022-11-16 | 基于单机向量数据库的数据处理系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115495457A CN115495457A (zh) | 2022-12-20 |
CN115495457B true CN115495457B (zh) | 2023-04-07 |
Family
ID=85115881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211433356.5A Active CN115495457B (zh) | 2022-11-16 | 2022-11-16 | 基于单机向量数据库的数据处理系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115495457B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910174B (zh) * | 2023-09-12 | 2023-12-22 | 北京市农林科学院信息技术研究中心 | 面向数据方舱的数据存储管理方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377777A (zh) * | 2021-06-29 | 2021-09-10 | 深圳市华曦达科技股份有限公司 | 数据加载方法、设备、计算机程序产品及存储介质 |
CN113672641A (zh) * | 2021-08-18 | 2021-11-19 | 北京金山云网络技术有限公司 | 数据库集群数据处理方法、装置、系统、介质和电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249118B2 (en) * | 2002-05-17 | 2007-07-24 | Aleri, Inc. | Database system and methods |
CN108427684B (zh) * | 2017-02-14 | 2020-12-25 | 华为技术有限公司 | 数据查询方法、装置及计算设备 |
CN114020963A (zh) * | 2021-11-10 | 2022-02-08 | 央视国际网络无锡有限公司 | 一种相似或重复视频检索的方法和装置 |
CN114691720A (zh) * | 2022-03-23 | 2022-07-01 | 上海徐毓智能科技有限公司 | 数据查询方法、数据库系统、可读介质和电子设备 |
CN114676135A (zh) * | 2022-03-25 | 2022-06-28 | 上海徐毓智能科技有限公司 | 数据存储方法、可读介质和电子设备 |
CN115238053A (zh) * | 2022-07-19 | 2022-10-25 | 东北大学 | 基于bert模型的新冠知识智能问答系统及方法 |
-
2022
- 2022-11-16 CN CN202211433356.5A patent/CN115495457B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377777A (zh) * | 2021-06-29 | 2021-09-10 | 深圳市华曦达科技股份有限公司 | 数据加载方法、设备、计算机程序产品及存储介质 |
CN113672641A (zh) * | 2021-08-18 | 2021-11-19 | 北京金山云网络技术有限公司 | 数据库集群数据处理方法、装置、系统、介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115495457A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6662189B2 (en) | Method of performing data mining tasks for generating decision tree and apparatus therefor | |
US20230004347A1 (en) | Merging database tables by classifying comparison signatures | |
US20140222793A1 (en) | System and Method for Automatically Importing, Refreshing, Maintaining, and Merging Contact Sets | |
AU2017268599B2 (en) | Method, device, server and storage medium of searching a group based on social network | |
CN103995879A (zh) | 基于olap系统的数据查询方法、装置及系统 | |
CN115495457B (zh) | 基于单机向量数据库的数据处理系统、设备及存储介质 | |
CN111400482B (zh) | 一种建立问答对的方法及装置 | |
AU2016394744A1 (en) | Database-archiving method and apparatus that generate index information, and method and apparatus for searching archived database comprising index information | |
CN111160699A (zh) | 一种专家推荐方法及系统 | |
RU2711717C1 (ru) | Рекомендательная система подбора персонала с использованием машинного обучения и с понижением размерности многомерных данных и способ подбора персонала с использованием машинного обучения и с понижением размерности многомерных данных | |
WO2024169529A1 (zh) | 知识库的构建方法、数据检索方法、装置和云设备 | |
US7225198B2 (en) | Data compiling method | |
CN117171331A (zh) | 基于大型语言模型的专业领域信息交互方法、装置及设备 | |
JP5061147B2 (ja) | 画像検索装置 | |
CN115408547A (zh) | 一种字典树构建方法、装置、设备及存储介质 | |
US20220222305A1 (en) | Artificial intelligence driven personalization for content authoring applications | |
US8271485B2 (en) | Reply generation apparatus and method and program for causing computer to function as reply generating apparatus | |
JPH11282874A (ja) | 情報フィルタリング方法および装置 | |
KR20220099690A (ko) | 문서를 요약하는 장치, 방법 및 컴퓨터 프로그램 | |
CN111562990A (zh) | 一种基于消息的轻量级无服务器计算方法 | |
CN113220945B (zh) | 一种用于数据血缘的字段检索和路径展示的方法及系统 | |
JP6764973B1 (ja) | 関連語辞書作成システム、関連語辞書作成方法及び関連語辞書作成プログラム | |
JP2000105764A (ja) | 情報フィルタリングシステム | |
CN115455031B (zh) | 一种Doris的数据查询方法、装置、存储介质及设备 | |
CN117194410A (zh) | 一种人工智能语言模型生成业务报表的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |