CN114691720A - 数据查询方法、数据库系统、可读介质和电子设备 - Google Patents

数据查询方法、数据库系统、可读介质和电子设备 Download PDF

Info

Publication number
CN114691720A
CN114691720A CN202210292093.4A CN202210292093A CN114691720A CN 114691720 A CN114691720 A CN 114691720A CN 202210292093 A CN202210292093 A CN 202210292093A CN 114691720 A CN114691720 A CN 114691720A
Authority
CN
China
Prior art keywords
data
query
data set
target
data type
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.)
Pending
Application number
CN202210292093.4A
Other languages
English (en)
Inventor
谢超
夏琮祺
孙秉义
刘晓云
栾小凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Xuyu Intelligent Technology Co ltd
Original Assignee
Shanghai Xuyu Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Xuyu Intelligent Technology Co ltd filed Critical Shanghai Xuyu Intelligent Technology Co ltd
Priority to CN202210292093.4A priority Critical patent/CN114691720A/zh
Publication of CN114691720A publication Critical patent/CN114691720A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24535Query rewriting; Transformation of sub-queries or views

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据处理领域,公开了一种数据查询方法、数据库系统、可读介质和电子设备。该方法包括:确定接收到的第一数据查询请求对应的目标数据集中至少包括一个第一目标数据集,并且,第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中;根据第一目标数据集的迁移状态,确定在第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,或是,在第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果。如此,可以不中断数据迁移操作,并行从第一数据类型的第一目标数据集或第一数据类型的第一目标数据集中查询与第一数据查询请求关联的子查询结果,提高了查询速度,提升了用户体验。

Description

数据查询方法、数据库系统、可读介质和电子设备
技术领域
本申请涉及数据处理领域,特别涉及一种数据查询方法、数据库系统、可读介质和电子设备。
背景技术
随着人工智能技术的发展,深度学习模型在日常生活中的应用越来越广泛,从而用于存储深度学习模型相关的数据的数据库系统,也越来越多,例如用于存储向量的向量数据库系统。
数据库系统通常支持包括多种数据类型,例如流式数据、批式数据等,并且,为了提高数据库系统的性能,例如数据更新速度、数据查询速度、数据库吞吐量等,通常会将一种数据类型迁移为另一种数据类型,例如将流式数据迁移为批式数据。在数据库系统接收到的数据查询请求对应的目标数据集正处于由一种数据类型迁移为另一种数据类型的过程中时,数据库系统需要等待该数据集迁移完成,再从迁移后的数据类型的目标数据集中查询该数据查询请求的查询结果,查询速度慢,降低了数据库系统的查询速度。
发明内容
有鉴于此,本申请实施例提供了一种数据查询方法、数据库系统、可读介质和电子设备。该方法可以根据数据查询请求对应的目标数据集的迁移进度,从迁移前的数据集或迁移后的数据集中查询数据,使数据查询和数据迁移并行执行,有利于提高从数据库查询数据的速度、提升用户查询数据的体验。
第一方面,本申请实施例提供了一种数据查询方法,应用于电子设备,该方法包括:确定接收到的第一数据查询请求对应的目标数据集中至少包括一个第一目标数据集,并且,第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中;根据第一目标数据集的迁移状态,确定在第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,或是,在第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果。
也即是说,在本申请实施例中,电子设备可以根据第一目标数据集的迁移状态(例如第一目标数据集由第一数据类型迁移为第二数据类型的进度),选择从第一数据类型的第一目标数据集或第二数据类型的目标数据集中查询并获取与第一数据查询请求关联的子查询结果,而不是等待第一目标数据集迁移完成后,再从第二数据类型的目标数据集中查询并获取与第一数据查询请求关联的子查询结果,使得数据迁移和数据查询可以并行执行,提高了获取第一数据查询请求的查询结果的速度,提升了用户查询数据的体验。
在上述第一方面的一种可能实现中,上述第一目标数据集的迁移状态,包括第一迁移状态和第二迁移状态:第一迁移状态表明第一数据类型的第一目标数据集中的部分数据已经增加为第二数据类型,并且还未删除第一数据类型的第一目标数据集;第二迁移状态表明第一目标数据集中的全部数据已经增加为第二数据类型,并且第一数据类型的目标数据集中的至少部分数据还未被删除。
在上述第一方面的一种可能实现中,根据第一目标数据集的迁移状态,确定在第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,或是,在第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,包括:在第一目标数据集的迁移状态为第一迁移状态的情况下,确定从第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,并且不中断将第一数据类型的第一目标数据集增加为第二数据类型的第一目标数据集的操作;在第一目标数据集的迁移状态为第二迁移状态的情况下,确定从第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,并且不中断对第一数据类型的第一目标数据集的删除操作。
在本申请实施例中,电子设备可以根据第一目标数据集的迁移状态,来并行执行获取第一查询请求的查询结果的查询操作和对第一目标数据集的迁移操作,例如在第一目标数据集的迁移状态为第一迁移状态的情况下,可以并行执行查询操作和迁移操作中的增加操作,在第一目标数据集的迁移状态为第二迁移状态的情况下,可以并行执行查询操作和迁移操作中的删除操作,而无需等待迁移操作完成后再进行查询操作,提高了获取第一查询请求对应的查询结果的速度,提升了用户查询数据的体验。
在上述第一方面的一种可能实现中,在从第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果的过程中,还包括:检测到第一数据类型的第一目标数据集中的全部数据已经增加为第二数据类型,保持第一数据类型的第一目标数据集中的数据不被删除。
在本申请实施例中,如果检测到第一数据类型的第一目标数据集中的全部数据已经增加为第二数据类型,并且还未从第一数据类型的第一目标数据集获得与第一数据查询请求关联的子查询结果(即在从第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果的过程中),则操作第一数据类型的第一目标数据集中的数据不被删除,从而可以避免在查询第一查询请求的查询结果的过程中第一目标数据集被删除,可以确保目标数据集的完整性,提高查询结果的准确性。
在上述第一方面的一种可能实现中,上述方法还包括:在检测到存在第二数据查询请求访问第一数据类型的第一目标数据集的情况下,在得到第二数据查询请求的查询结果前,保持第一数据类型的第一目标数据集中的数据不被删除。
在本申请实施例中,在删除第一数据类型的第一目标数据集前,可以检测是否有其他数据查询请求(例如第二数据查询请求)在访问第一数据类型的第一目标数据集,并在有其他数据查询请求访问第一数据类型的第一目标数据集的情况下,在得到其他数据查询请求的查询结果前,保持第一数据类型的第一目标数据集中的数据不被删除。如此,可以确保第二数据查询请求的目标数据集的完整性,提升查询结果的准确性。
在上述第一方面的一种可能实现中,上述在从第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果的过程中,还包括:检测到第一数据类型的目标数据集中的全部数据已经增加为第二数据类型,并且第一数据类型的第一目标数据集所在的电子设备的运行状态满足预设条件,暂停从第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果;删除第一数据类型的目标数据集,并且在第二数据类型的第一目标数据集中,继续查询并获取与第一数据查询请求关联的子查询结果。
在本申请实施例中,若确定出第一数据类型的目标数据集中的全部数据已经增加为第二数据类型,并且第一数据类型的第一目标数据集所在的电子设备的运行状态满足预设条件,可以切换至从第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果。可以避免第一目标数据集所在的电子设备的硬件资源不足、访问量过多等造成该电子设备宕机,提高了数据库系统的稳定性。
在上述第一方面的一种可能实现中,上述第一数据类型的第一目标数据集所在的电子设备的运行状态满足预设条件,包括以下条件中的至少一个:第一目标数据集所在电子设备的内存空闲量小于第一阈值或内存使用量大于第二阈值;第一目标数据集所在电子设备的处理器的空闲量小于第三阈值或处理器的使用量大于第四阈值;第一目标数据集所在电子设备处理的第一数据查询请求超过预设数量。
在上述第一方面的一种可能实现中,上述第一数据类型包括以下数据类型中的任意一种:流式数据、批式数据、批量导入式数据,上述第二数据类型包括以下数据类型中的任意一种:流式数据、批式数据、批量导入式数据。
在上述第一方面的一种可能实现中,第一数据查询请求对应的目标数据集存储于数据库系统中,第一数据类型的第一目标数据集存储数据库系统的第一存储区域,第二数据类型的第一目标数据集存储于数据库系统的第二存储区域;并且第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中,包括:第一数据类型的第一目标数据中的至少部分数据已增加为第二数据类型的第一目标数据集中的数据,并且第一数据类型的第一目标数据中的至少部分数据还未被删除。
在上述第一方面的一种可能实现中,上述数据库系统为向量数据库系统。
第二方面,本申请实施例提供了一种数据库系统,该数据库系统包括:协调单元,用于在确定出接收到的第一数据查询请求对应的目标数据集中至少包括一个第一目标数据集,并且,第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中的情况下,根据第一目标数据集的迁移状态,确定在第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,并向第一数据类型的目标数据集所在的查询单元发送从第一数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果的指令,或是,在第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果,并向第二数据类型的目标数据集所在的查询单元发送从第二数据类型的第一目标数据集中查询并获取与第一数据查询请求关联的子查询结果的指令;至少一个查询单元,用于根据协调单元发送的指令,从第一数据类型的目标数据集或第二数据类型的目标数据集中查询并获取与第一数据查询请求关联的子查询结果。
在本申请实施例中,数据库系统可以根据第一目标数据集的迁移状态,来从第一数据类型的第一目标数据集或第二数据类型的第一目标数据集中获取第一查询请求的子查询结果,而不完全中断第一目标数据集由第一数据类型迁移为第二数据类型的过程,提高了从数据库系统查询数据的速度,提升了用户通过数据库系统查询数据的体验。
第三方面,本申请实施例提供了一种可读介质,该可读介质上存储有指令,指令在电子设备上执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据查询方法。
第四方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于执行存储器中存储的指令以实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据查询方法。
附图说明
图1根据本申请的一些实施例,示出了一种数据库系统10的结构示意图;
图2A根据本申请的一些实施例,一种迁移操作的示意图;
图2B根据本申请的一些实施例,示出了一种迁移操作中的增加操作的示意图;
图2C根据本申请的一些实施例,示出了一种迁移操作中的删除操作的示意图;
图3A根据本申请的一些实施例,示出了一种处于增加未完成状态的数据集S5的示意图;
图3B根据本申请的一些实施例,示出了一种处于删除未完成状态的数据集S5的示意图;
图3C根据本申请的一些实施例,示出了另一种处于删除未完成状态的数据集S5的示意图;
图4根据本申请的一些实施例,示出了一种数据查询方法的结构示意图;
图5A根据本申请的一些实施例,示出了一种为查询节点设置节点副本的示意图;
图5B根据本申请的一些实施例,示出了一种为数据集设置数据集副本的示意图;
图6根据本申请的一些实施例,示出了一种数据集S7”中的数据的示意图;
图7根据本申请的一些实施例,示出了一种数据库系统200的结构的示意图;
图8根据本申请的一些实施例,示出了一种电子设备100的结构的示意图。
具体实施方式
本申请的说明性实施例包括但不限于数据查询方法、数据库系统、可读介质和电子设备。
下面结合附图介绍本申请实施例的技术方案。
图1根据本申请的一些实施例,示出了一种数据库系统10的结构示意图。
如图1所示,数据库系统10包括接入层11、协调服务12、执行节点13和存储服务14。
接入层11包括多个代理(proxy),例如代理110、代理111等,对外提供用户连接的接口,例如数据库系统10的应用程序编程接口(Application Program Interface,API),用于接收用户的数据查询请求、向用户返回查询结果等。
协调服务12用于向执行节点13分配任务,包括但不限于集群拓扑节点管理、负载均衡、时间戳生成、数据声明和数据管理等。
在一些实施例中,协调服务12可以包括:
根协调者(root coordinator)120,用于处理数据定义语言(Data DefinitionLanguage,DDL)和数据控制语言(Data Control Language,DCL)请求,比如创建、迁移、删除数据集等,同时负责维护中心授时服务和时间窗口的推进;
查询协调者(query coordinator)121,用于管理查询节点131的拓扑结构和负载均衡以及将数据集由源数据类型迁移为目标数据类型;
数据协调者(data coordinator)122,用于管理数据节点131的拓扑结构,维护数据的元信息以及触发数据转移(flush)(在缓存数据达到预设大小时,将缓存数据转移到磁盘或存储系统中)、数据合并(compact)等后台数据操作;
索引协调者(index coordinator)123用于管理索引节点133的拓扑结构,构建索引和维护索引元信息。
执行节点13用于执行协调服务12下发的指令和代理110/111发起的数据操作语言(Data Manipulation Language,DML)指令。
在一些实施例中,执行节点13可以包括:
数据节点(data node)130,可以用于将由源数据类型的数据集迁移得到的目标数据类型的数据集存储在对象存储141中。可以理解,在一些实施例中,数据节点可以有多个,例如数据节点130A、数据节点130B等。
查询节点(query node)131,可以用于根据协调服务12或接入层10中的代理的指令,进行数据操作,例如,根据代理110/111的数据查询指令,查询数据查询请求对应的查询结果,并将查询结果发送给代理110/111。又例如,根据协调服务12的数据迁移指令,将查询节点中的数据集由源数据类型转换为目标数据类型。
可以理解,在一些实施例中,查询节点是无状态的,也即是各查询节点可以只对查询协调者121发送的指令进行响应,而无需关注其他查询节点的运行状态。如此,用户可以根据需要,例如数据量、数据查询请求的并发访问数量等,在数据库系统10中设置不同数量的查询节点,提升了数据库系统10的可扩展性。
索引节点(index node)132,可以用于对数据库系统中的数据/数据集构建索引,以便于对数据/数据集进行存储和查询。可以理解,在一些实施例中,索引节点可以有多个,例如索引节点132A、索引节点132B等。
存储服务14,用于存储数据库的数据,实现数据库中的数据的持久化。
在一些实施例中,存储服务14可以包括:
元数据存储(meta store)140,可以用于存储数据库系统中的元数据,例如各节点的状态信息、数据集等。在一些实施例中,元数据存储140可以通过ETCDTM(一种分布式键值存储系统,可用于分布式系统中存储关键核心数据)来实现,在另一些实施例中,元数据存储140也可以通过其他实现,在此不做限定。
对象存储(object storage)141,可以用于存储数据库系统的日志的文件、标量/向量索引文件以及查询的中间处理结果。在一些实施例中,对象存储141可以用简便的存储服务(Simple Storage Service,AWS S3)来实现,也可以通过Azure Blob(MicrosoftTM针对云的对象存储解决方案)来实现。在另一些实施例中,对象存储141也可以基于内存或固态硬盘(Solid State Disk,SSD)的缓存池,通过冷热分离的形式来实现,本申请实施例对象存储的实现方式不做限定。
消息存储(log broker)142可是一种支持回放的发布订阅系统,可以用于在执行节点宕机恢复时通过回放消息存储保证增量数据的完整性、持久化流式写入的数据、异步执行查询、事件通知和结果返回。在一些实施例中,消息存储142可以通过apache pulsarTM、RocksDBTM、apache kafkaTM、PravegaTM等流式存储系统来实现,也可以通过其他流式存储系统来实现,本申请实施例对消息存储142的实现方式不做限定。
在数据库系统10中,代理110/111接收到客户端00发送的数据查询请求后,将数据查询请求转发给查询协调者121,查询协调者121根据数据查询请求中的查询特征(例如特征向量、结果数量、特征类型(即前述非结构化数据的类型)等),确定出数据查询请求对应的目标数据集所在的至少一个查询节点(例如查询节点131A和132B),并将数据查询请求转发给各查询节点,各查询节点根据数据查询请求,在各查询节点的目标数据集中查询查询请求的子查询结果并将子查询结果返回给代理110/111,再由代理110/111对各查询节点的子查询结果进行汇总后,得到数据查询请求的查询结果,并将查询结果返回给用户,例如发送给客户端00。
可以理解,图1所示的数据库系统10的结构只是一种示例,在另一些实施例中,数据库系统10可以包括更多或更少的模块,也可以组合或拆分部分模块,在此不做限定。
可以理解,图1所示的数据库系统10中的各模块可以部署在同一电子设备,也可以部署在不同的电子设备中,在此不做限定。并且,数据库系统10既可以被实现为单一的电子设备,也可以被实现为服务器集群的形式。
可以理解,在一些实施例中,数据库系统10可以是向量数据库。该数据库中存储于各类非结构化数据(例如,文本、图像、音频、视频、DNA序列、商品信息、物质结构等)的特征向量,可以根据用户提供的搜索数据或搜索数据的特征向量,得到与该搜索数据或搜索数据的特征向量相关/相似的结果,可以用于从海量数据库中即时返回与上传图片最相似的图片、根据视频关键帧检索相似视频或进行实时视频推荐、快速检索海量演讲/音乐/音效等音频数据并返回相似音频、检索相似化学分子结构/超结构/子结构、根据用户行为及需求推荐相关信息或商品、交互式智能问答机器人可自动为用户答疑解惑、通过对比相似DNA序列对基因进行分类、帮助用户从文本数据库中通过关键词搜索所需信息等场景中。
可以理解,本申请实施例提供的数据查询方法适用于任意存在数据迁移操作的数据库系统,为便于描述,以下以结合图1所示的数据库系统10的结构,介绍本申请实施例的技术方案。
如前所述,数据库系统在接收到的数据查询请求对应的目标数据集正处于由一种数据类型迁移为另一种数据类型的过程中时,数据库系统需要等待该数据集迁移完成,再从迁移后的数据类型的目标数据集中查询该数据查询请求的查询结果,查询速度慢,降低了数据库系统的查询速度。
例如,在代理110接收到数据查询请求后,将数据查询请求转发给查询协调者121,查询协调者121确定出数据查询请求对应的目标数据集正处于由源数据类型迁移为目标数据类型的数据迁移过程中(例如,参考图2A,假设目标数据集中的数据集S5正处于由查询节点131A中的流式数据迁移至查询节点131B中的批式数据),则需要等待源数据类型迁移为目标数据类型后(例如流式数据的数据集S5迁移为批式数据的数据集S5后),才能由目标数据类型的目标数据集所在的查询节点(例如批式数据的数据集S5所在的查询节点131B),从目标数据类型的目标数据集(例如批式数据的数据集S5)中查询数据查询请求的查询结果,再将查询结果返回到代理110,并由代理110向数据查询请求的发送者(例如客户端00)提供查询结果。由于数据迁移操作过程中包括数据写入、数据删除等操作,耗时较长,数据库系统10在接收到数据查询请求后,需要等待目标数据集迁移完成后才能返回查询结果,降低了数据库系统10的查询速度,影响用户从数据库系统查询数据的体验。
为此,本申请实施例提供了一种数据查询方法,应用于数据库系统,数据库系统在确定出接收到的数据查询请求对应的目标数据集正处于由源数据类型迁移为目标据类型的过程中时,根据目标数据集的迁移状态,确定从源数据类型的目标数据集或目标数据类型的目标数据集中查询所述数据查询请求对应的查询结果,如此,数据查询操作可以和数据迁移操作并行执行,提高了数据库系统的查询速度,提升了用户从数据库系统查询数据的体验。
可以理解,数据迁移操作(handoff)是指将一种数据类型(源数据类型)的数据集转换为另外一种数据类型(目标数据类型)的数据集。通常包括两个步骤,将源数据类型的数据集转换并存储为目标数据类型的数据集(增加操作,add),以及删除源数据类型的数据集(删除操作,delete)。一般地,为避免数据迁移失败导致数据丢失,通常在源数据类型的数据集全部完成增加操作后,存储为目标数据类型的数据集后,再对源数据类型执行删除操作。例如,参考图2B和图2C,对于前述将查询节点131A中的流式数据的数据集S5迁移为查询节点131B中的批式数据的数据集S5'的迁移过程,add操作即是将流式数据的数据集S5转换为批式数据的数据集S5'并存储在查询节点131B中(如图2B所示),delete操作即是从查询节点131A中删除流式数据的数据集S5(如图2C所示)。
可以理解,在一些实施例中,源数据类型的数据集和目标类型的数据集存储于数据库系统1中的不同存储区域中,例如源数据类型的数据集和目标类型的数据集可以存储于同一查询节点的不同存储区域,也可以存储于数据库系统1中的不同查询节点中。
可以理解,源数据类型的数据集和目标数据类型的数据集中的数据的数量和各数据的具体内容相同。
可以理解,数据迁移操作可以将源数据类型的数据集迁移到源数据类型的数据集所在的查询节点,也可以迁移到其他查询节点中,在此不做限定。
可以理解,在一些实施例中,消息存储142在缓存的流式数据的大小达到预设大小的情况下,会向查询节点131中的节点发送数据迁移请求,响应于该数据迁移请求,查询节点131中的节点会将缓存的流式数据迁移为批式数据。
可以理解,目标数据类型和源数据类型可以是数据库系统支持的任意数据类型,包括但不限于流式数据(也称为实时数据、增量数据等)、批式数据(也称为历史数据等)、批量导入式数据等,在此不做限定。为便于描述,以下各实施例中,以源数据类型为流式数据,目标数据类型为批式数据进行介绍。
可以理解,数据集的迁移状态,用于表明数据集进行数据迁移的进度,包括增加未完成状态(第一迁移状态)和删除未完成状态(第二迁移状态)。其中:
增加未完成状态是表示如下状态:源数据类型的目标数据集中的部分数据集已增加为目标数据类型的数据,例如,参考图3A,查询节点131A中的流式数据的数据集S5中包括4条流式数据:S5-1、S5-2、S5-3和S5-4,其中,流式数据S5-1和流式数据S5-2已迁移为查询节点131B中批式数据的数据集S5'中的批式数据S5-1'和批式数据S5-2',但流式数据S5-3和流式数据S5-4还未进行迁移,此时,数据集S5的迁移状态为增加未完成状态。
如前所述,在数据查询请求对应的目标数据集包括数据集S1、数据集S2、数据集S3、数据集S4、数据集S5、数据集S6、数据集S7、数据集S8。查询协调者121在确定出目标数据集中的数据集S5的迁移状态为增加未完成状态时,确定从源数据类型的数据集S5中来查询数据查询请求在数据集S5中的子查询结果。也即是说,参考图3A,数据查询请求对应的目标数据集30包括:批式数据的数据集S1、批式数据的数据集S2、批式数据的数据集S3、批式数据的数据集S4、流式数据的数据集S5、流式数据的数据集S6、流式数据的数据集S7、流式数据的数据集S8。查询协调者121将数据查询请求转发给查询节点131A和数据查询节点131B,然后由查询节点131A和数据查询节点131B从相应的数据集中得到数据查询请求对应的子查询结果,再将各子查询结果发送给代理110/111,再由代理110/111转发给用户。
也就是说,对数据集S5的迁移操作不中断从数据集S5中获取数据查询请求的子查询结果,将流式数据的数据集S5中的数据S5-3和数据S5-4迁移到查询节点131B中的批式数据的数据集S5'中的迁移操作和在流式数据的数据集S5的数据查询操作可以并行执行,提高了数据库系统查询数据的速度,提升了用户从数据库系统查询数据的体验。
可以理解,在一些实施例中,若在流式数据的数据集S5中的查询操作还未完成,而流式数据的数据集S5中的数据已经全部增加为批式数据的数据集S5'中的数据的情况下,查询协调者121可以阻塞对流式数据的数据集S5的删除操作,直到在流式数据的数据集S5中的查询操作全部完成,以保证目标数据集的完整性。
可以理解,在一些实施例中,若在流式数据的数据集S5中的查询操作还未完成,而流式数据的数据集S5中的数据已经全部增加为批式数据的数据集S5'中的数据的情况下,若流式数据的数据集S5所在的查询节点(例如查询节点131A)的运行状态满足预设条件,查询协调者121可以中断在流式数据的数据集S5中的查询操作,对流式数据的数据集S5进行删除操作,并在批式数据的数据集S5'中恢复被中断的查询操作。
其中,预设条件可以包括以下条件中的至少一个:用于指示查询节点所在电子设备的硬件资源不足的条件,如查询节点所在电子设备的内存空闲量小于内存空闲量阈值/内存使用量大于内存使用量阈值、查询节点所在电子设备的处理器空闲量小于处理器空闲量阈值/处理器使用量大于处理器使用量阈值等。可以理解,在另一些实施例中,预设条件还可以包括其他条件,例如查询节点所在电子设备处理的数据查询请求的数量大于预设数量等,在此不做限定。
如此,可以避免查询节点的硬件资源不足,或查询节点响应的查询请求数据过高造成查询节点宕机,影响数据库系统的正常运行。在一些实施例中,用户可以根据各查询节点的硬件资源配置,数据库系统的并发访问需求等来设置上述预设条件,例如设置内存空闲量阈值/内存使用量阈值、处理器空闲量阈值/处理器使用量阈值、数据查询请求的预设数量等,从而可以在保证查询节点能正常运行的情况下提高数据库系统查询数据的速度。
删除未完成状态是表示如下状态:源数据类型的目标数据集中的全部数据已增加为目标数据类型的数据,源数据类型的目标数据集中的部分数据删除或未删除。例如,参考图3B,查询节点131A中的流式数据的数据集S5中包括4条流式数据:S5-1、S5-2、S5-3和S5-4,并且,流式数据S5-1、流式数据S5-2、流式数据S5-3和流式数据S5-4已迁移为查询节点131B中批式数据的数据集S5'中的批式数据S5-1'、批式数据S5-2'、批式数据S5-3'和批式数据S5-4',但查询节点131A中的流式数据的数据集S5中流式数据S5-1、流式数据S5-2、流式数据S5-3和流式数据S5-4均未删除,此时数据集S5的迁移状态为删除未完成状态。又例如,参考图3C,查询节点131A中的流式数据的数据集S5中流的式数据S5-1、流式数据S5-2、流式数据S5-3和流式数据S5-4已迁移为查询节点131B中批式数据的数据集S5'中的批式数据S5-1'、批式数据S5-2'、批式数据S5-3'和批式数据S5-4',并且查询节点131A中的流式数据的数据集S5中流的式数据S5-1、流式数据S5-2已被删除,此时数据集S5的迁移状态也为删除未完成状态。
如前所述,在数据查询请求对应的目标数据集包括数据集S1、数据集S2、数据集S3、数据集S4、数据集S5、数据集S6、数据集S7、数据集S8,查询协调者121在确定出目标数据集中的数据集S5处于删除未完成状态时,确定从目标数据类型的数据集S5中来查询数据查询请求在数据集S5中的子查询结果。也即是说,参考图3B和图3C,数据查询请求对应的目标数据集31或目标数据32包括:批式数据的数据集S1、批式数据的数据集S2、批式数据的数据集S3、批式数据的数据集S4、批式数据的数据集S5'、流式数据的数据集S6、流式数据的数据集S7、流式数据的数据集S8,查询协调者121将数据查询请求转发给查询节点131A和数据查询节点131B,然后由查询节点131A和数据查询节点131B从相应的数据集中得到数据查询请求对应的子查询结果,再将各子查询结果发送给代理110/111,最后由代理110/111对各子查询结果进行汇总后转发给用户,例如发送给客户端00。
也就是说,对数据集S5的迁移操作不中断在批式数据的数据集S5'中的查询操作,对流式数据的数据集S5中的数据的删除操作可以和从批式数据的数据集S5'中获取数据查询请求的子查询结果的数据查询操作并行执行,如此,数据库系统10不用等到对流式数据的数据集S5中的数据的删除操作完成后,再在批式数据的数据集S5'中执行查询操作,提高了数据库系统查询数据的速度,提升了用户使用数据库系统的体验。
可以理解,前述将数据集的迁移状态分为增加未完成状态和删除未完成状态只是一种示例,在另一些实施例中,也可以采用其他的分类来表明数据集进行数据迁移的进度,还可以拆分或组合部分迁移状态,在此不做限定。
下面结合图1所示的数据库系统10、图2A所示的目标数据集和图3A至图3B所示的数据集的迁移状态,说明本申请实施例的技术方案。
具体地,图4根据本申请的一些实施例,示出了一种数据查询方法的交互流程示意图。如图4所示,该交互流程包括如下步骤。
S401:代理110接收到数据查询请求,并将数据查询请求转发给查询协调者121。
代理110接收到数据查询请求后,即将数据查询请求转发给查询协调者。
在一些实施例中,代理110接收到数据查询请求,可以是用户可以通过数据库系统10的客户端00,向代理110发送数据查询请求。在另一些实施例中,代理110接收到数据查询请求,也可以是用户通过数据库系统10的访问接口,向代理110发送数据查询请求。本申请实施例对代理110接收到的数据查询请求的来源和形式不做限定。
在一些实施例中,数据查询请求可以包括特征类型(例如图像(image)、声音、视频、文本、DNA序列等)、目标数据的特征(例如特征向量N、特征张量等)、查询结果的数据的数量K等。
S402:查询协调者121根据数据查询请求,确定数据查询请求对应的目标数据集。
查询协调者121根据数据查询请求,确定数据查询请求对应的目标数据集。
例如,在一些实施例中,数据库系统中的每一个数据集都有一个中心向量,该中心向量代表了该数据集中的各数据平均特征(例如,在一些实施例中,中心向量可以是数据集的聚类中心、该数据集中各特征向量的平均值等),查询协调者121可以将数据查询请求中的特征向量N与特征类型与数据查询请求中的特征类型相同的各数据集的中心向量进行对比,将与数据查询请求中的特征向量的相似度大于预设值和/或与数据查询请求中的特征向量的相似度最大的预设数量个中心向量对应的数据集,作为目标数据集。例如,假设数据查询请求中的特征类型为图像、特征向量为N,则查询协调者121将数据库系统10中,特征类型为图像、中心向量与特征向量N的相似度大于预设值(例如相似度大于0.9、距离小于0.25等)的数据集作为目标数据集。
可以理解,数据查询请求中的特征向量和中心向量间的相似度可以通过向量间的距离来表示,包括但不限于欧氏距离、内积、杰卡德距离、谷本距离、汉明距离等,在此不做限定。其中,对于欧氏距离、杰卡德距离和汉明距离,数据查询请求中的特征向量和中心向量间的距离越小,相似度越高;对于内积和谷本距离,数据查询请求中的特征向量和中心向量间的距离越大,相似度越高。
例如,假设数据查询请求中的特征向量N为[1,3,5,7,9]。前述数据集S1、数据集S2、数据集S3、数据集S4、数据集S5、数据集S6、数据集S7、数据集S8的中心向量分别为S8-N=[1,3,5,7.1,9.2]、S2-N=[1,3.1,5,7,9]、S3-N=[1,3,5.2,7,9]、S4-N=[1.2,3,5,7,9]、S5-N=[1,3,5,7.1,9],S6-N=[1,3.1,5.2,7,9]、S7-N=[1,3,5.2,7,9.1]、S8-N=[1.2,3,5.1,7,9],根据如下公式(1)所示的向量间欧氏距离的计算公式。
Figure BDA0003560680150000101
公式(1)中,D(a,b)为向量a和向量b的欧氏距离,n为向量a和向量b的维度,ai为向量a第i维对应的数值,bi为向量b的第i维对应的数值。
可以得到前述数据集S1、数据集S2、数据集S3、数据集S4、数据集S5、数据集S6、数据集S7、数据集S8的中心向量与数据查询求中的特征向量N的距离分别为D(N,S1-N)=0.224、D(N,S2-N)=0.1、D(N,S3-N)=0.2、D(N,S4-N)=0.2、D(N,S5-N)
=0.1、D(N,S6-N)=0.224、D(N,S7-N)=0.224、D(N,S8-N)=0.224,均小于欧距离阈值0.25,因此数据查询请求对应的数据集包括数据集S1、数据集S2、数据集S3、数据集S4、数据集S5、数据集S6、数据集S7、数据集S8。
在另一些实施例中,查询协调者121也可以通过其他方式来确定数据查询请求对应的目标数据集,在此不做限定。
S403:查询协调者121判断各目标数据集是否处于迁移过程中。
在一些实施例中,查询协调者121在确定出数据查询请求对应的目标数据集后,查询协调者121从查询节点131或消息存储142获取各目标数据集的状态标识,该状态标识用于指示目标数据集是否处于迁移过程中,如果确定出目标数据集处于迁移过程当中,则需要根据该目标数据集的迁移状态,来确定从何种数据类型的目标数据集中查询数据查询请求的子查询结果,转至步骤S405;否则,说明可以直接通过目标数据集来查询数据查询请求的子查询结果,转至步骤S404A。
例如,对于图3A至图3C所示的场景中,数据集S5处于由流式数据的数据集S5迁移为批式数据的数据集S5'的过程中,则转至步骤S405对数据集S5进行查询操作,而数据集S1、数据集S2、数据集S3、数据集S4、数据集S6、数据集S7和数据集S8,未处于迁移过程中,转至步骤S404A对数据集S1、数据集S2、数据集S3、数据集S4、数据集S6、数据集S7和数据集S8进行查询操作。
在一些实施例中,查询协调者121也可以根据数据库系统是否在对目标数据集中的数据进行前述add操作或delete操作来判断各目标数据集是否处于迁移过程中。可以理解,在另一些实施例中,查询协调者121也可以通过其他方式来确定目标数据集是否处于迁移过程当中,在此不做限定。
可以理解,在一些实施例中,在目标数据集有多个的情况下,查询协调者121可以逐一判断各目标数据集是否处于迁移过程中,也可以批量判断各目标数据集是否处于迁移过程中,在此不做限定。
S404A:查询协调者121向目标数据集对应的查询节点发送数据查询子请求。
对于未处于迁移过程中的目标数据集,查询协调者121直接将数据查询子请求发送给该目标数据集对应的查询节点。例如,查询协调者121在确定出前述数据集S1、数据集S2、数据集S3、数据集S4、数据集S6、数据集S7和数据集S8未处于迁移过程中,则直接向查询节点131A发送从数据集S1、数据集S2、数据集S3、和数据集S6中查询前述特征向量N对应的查询结果的子查询请求,向查询节点131B发送从数据集S4、数据集S7和数据集S8中查询前述特征向量N对应的查询结果的子查询请求。
可以理解,在一些实施例中,可以在数据库系统10中为查询节点和/或数据集设置多个副本,以便于可以并行执行对同一个数据集的多个查询请求,提高查询速度。例如,在一些实施例中,数据库系统10可以对整个查询节点设置副本,参考图5A,可以对查询节点131A设置副本查询节点131A',查询节点131A和对应的副本查询节点131A'中的数据集完全相同。又例如,在另一些实施例中,也可以在数据库系统10中根据数据集的查询请求的数量等,单独对数据集设置至少一个副本,以避免对查询节点设置副本时,为查询请求数据较少的数据集设置过多的副本,浪费数据库系统10的资源。参考图5B,查询节点131C中为数据集S1、数据集S4、数据集S7分别设置了对应的副本,即副本数据集S1'、副本数据集S4'、副本数据集S7',查询节点131D中为数据集S1和数据集S7分别设置了对应的副本,即副本数据集S1”和副本数据集S7”。
对于具有多个副本的目标数据集,查询协调者121可以获取该目标数据的各个副本所在的查询节点所硬件资源使用情况、响应速度等,向能更快响应数据查询子请求的查询节点、空闲的硬件资源较多、响应的数据查询节点较少的查询节点发送数据查询子请求,以进一步提高数据查询的速度。例如,对于数据集S7,查询节点131B的响应时间为20毫秒、查询节点131C的响应时间为15毫秒、查询节点131D的响应时间为10毫秒,则查询协调者121可以向查询节点131D发送从副本数据集S7”中查询上述特征向量N对应的子查询结果的数据查询子请求。
S404B:查询节点131中的查询节点根据数据查询子请求,从相应的数据集中得到子查询结果,并将子查询结果发送给代理110。
查询节点131中的各查询节点,根据接收到的数据查询子请求,从相应的数据集中得到子查询结果,并将子查询结果发送给代理110。例如,前述查询节点131D接收到从数据集S7”中查询上述特征向量N对应的子查询结果的数据查询子请求后,可以从数据集S7”中,查询到与特征向量N相似度最高的预设数量的数据。
具体地例如,参考图6,假设数据集S7”中包括5条数据:数据S7-1、数据S7-2、数据S7-3、数据S7-4和数据S7-5,查询节点131D可以根据前述公式1,得到数据S7-1、数据S7-2、数据S7-3、数据S7-4和数据S7-5的特征向量与数据查询请求中的特征向量N间的欧氏距离分别为:0.014、0.071、0.143、0.3、0.412。假设每一个数据集返回的子查询结果中的数据的数量为2,则查询节点131D将数据集S7”中,与特征向量N间的欧氏距离最小的2条数据,即数据S7-1和数据S7-2作为数据查询请求在数据集S7中的子查询结果返回给代理110。
可以理解,在一些实施例中,各查询节点也可以先把子查询结果发送给查询协调者121,再由查询协调者121将子查询结果转发给代理110,在此不做限定。
可以理解,在一些实施例中,各查询节点在发送完子查询结果后,还可以向查询协调者121发送已完成数据查询子请求的通知消息,以便于查询协调者121可以基于该通知消息对各查询节点进行调度,例如分配响应其他数据查询请求的查询节点/数据集等。
S405:查询协调者121获取处于迁移过程中的目标数据集的迁移状态,并根据迁移状态确定用于响应数据查询请求的目标数据集的类型。
对于处理迁移过程中的目标数据集,查询协调者121获取目标数据集的迁移状态,并根据迁移状态确定用于响应数据查询请求的目标数据集的类型。例如,参考图3A,查询协调者121在确定出数据集S5处于前述增加未完成状态时,确定由流式数据的数据集S5来响应数据查询请求,又例如,参考图3B和图3C,查询协调者121在确定出数据集S5处于前述删除未完成状态时,确定由批式数据的数据集S5'来响应数据查询请求。
可以理解,在另一些实施例中,查询协调者121也可以采用其他方式来根据迁移状态确定用于响应数据查询请求的目标数据集的类型,在此不做限定。
S406A:查询协调者121向确定出的类型的目标数据集对应的查询节点发送数据查询子请求。
查询协调者121在确定出用于响应数据查询请求的目标数据集的类型后,向该确定出的类型的目标数据集所在的查询节点发送数据查询子请求。例如,查询协调者121在确定通过流式数据的数据集S5来响应数据查询请求后,向查询节点131A发送从流式数据的数据集S5中查询前述特征向量N对应的子查询结果的数据查询子请求。又例如,查询协调者121在确定通过批式数据的数据集S5'来响应数据查询请求后,向查询节点131B发送从批式数据的数据集S5'中查询前述特征向量N对应的子查询结果的数据查询子请求。
可以理解,在一些实施例中,查询协调者121在确定出是由源数据类型的目标数据集(例如流式数据的目标数据集)响应数据查询请求后,还可以监控相应的查询节点对该数据查询请求的执行进度,若在源数据类型的目标数据集已经增加为目标数据类型的目标数据集(例如批式数据的目标数据集)后,该查询节点还没有得到该数据查询请求的子查询结果,查询协调者121可以中断对源数据类型的目标数据集的删除操作,直到该查询节点得到该数据查询请求的子查询结果后,再恢复对源数据类型的目标数据集的删除操作。
从而可以避免在数据查询过程中删除源数据类型的目标数据集中的数据导致的查询结果不完整,提升数据库系统10的查询结果的可靠性。
并且,在源数据类型的目标数据集响应了多个数据查询请求的情况下,查询协调者121还可以在该多个数据查询请求都已经得到相应的子查询结果的情况下,再恢复对源数据类型的目标数据集的删除操作。例如,查询协调者121可以记录各数据集响应数据查询请求的数量,在有新增数据查询请求时,将该数量加1,在有数据查询请求完成时,将该数量减1,只在该数量为0时,才允许对源数据类型的目标数据集的删除操作。
从而可以避免在数据查询过程中删除源数据类型的目标数据集中的数据导致的查询结果不完整,提升数据库系统10的查询结果的可靠性。
可以理解,在一些实施例中,查询协调者121在确定出是由源数据类型的目标数据集(例如流式数据的目标数据集)响应数据查询请求后,还可以监控相应的查询节点的所在的电子设备的运行情况。在源数据类型的目标数据集已经增加为目标数据类型的目标数据集(例如批式数据的目标数据集)后,若在该查询节点所在的电子设备的运行情况满足前述预设条件(例如查询节点所在电子设备的内存空闲量小于内存空闲量阈值/内存使用量大于内存使用量阈值、查询节点所在电子设备的处理器空闲量小于处理器空闲量阈值/处理器使用量大于处理器使用量阈值、查询节点所在电子设备处理的数据查询请求的数量大于预设数量等),暂停未完成的数据查询请求,执行对源数据类型的目标数据集的删除操作,并从目标数据类型的目标数据集中恢复暂停的未完成的数据查询请求。
从而可以避免查询节点的硬件资源使用超标引起查询节点宕机影响数据库系统10的稳定性。
例如,在一些实施例中,可以在目标数据类型的目标数据集中重新对该数据集中的所有数据进行查询。又例如,在一些实施例中,假设源数据类型的目标数据集中包括n条数据,在暂停从源数据类型的目标数据集查询时已查询完n条数据中的前m(m<n)条数据,则从目标数据类型的目标数据集中继续在后n-m条数据中查询数据查询请求的查询结果。
如此,可以不必对已查询过的数据进行重复查询,可以节省查询时间,提高查询速度。
S406B:查询节点131中的查询节点根据数据查询子请求,从相应的数据集中得到子查询结果,并将子查询结果发送给代理110。
查询节点131中的查询节点根据数据查询子请求,从相应的数据集中得到子查询结果,并将子查询结果发送给代理110。例如,查询节点131A接收到从流式数据的数据集S5中查询前述特征向量N对应的子查询结果的数据查询子请求后,从流式数据的数据集S5中查询前述特征向量N对应的子查询结果,并将子查询结果发送给代理110。具体的查询方式可以参考步骤S404B的相关描述,在此不做赘述。
又例如,查询节点131A接收到从批式数据的数据集S5'中查询前述特征向量N对应的子查询结果的数据查询子请求后,从批式数据的数据集S5'中查询前述特征向量N对应的子查询结果,并将子查询结果发送给代理110。具体的查询方式可以参考步骤S404B的相关描述,在此不做赘述。
S407:代理110汇总子查询结果,得到数据查询请求的查询结果,并将查询结果发送给用户。
代理110在接收到各查询节点发送的子查询结果后,汇总子查询结果,得到数据查询请求的查询结果,并将查询结果发送给用户。可以理解,在一些实施例中,各子查询结果的数据的数量可以大于数据查询请求要求返回的查询结果的数据的数量K,此时,代理110可以对子查询结果进行再次筛选,确定出与数据查询请求中的前述特征向量N最相似的K个数据作为数据查询请求的查询结果。
可以理解,数据查询请求的查询结果中包括了数据的数据标识,该数据标识可以唯一确定数据库系统10中的一条数据。在另一些用于数据库中,可以存储该数据标识和非结构化数据(例如,文本、图像、音频、视频、DNA序列、商品信息、物质结构等)的对应关系,进而客户端00在接收到查询结果后,可以通过查询结果中各数据的数据标识,从存储数据标识和非结构化数据的对应关系的数据库、存储非结构化数据的数据库中获取到相应的非结构化数据,并将非结构化数据展示给用户。
可以理解,前述步骤S401至步骤S407的执行顺序只是一种示例,在另一些实施例中,可以调整部分步骤的执行顺序,也可以合并或拆分部分步骤,在此不做限定。例如,在一些实施例中,前述步骤S404A和步骤S406A可以并行执行,前述步骤S404B可以和步骤S406B并行执行。
通过本申请实施例提供的方法,数据库系统10在接收到的数据查询请求对应的目标数据集处理迁移过程中时,可以不用等待迁移过程执行完成再进行数据查询,而是将数据查询和目标数据集的迁移并行执行,如此,可以提高数据库系统10查询数据的速度,提升用户使用数据库系统10查询数据的体验。
进一步,本申请实施例提供了一种数据库系统200。如图7所示,数据库系统200至少包括协调单元201、查询单元202和存储单元203。其中,
协调单元201可以用于根据接收到的数据查询请求,确定数据查询请求对应的目标数据集,以及确定目标数据集是否处于迁移过程中、确定目标数据集的迁移状态,并根据目标数据集的迁移状态,确定响应数据查询请求的目标数据集的类型,以及该类型的目标数据集对应的子查询单元。协调单元201的具体功能,以及实现该具体功能的方法,可以参考前述查询协调者121的相关描述(例如前述对数据库系统10的描述,前述步骤S402、步骤S403、步骤S404A、步骤S405、步骤S406A的相关描述等),在此不做赘述。
查询单元202,可以包括至少一个子查询单元,用于根据协调单元201发送的数据查询请求,从相应的数据类型的数据集中获取数据查询请求的查询结果。具体可以参考前述查询节点131/131A/131B的相关描述(例如前述对数据库系统10的描述,前述步骤S404B、步骤S406B的相关描述等),在此不做赘述。
存储单元203,可以用于具体存储数据库系统10中的数据,例如非结构化数据的特征向量、非结构化数据等。具体可以参考前述存储服务14中的相关描述,在此不做赘述。
可以理解,图7所示的数据库系统200的结构只是一种示例,在另一些实施例中,数据库系统200也可以包括更多或更少的模块,还可以组合或拆分部分模块,在此不做限定。
本申请实施例提供的数据库系统200,在接收到的数据查询请求对应的目标数据集处于迁移过程中时,可以根据目标数据集的迁移状态,选择相应数据类型的目标数据集来响应数据查询请求,使数据迁移和数据查询并行执行,提高了数据库系统200查询数据的速度,提升了用户使用数据库系统200查询数据的体验。
进一步,图8根据本申请的一些实施例,示出了一种电子设备100的结构示意图。可以理解电子设备100可以是运行数据库系统10中的节点/模块的电子设备,也可是前述客户端00。如图7所示,电子设备100可以包括一个或多个处理器101、系统内存102、非易失性存储器(Non-Volatile Memory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器101、系统内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的系统控制逻辑106。其中:
处理器101可以包括一个或多个单核或多核处理器。在一些实施例中,处理器101可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在一些实施例中,处理器101可以执行前述各实施例提供的数据查询方法对应的指令。例如,在电子设备100用于运行查询协调者121时,处理器101可以用于运行确定数据查询请求的目标数据集、获取目标数据集的迁移状态、根据目标数据集的迁移状态确定响应数据查询请求的目标数据集的类型等的指令。又例如,在电子设备用于运行查询节点131A时,处理器101可以用于运行根据数据查询请求中的特征向量N,确定出数据集S1、数据集S2、数据集S3、数据集S5、数据集S6中与特征向量N相似的多个数据的指令等。
系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于临时存储前述各实施例提供的数据查询方法的指令,也可以用于存储各数据集的临时副本,还可以用于临时存储数据查询请求的查询结果等。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。在一些实施例中,非易失性存储器103可以用于存储前述各实施例提供的数据查询方法的指令,也可以永久存储前述各数据集、各数据集的索引等。
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行时使电子设备100实现本申请各实施例提供的数据查询方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信。例如,通信接口104数据库系统10中部署于不同电子设备的各节点/模块间的通信(如传递数据查询请求、传递查询结果、传递各数据集的迁移状态等),与客户端00进行通信(如接收数据查询请求,返回数据查询请求对应的查询结果等)。
输入/输出(I/O)设备105可以包括用户界面,使得用户能够与电子设备100进行交互。例如,在一些实施例中,输入/输出(I/O)设备105可以包括显示器等输出设备。例如,在电子设备100为客户端00使,用户可以通过输入/输出(I/O)设备105,将非结构化数据,如图像、音频、文字等作为数据查询请求的一部分,发送给数据库系统10。
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(System-on-Chip,SoC)。
可以理解,电子设备100可以是任意电子设备,包括但不限于平板电脑、桌面型计算机、服务器/服务器集群、膝上型计算机、手持计算机、笔记本电脑、台式电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及手机、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器、智能电视、智能音箱、智能手表等等,本申请实施例不做限定。
可以理解,本申请实施例示出的电子设备100的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括“、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (13)

1.一种数据查询方法,应用于电子设备,其特征在于,所述方法包括:
确定接收到的第一数据查询请求对应的目标数据集中至少包括一个第一目标数据集,并且,所述第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中;
根据所述第一目标数据集的迁移状态,确定在所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,或是,在所述第二数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果。
2.根据权利要求1所述的方法,其特征在于,所述第一目标数据集的迁移状态,包括第一迁移状态和第二迁移状态:
所述第一迁移状态表明所述第一数据类型的第一目标数据集中的部分数据已经增加为第二数据类型,并且还未删除所述第一数据类型的第一目标数据集;
所述第二迁移状态表明所述第一目标数据集中的全部数据已经增加为第二数据类型,并且所述第一数据类型的目标数据集中的至少部分数据还未被删除。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一目标数据集的迁移状态,确定在所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,或是,在所述第二数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,包括:
在所述第一目标数据集的迁移状态为所述第一迁移状态的情况下,确定从所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,并且不中断将所述第一数据类型的第一目标数据集增加为所述第二数据类型的第一目标数据集的操作;
在所述第一目标数据集的迁移状态为所述第二迁移状态的情况下,确定从所述第二数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,并且不中断对所述第一数据类型的第一目标数据集的删除操作。
4.根据权利要求3所述的方法,其特征在于,在从所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果的过程中,还包括:
检测到所述第一数据类型的第一目标数据集中的全部数据已经增加为第二数据类型,保持所述第一数据类型的第一目标数据集中的数据不被删除。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在检测到存在第二数据查询请求访问所述第一数据类型的第一目标数据集的情况下,在得到所述第二数据查询请求的查询结果前,保持所述第一数据类型的第一目标数据集中的数据不被删除。
6.根据权利要求3所述的方法,其特征在于,在从所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果的过程中,还包括:
检测到所述第一数据类型的目标数据集中的全部数据已经增加为所述第二数据类型,并且所述第一数据类型的第一目标数据集所在的电子设备的运行状态满足预设条件,暂停从所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果;
删除所述第一数据类型的目标数据集,并且在所述第二数据类型的第一目标数据集中,继续查询并获取与所述第一数据查询请求关联的子查询结果。
7.根据权利要求6所述的方法,其特征在于,所述第一数据类型的第一目标数据集所在的电子设备的运行状态满足预设条件,包括以下条件中的至少一个:
所述第一目标数据集所在电子设备的内存空闲量小于第一阈值或内存使用量大于第二阈值;
所述第一目标数据集所在电子设备的处理器的空闲量小于第三阈值或处理器的使用量大于第四阈值;
所述第一目标数据集所在电子设备处理的第一数据查询请求超过预设数量。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一数据类型包括以下数据类型中的任意一种:流式数据、批式数据、批量导入式数据,所述第二数据类型包括以下数据类型中的任意一种:流式数据、批式数据、批量导入式数据。
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一数据查询请求对应的目标数据集存储于数据库系统中,所述第一数据类型的第一目标数据集存储所述数据库系统的第一存储区域,所述第二数据类型的第一目标数据集存储于所述数据库系统的第二存储区域;并且
所述第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中,包括:
所述第一数据类型的第一目标数据中的至少部分数据已增加为所述第二数据类型的第一目标数据集中的数据,并且所述第一数据类型的第一目标数据中的至少部分数据还未被删除。
10.根据权利要求9所述的方法,其特征在于,所述数据库系统为向量数据库系统。
11.一种数据库系统,其特征在于,所述数据库系统包括:
协调单元,用于在确定出接收到的第一数据查询请求对应的目标数据集中至少包括一个第一目标数据集,并且,所述第一目标数据集处于由第一数据类型迁移为第二数据类型的过程中的情况下,根据所述第一目标数据集的迁移状态,确定在所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,并向所述第一数据类型的目标数据集所在的查询单元发送从所述第一数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果的指令,或是,在所述第二数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果,并向所述第二数据类型的目标数据集所在的查询单元发送从所述第二数据类型的第一目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果的指令;
至少一个查询单元,用于根据所述协调单元发送的指令,从所述第一数据类型的目标数据集或所述第二数据类型的目标数据集中查询并获取与所述第一数据查询请求关联的子查询结果。
12.一种可读介质,其特征在于,所述可读介质上存储有指令,所述指令在电子设备上执行时使所述电子设备实现权利要求1至10任一项所述的数据查询方法。
13.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于执行所述存储器中存储的指令以实现权利要求1至10中任一项所述的数据查询方法。
CN202210292093.4A 2022-03-23 2022-03-23 数据查询方法、数据库系统、可读介质和电子设备 Pending CN114691720A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210292093.4A CN114691720A (zh) 2022-03-23 2022-03-23 数据查询方法、数据库系统、可读介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210292093.4A CN114691720A (zh) 2022-03-23 2022-03-23 数据查询方法、数据库系统、可读介质和电子设备

Publications (1)

Publication Number Publication Date
CN114691720A true CN114691720A (zh) 2022-07-01

Family

ID=82139109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210292093.4A Pending CN114691720A (zh) 2022-03-23 2022-03-23 数据查询方法、数据库系统、可读介质和电子设备

Country Status (1)

Country Link
CN (1) CN114691720A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115495457A (zh) * 2022-11-16 2022-12-20 青岛以萨数据技术有限公司 基于单机向量数据库的数据处理系统、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115495457A (zh) * 2022-11-16 2022-12-20 青岛以萨数据技术有限公司 基于单机向量数据库的数据处理系统、设备及存储介质

Similar Documents

Publication Publication Date Title
US11422982B2 (en) Scaling stateful clusters while maintaining access
US9934260B2 (en) Streamlined analytic model training and scoring system
US11221995B2 (en) Data replication from a cloud-based storage resource
US11355123B2 (en) Network data aligning
US20160357678A1 (en) Predictive caching and fetch priority
CN111901294A (zh) 一种构建在线机器学习项目的方法及机器学习系统
US8276022B2 (en) Efficient failure detection for long running data transfer jobs
US10310748B2 (en) Determining data locality in a distributed system using aggregation of locality summaries
US10884980B2 (en) Cognitive file and object management for distributed storage environments
US10572506B2 (en) Synchronizing data stores for different size data objects
CN112307122A (zh) 一种基于数据湖的数据管理系统及方法
CN105227672A (zh) 数据存储及访问的方法和系统
US11625192B2 (en) Peer storage compute sharing using memory buffer
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
US20200364211A1 (en) Predictive database index modification
CN114691720A (zh) 数据查询方法、数据库系统、可读介质和电子设备
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
WO2023011237A1 (zh) 业务处理
US11943294B1 (en) Storage medium and compression for object stores
US10482098B2 (en) Consuming streamed data records
CN115794984B (zh) 数据存储方法、数据检索方法、装置、设备以及介质
US20240192847A1 (en) Data storage placement system
US20240193177A1 (en) Data storage transformation system
Milev Technological approaches for presentation of data analysis in web applications
Dhingra et al. Big Data Analysis Model for Transformation and Effectiveness in the e-Governance Service from Relational Database

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