CN113297164A - 数据库系统、数据查询方法及装置 - Google Patents
数据库系统、数据查询方法及装置 Download PDFInfo
- Publication number
- CN113297164A CN113297164A CN202010265757.9A CN202010265757A CN113297164A CN 113297164 A CN113297164 A CN 113297164A CN 202010265757 A CN202010265757 A CN 202010265757A CN 113297164 A CN113297164 A CN 113297164A
- Authority
- CN
- China
- Prior art keywords
- partition
- field
- database
- query
- time
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000005192 partition Methods 0.000 claims abstract description 426
- 238000000638 solvent extraction Methods 0.000 claims abstract description 25
- 238000012217 deletion Methods 0.000 claims abstract description 18
- 230000037430 deletion Effects 0.000 claims abstract description 18
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000012550 audit Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000135164 Timea Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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
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
技术领域
本说明书实施例涉及数据库技术领域,特别涉及一种数据库系统。本说明书一个或者多个实施例同时涉及一种数据查询方法,一种数据查询装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
现有技术中,进行数据的多条件查询时,是将多个查询条件进行并行查询拿到每个查询条件对应的查询结果后,进行and|or的bit集合运算拿到最终的该多个查询条件组合的查询结果,各个查询条件之间无关联的并发查询,耗时取决于最慢的查询条件,在很多情况下会浪费太多多余的数据扫描,使得查询系统运行性能较低。
基于此,需要提供一种更为有效的、快速的数据查找方案。
发明内容
有鉴于此,本说明书施例提供了一种数据库系统。本说明书一个或者多个实施例同时涉及一种数据查询方法,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据库系统,包括:
参数定义模块,被配置为确定数据库的分区字段以及分区范围;
分区模块,被配置为基于所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区;
分区管理模块,被配置为对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除,以及
在所述分区的终点时间与所述当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述分区字段以及所述分区步长为所述数据库新建分区。
根据本说明书实施例的第二方面,提供了一种数据查询方法,包括:
接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
将所述查询字段与待查询数据库的分区字段进行匹配;
在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
根据所述查询条件在所述分区中查询所述目标数据。
根据本说明书实施例的第三方面,提供了一种数据查询装置,包括:
条件接收模块,被配置为接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
匹配模块,被配置为将所述查询字段与待查询数据库的分区字段进行匹配;
分区确定模块,被配置为在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
路由模块,被配置为根据所述查询条件在所述分区中查询所述目标数据。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
将所述查询字段与待查询数据库的分区字段进行匹配;
在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
根据所述查询条件在所述分区中查询所述目标数据。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据查询方法的步骤。
本说明书一个实施例实现了一种数据库系统,包括:参数定义模块,被配置为确定数据库的分区字段以及分区范围;分区模块,被配置为基于所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区;分区管理模块,被配置为对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除,以及在所述分区的终点时间与所述当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述分区字段以及所述分区步长为所述数据库新建分区;
所述数据库系统在接收到用户自定义的分区字段以及分区范围参数后实现数据库的分区,并且通过对所述分区的监控,实现对分区的自动删除以及自动创建,极大的提升用户体验。
附图说明
图1是本说明书一个实施例提供的一种数据库系统的结构示意图;
图2是本说明书一个实施例提供的一种数据库系统的整体结构示意图;
图3是本说明书一个实施例提供的一种数据查询方法的流程图;
图4是本说明书一个实施例提供的一种数据查询方法中根据元数据为数据库分区的分区示意图;
图5是本说明书一个实施例提供的一种数据查询方法的处理流程图;
图6是本说明书一个实施例提供的一种数据查询装置的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
Solr:底层基于lucene构建的分布式搜索引擎。
Collection:一个张表,是数据的集合。
Shard:一个表的分区,一个表可以有1个或多个shard组成。
Replica:一个shard的一个副本,一个shard可以有1个或多个副本组成;leaderreplica、slave replica分别表示主replica和从replica,只代表了他们的逻辑角色;一个shard只能有一个leader replica,可以有1个或多个slave replica,通常slave replica会同步leader replica的更新,从而保证数据一致性。
Core:一个core可以理解为就是一个replica,是一个lucene索引。
CollectionGroup:多个Collection构成的集合体,包装多个Collection为一个整体,负责路由与管理整个Collection集合组的查询、插入路由外,还管理其内部单个Collection的生命周期,如根据ttl过期group内某个Collection,何时在group中自动创建某个新Collection等。
在本说明书中,提供了一种数据库系统。本说明书一个或者多个实施例同时涉及一种数据查询方法,一种数据查询装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种数据库系统的结构示意图,包括:
参数定义模块102,被配置为确定数据库的分区字段以及分区范围;
分区模块104,被配置为基于所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区;
分区管理模块106,被配置为对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除,以及
在所述分区的终点时间与所述当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述分区字段以及所述分区步长为所述数据库新建分区。
具体实施时,本说明书实施例提供的数据库系统可以为在Solr上开发实现CollectionGroup技术方案,该数据库系统主要包括以下功能:
通过参数定义模块102实现CollectionGroup的元数据的定义与存储,其中,元数据包括但不限于分区字段、分区大小范围、分区ttl过期时间(分区有效时间),元数据为后续在Group内部Collection路由提供依据。
通过分区模块104,基于存储的CollectionGroup的元数据的定义实现CollectionGroup的创建,即通过元数据“分区字段对应的字段值、分区范围以及分区有效时间”实现数据库的分区,其中,每个分区为一个Collection,多个Collection形成CollectionGroup。
通过分区管理模块106,实现对CollectionGroup中每个Collection的自动创建和对过期的Collection的自动删除,即对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除,以及在所述分区的终点时间与所述当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述分区字段以及所述分区步长为所述数据库新建分区,而具体的预设删除时间阈值以及预设创建时间阈值根据具体的应用场景进行设置,在此不做任何限定;例如预设删除时间阈值可以包括为所述分区配置的分区有效时间,10年或20年等;所述预设创建时间阈值可以包括3个月或4个月等。
本说明书另一实施例中,所述数据库系统,还包括:
分区监控模块,被配置为对所述数据库的性能指标进行监控,且基于所述数据库的性能指标对所述数据库的分区字段以及分区范围进行调整。
具体的,通过分区监控模块增加对CollectionGroup的监控信息metrics,实现对CollectionGroup的性能指标的监控,即对所述数据库的性能指标进行监控;实际应用中,性能指标包括但不限于CollectionGroup里面Collection的个数,被修改的次数、有效路由的发生次数等,即在CollectionGroup内的所有操作,然后对这个操作进行一个审计,后续可以通过审计结果对CollectionGroup内部的参数进行更加合理完善的调整等。
本说明书另一实施例中,所述数据库系统,还包括:
参数管理模块,被配置为对所述数据库的分区字段、分区范围以及分区有效时间进行管理。
具体的,所述参数管理模块,可以是所述数据库系统为元数据提供的元数据ddl接口,通过该元数据ddl接口可以实现对元数据的管理,例如对元数据的增删改查等,用户根据具体使用场景通过该参数管理模块对元数据进行修改,实现数据库分区的定制化,提升用户体验。
本说明书另一实施例中,所述数据库系统,还包括:
路由模块,被配置为接收查询条件,在所述查询条件中包括分区字段的情况下,将所述查询条件路由至对应的分区实现查询。
具体的,所述路由模块实现查询/插入自动路由CollectionGroup内的某个Collection的功能,即通过该路由模块,可以将查询条件自动路由到对应的Collection中进行数据查询,使得基于该数据库系统查询的运行效率更高,性能更好。
参见图2,图2示出了根据本说明书一个实施例提供的一种数据库系统的整体结构示意图。
图2中的数据库系统(CollectionGroup)包括参数定义模块(CollectionGroupMeta)、分区管理模块(CollectionGroup Manager)、路由模块(CollectionGroup Router),其中,参数定义模块中包括元数据:分区字段(partitionfield)、步长(step)、分区的起点时间(start)、分区有效时间(ttl),其他属性(例如元数据分区范围)与Collection一致共用;分区管理模块中包括根据分区的起点时间(start)/步长(step)进行自动创建新分区,根据分区有效时间(ttl)可以过期历史分区,即将过期的历史分区进行删除;路由模块中包括根据分区字段(partitionfield)、步长(step)、分区的起点时间(start)、分区有效时间(ttl)进行路由有效分区,例如图2中将数据库分为10个分区,分别为Collection1至Collection10,其中,每个Collection中包括但不限于3个Shard,而实际应用中,每个shard包括一个leader replica和1个或多个slave replica,而一个core可以理解为就是一个replica。
本说明书实施例提供的数据库系统通过分区的自动创建和自动删除大大放宽了数据库可存储的最大数据规模范围,可以实现无限扩展存储容量,采用分区使得数据库的运行效率更高,并且分区在合理业务规则下,插入和查询业务偶可以做到容量无限大,而性能不下降,此外,该数据库系统的使用更加简单,降低了使用成本,用户无需关心底层存储分区个数以及查询时的路由细节等,极大的提升了用户使用体验。
参见图3,图3示出了根据本说明书一个实施例提供的一种数据查询方法的流程图,包括步骤302至步骤308。
步骤302:接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段。
其中,目标数据的查询条件为针对该目标数据的查询条件,例如查询条件为userId=‘0001’and orderType=1and createTime:[x TO y]。
此时解析该查询条件可以确定该查询条件中包括:userId、orderType以及createTime等查询字段。
具体的,对目标数据查询之前,需要对目标数据进行存储,将目标数据存储在分区后的数据库中,才可以基于该数据查询方法实现目标数据的快速、无多余查询,具体如下所述:
所述接收并解析针对目标数据的查询条件之前,还包括:
基于所述目标数据确定数据库的分区字段以及分区范围;
根据所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区,并将所述目标数据存储至对应的分区。
其中,目标数据包括但不限于任何行业的服务方提供的目标数据,例如物流行业的运单数据、网络购物等互联网行业的订单数据等等。
具体的,基于目标数据确定数据库的分区字段以及分区范围,即在确定了目标数据情况下,基于该目标数据中包括的数据字段再确定数据库的分区字段以及分区范围,例如目标数据为物流行业的运单数据,该运单数据包括该运单的创建时间、始发地点、途径地点以及目的地等字段,通过该运单数据的数据字段,则可以将该运单的创建时间作为分区字段;若目标数据为全国人口普查数据,该数据包括性别、年龄、居住地等字段,则可以将该目标数据中的年龄作为分区字段;而分区范围则可以根据分区字段确定,例如分区字段为创建时间,则分区范围则可以为所有目标数据的初始创建时间到最后一个创建时间的范围,实际应用中,还可以基于目标数据确定数据库的分区有效时间,具体的分区有效时间可以根据实际的业务应用进行设置,例如物流行业的运单号一般三个月左右进行一次更新,则可以将分区有效时间设置为3个月,使得数据库的分区从开始分区时间到当前时间为3个月的时候进行一次过期删除。
具体实施时,基于所述目标数据确定数据库的分区字段以及分区范围之后,则根据所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区,并将所述目标数据存储至对应的分区。
而具体的数据库分区个数还要基于实际的元数据定义进行划分,例如确定每个分区的步长以及数据库分区的开始条件。
若所述分区字段包括时间字段,则相应的,所述基于所述目标数据确定数据库的分区字段以及分区范围之后,还包括:
基于所述时间字段对应的字段值确定所述数据库的分区的起点时间以及分区步长。
举例说明,目标数据为物流业务的运单数据,分区字段为时间字段,即运单号的创建时间,那么所述分区字段对应的字段值则为每个运单号具体的创建时间,根据该创建时间则可以确定该数据库的分区的起点时间,即创建时间最早的运单号的创建时间,还可以基于具体的目标数据创建分区步长,例如将步长设置为一年,每一年对应一个分区,或设置为两年,每两年设置一个分区。
在确定了数据库的分区字段、分区的起点时间、分区步长、以及分区范围之后,根据这些元数据对数据库进行分区。
具体的,所述根据所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区包括:
根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区。
实际应用中,还可以为所述数据库的分区配置分区有效时间,以便后续可以基于该分区有效时间对分区进行过期自动删除。
参见图4,图4为根据元数据为数据库进行分区的分区示意图。
图4中,若分区字段为创建时间,分区的起点时间为20090101 00:00:00,步长为1年,分区范围为10年,则数据库基于上述元数据可以划分为10个分区,分别为图4中的分区1至分区10(即Collection1至Collection10)。
而在根据定义好的元数据对数据库进行分区后,将目标数据存储至对应de分区,后续可以基于该分区数据库实现对目标数据的查找;例如将20090101 00:00:00到20100101 00:00:00的数据存储至第一分区,以此类推,将目标数据进行分别存储。
具体的,数据库的每个分区具有相同的前缀名以及唯一的后缀名,其中,每个分区的后缀名根据分区字段确定,例如分区字段为创建时间,则每个分区的后缀名则可以为对应存储的目标数据的创建时间,且每个分区的大小可以根据实际所存储的数据量的不同进行设置,在此不做任何限定。
本说明书另一可实现方案中,若分区字段为年龄,则根据分区字段的字段值,也可以确定数据库的分区的起点时间以及分区步长,例如设置分区的起点时间为1岁,分区步长为5年;此时则可以确定该数据库的分区是从1岁的年龄进行划分,每5岁的年龄段为一个分区;若分区字段为城市,则需要对数据库分区的规则进行重新定义,为数据库扩展非时间字段的分区,在此不做任何限定,实际应用中,所述数据查询方法中,还可以对所述分区字段、所述分区的起点时间、所述分区步长以及所述分区范围进行管理,实现对上述各元数据的增删改查,例如更换分区字段、修改分区步长等。
本说明书另一实施例中,所述根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区之后,还包括:
对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除。
其中,所述预设删除时间阈值可以理解为分区有效时间。
具体的,所述数据查询方法中进行数据库分区时,还可以为所述数据库的分区设置分区有效时间,且基于所述分区有效时间对所述数据库的分区进行过期删除,例如为每个分区设置5年的有效期,在当前时间与分区的初始创建时间(即分区的起点时间)间隔为5年的情况下,删除该分区以及该分区内的目标数据,释放数据库的该分区的存储空间;此外,还可以基于整体的分区概念设置分区有效时间,以上述图4中分区字段为创建时间进行数据库分区为例,若设置的分区有效时间为10年,那么2009年至2019年有10年,当到2020年的时候(实际使用中可定义为在当前时间距离2020年还有2个月或3个月的时间间隔的时候),数据库的2009年至2019年的分区就会过期删除。
本说明书另一实施例中,所述根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区之后,还包括:
对所述分区进行监控,在所述分区的终点时间与当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库新建分区。
其中,所述预设创建时间阈值可以根据实际应用进行设置,在此不做任何限定,例如为3个月或4个月等。
举例说明,若预设创建时间阈值为3个月,所述分区的终点时间为2019年12月31号,当前时间为2020年3月31号,此时所述分区的终点时间与当前时间的时间差值等于预设创建时间阈值,即3个月,此时,则会基于所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库新建分区,而具体的对所述数据库新建分区可以沿用之前的所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围。
本说明书实施例中,通过上述方式实现对分区的过期自动删除以及到期自动创建的方式,可以使得数据库随着时间不断自动创建以及自动过期删除分区,使得数据库分区可以实现无限制存储。
具体实施时,在数据库基于元数据分区后,还可以对数据库的分区进行管理,例如上述的分区过期删除以及自动新建分区。
实际应用中,自动新建分区可以通过下述方法实现:在所述分区的终点时间与当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库新建分区。
其中,预设时间阈值可以根据实际应用进行设置,例如设置为两个月、三个月等。仍以上述数据库的分区为例,若当前时间与该数据库的最后一个分区的分区结束时间(即分区有效期的到期时间)的时间间隔小于等于预设时间阈值,例如2个月的情况下,则要为该数据库建立新的分区,而具体的新的分区的创建则可以根据上述定义的元数据进行自动创建,具体可参见上述实施例,在此不再赘述。而具体实施时,数据库新建分区的触发条件可以不仅仅包括上述方法,也可以基于待存储的数据量触发数据库分区的自动创建,在此不做任何限定。
本说明书实施例中,所述数据查询方法中的数据库分区通过过期删除以及自动创建使得数据库可存储的最大数据规模大大放宽,使得该数据库形成无限制扩展存储容量。
本说明书另一实施例中,所述根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区之后,还包括:
对所述数据库的性能指标进行监控,且基于预设的时间间隔获取所述数据库的性能指标,其中,所述性能指标包括但不限于所述数据库中分区的数量、分区字段的路由次数、每个查询的路由时间等。
其中,预设的时间间隔可以根据实际应用进行设置,例如设置为一周或两周,即每隔一周或每隔两周对获取所述数据库的性能指标,然后对获取到的数据库的性能指标进行分析,最后根据分析结果确定该数据库是否健康,是否需要对元数据进行调整。
实际应用中,所述对所述数据库的性能指标进行监控,且基于预设的时间间隔获取所述数据库的性能指标之后,还包括:
对所述数据库的性能指标进行分析,并基于分析结果调整所述数据库的分区字段对应的字段值、分区的起点时间、分区步长、分区范围。
举例说明,每隔一周获取所述数据库的性能指标,通过对所述数据库的性能指标进行分析,发现在数据库运行一周之后该数据库中只存在一个分区,则可以确定该数据库的元数据可能配置不理想,使得该数据库没有进行合理的分区,因此可以根据分区数量的性能指标,确定出该数据库不健康,此时就可以对元数据进行调整,使得该数据库根据调整后的元数据进行重新分区。又或者通过所述数据库的性能指标的有效路由数反映,最近一个月内均没有有效路由(即从没有按照分区字段进行过数据查找),例如数据库的分区字段为地区字段,但是这个地区字段一次没有被路由过,则可以说明该数据库的分区字段可能不合适,此时就可以重新修改该数据库的分区字段,使得该数据库的分区被合理使用。
步骤304:将所述查询字段与待查询数据库的分区字段进行匹配。
具体的,在获取查询字段后,将每个查询字段与待查询数据库的分区字段进行匹配。
例如,查询条件为userId=‘0001’and orderType=1and createTime:[2018TO2019]为例,若数据库为图4中的分区数据库,该分区数据库的分区字段为createTime,则将查询条件的userId、orderType以及createTime字段分别与图4中分区数据库的分区字段createTime进行匹配。
步骤306:在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区。
具体的,在任意一个查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区。
仍以上述为例,将查询字段与分区字段匹配可知,查询字段的createTime字段与分区字段相匹配,此时则根据查询字段的createTime字段对应的条件范围(字段值)以及数据库每个分区的分区名确定所述查询字段对应的字段值确定对应的分区。
仍以上述为例,查询条件为userId=‘0001’and orderType=1and createTime:[2018TO 2019]为例,数据库为图4中的分区数据库,此时会根据createTime条件范围计算并自动路由到有效的Collection分区上,即这里的createTime:[2018TO 2019]数据都在Collection10的分区上。
步骤308:根据所述查询条件在所述分区中查询所述目标数据。
具体的,在确定对应的分区之后,则根据所述查询条件在所述分区中查询对应的目标数据。
仍以上述为例,在确定对应的分区为Collection10之后,则基于查询条件userId=‘0001’and orderType=1and createTime:[2018TO 2019]在该Collection10上查询对应的目标数据。
而在具体实施时,也可以根据上述路由方法对分区中存储的目标数据进行增加删除或修改等。
本说明书实施例提供的数据查询方法在基于元数据自动完成分区的基础上,在接收到查询条件后,将查询条件自动路由到对应的数据库分区中进行数据扫描,例如自动根据创建时间这种分区条件选择对应的分区,避免过多多余数据的其他条件查询扫描,节省时间,极大的提高了系统的运行效率。
参见图5,图5示出了根据本说明书一个实施例提供的一种数据查询方法的处理流程图。
首先接收查询条件“userId=‘0001’and orderType=1and createTime:[2018TO2019]”,然后将该查询条件输入数据库系统的路由模块中进行解析,在路由模块中解析所述查询条件,确定所述查询条件的查询字段为createTime,然后将所述查询字段与待查询数据库的分区字段进行匹配,在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区,如图5所示,createTime:[2018TO 2019]对应分区10,此时在分区10的分区上,基于查询条件userId=‘0001’and orderType=1andcreateTime:[2018TO 2019]进行数据查询。
如图5所示,基于在分区10的查询,与userId=‘0001’的条件匹配的数据有10条,耗时3ms,与orderType=1的条件匹配的数据有1亿条,耗时50ms,与createTime:[2018TO2019]的条件匹配的数据有30亿条,耗时200ms,而将userId看作A,将orderType看作B,将createTime看作C,此时的查询结果为:A n B n C={10条}n{1亿条}n{30亿条}={10},而完成的查询时间为:max{TimeA,TimeB,TimeC}=max{3ms,50ms,200ms}=200ms。
与上述方法实施例相对应,本说明书还提供了数据查询装置实施例,图6示出了本说明书一个实施例提供的一种数据查询装置的结构示意图。如图6所示,该装置包括:
条件接收模块602,被配置为接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
匹配模块604,被配置为将所述查询字段与待查询数据库的分区字段进行匹配;
分区确定模块606,被配置为在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
数据查询模块608,被配置为根据所述查询条件在所述分区中查询所述目标数据。
可选的,所述装置,还包括:
第一数据确定模块,被配置为基于所述目标数据确定数据库的分区字段以及分区范围;
数据库分区模块,被配置为根据所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区,并将所述目标数据存储至对应的分区。
可选的,所述分区字段包括时间字段;
所述装置,还包括:
第二数据确定模块,被配置为基于所述时间字段对应的字段值确定所述数据库的分区的起点时间以及分区步长。
可选的,所述数据库分区模块,进一步被配置为:
根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区。
可选的,所述装置,还包括:
第一监控模块,被配置为对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除。
可选的,所述装置,还包括:
第二监控模块,被配置为对所述分区进行监控,在所述分区的终点时间与当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库新建分区。
可选的,所述装置,还包括:
指标监控模块,被配置为对所述数据库的性能指标进行监控,且基于预设的时间间隔获取所述数据库的性能指标。
可选的,所述装置,还包括:
指标调整模块,被配置为对所述数据库的性能指标进行分析,并基于分析结果调整所述数据库的分区字段对应的字段值、分区的起点时间、分区步长、分区范围。
本说明书实施例提供的数据查询装置在基于元数据自动完成分区的基础上,在接收到查询条件后,将查询条件自动路由到对应的数据库分区中进行数据扫描,例如自动根据创建时间这种分区条件选择对应的分区,避免过多多余数据的其他条件查询扫描,节省时间,极大的提高了系统的运行效率。
上述为本实施例的一种数据查询装置的示意性方案。需要说明的是,该数据查询装置的技术方案与上述的数据查询方法的技术方案属于同一构思,数据查询装置的技术方案未详细描述的细节内容,均可以参见上述数据查询方法的技术方案的描述。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令:
接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
将所述查询字段与待查询数据库的分区字段进行匹配;
在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
根据所述查询条件在所述分区中查询所述目标数据。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据查询方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据查询方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述数据查询方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据查询方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据查询方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (15)
1.一种数据库系统,包括:
参数定义模块,被配置为确定数据库的分区字段以及分区范围;
分区模块,被配置为基于所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区;
分区管理模块,被配置为对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除,以及
在所述分区的终点时间与所述当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述分区字段以及所述分区步长为所述数据库新建分区。
2.根据权利要求1所述的数据库系统,还包括:
分区监控模块,被配置为对所述数据库的性能指标进行监控,且基于所述数据库的性能指标对所述数据库的分区字段以及分区范围进行调整。
3.根据权利要求1所述的数据库系统,还包括:
参数管理模块,被配置为对所述数据库的分区字段、分区范围以及分区有效时间进行管理。
4.根据权利要求1所述的数据库系统,还包括:
路由模块,被配置为接收查询条件,在所述查询条件中包括分区字段的情况下,将所述查询条件路由至对应的分区实现查询。
5.一种数据查询方法,包括:
接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
将所述查询字段与待查询数据库的分区字段进行匹配;
在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
根据所述查询条件在所述分区中查询所述目标数据。
6.根据权利要求5所述的数据查询方法,所述接收并解析针对目标数据的查询条件之前,还包括:
基于所述目标数据确定数据库的分区字段以及分区范围;
根据所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区,并将所述目标数据存储至对应的分区。
7.根据权利要求6所述的数据查询方法,所述分区字段包括时间字段;
相应的,所述基于所述目标数据确定数据库的分区字段以及分区范围之后,还包括:
基于所述时间字段对应的字段值确定所述数据库的分区的起点时间以及分区步长。
8.根据权利要求7所述的数据查询方法,所述根据所述数据库的分区字段对应的字段值以及分区范围对所述数据库进行分区包括:
根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区。
9.根据权利要求8所述的数据查询方法,所述根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区之后,还包括:
对所述分区进行监控,在所述分区的起点时间与当前时间的时间差值大于等于预设删除时间阈值的情况下,对所述分区进行删除。
10.根据权利要求8所述的数据查询方法,所述根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区之后,还包括:
对所述分区进行监控,在所述分区的终点时间与当前时间的时间差值大于等于预设创建时间阈值的情况下,基于所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库新建分区。
11.根据权利要求8所述的数据查询方法,所述根据所述数据库的分区字段对应的字段值、分区的起点时间、分区步长以及分区范围对所述数据库进行分区之后,还包括:
对所述数据库的性能指标进行监控,且基于预设的时间间隔获取所述数据库的性能指标。
12.根据权利要求11所述的数据查询方法,所述对所述数据库的性能指标进行监控,且基于预设的时间间隔获取所述数据库的性能指标之后,还包括:
对所述数据库的性能指标进行分析,并基于分析结果调整所述数据库的分区字段对应的字段值、分区的起点时间、分区步长、分区范围。
13.一种数据查询装置,包括:
条件接收模块,被配置为接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
匹配模块,被配置为将所述查询字段与待查询数据库的分区字段进行匹配;
分区确定模块,被配置为在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
路由模块,被配置为根据所述查询条件在所述分区中查询所述目标数据。
14.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收并解析针对目标数据的查询条件,以确定所述查询条件的查询字段;
将所述查询字段与待查询数据库的分区字段进行匹配;
在所述查询字段与所述分区字段匹配的情况下,基于所述查询字段对应的字段值确定对应的分区;
根据所述查询条件在所述分区中查询所述目标数据。
15.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求5至12任意一项所述数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010265757.9A CN113297164A (zh) | 2020-04-07 | 2020-04-07 | 数据库系统、数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010265757.9A CN113297164A (zh) | 2020-04-07 | 2020-04-07 | 数据库系统、数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297164A true CN113297164A (zh) | 2021-08-24 |
Family
ID=77317962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010265757.9A Pending CN113297164A (zh) | 2020-04-07 | 2020-04-07 | 数据库系统、数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297164A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113963763A (zh) * | 2021-10-20 | 2022-01-21 | 上海柯林布瑞信息技术有限公司 | 医疗数据存储的分区变更方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216821A (zh) * | 2007-01-05 | 2008-07-09 | 中兴通讯股份有限公司 | 数据采集系统的存储管理方法 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN105868071A (zh) * | 2016-03-23 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 监测数据的处理方法及装置 |
CN110750515A (zh) * | 2019-09-25 | 2020-02-04 | 浙江大华技术股份有限公司 | 数据库查询方法及处理装置 |
-
2020
- 2020-04-07 CN CN202010265757.9A patent/CN113297164A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216821A (zh) * | 2007-01-05 | 2008-07-09 | 中兴通讯股份有限公司 | 数据采集系统的存储管理方法 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN105868071A (zh) * | 2016-03-23 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 监测数据的处理方法及装置 |
CN110750515A (zh) * | 2019-09-25 | 2020-02-04 | 浙江大华技术股份有限公司 | 数据库查询方法及处理装置 |
Non-Patent Citations (1)
Title |
---|
无名: ""Collections API|Apache Solr Reference Guide 7.7"", pages 1 - 47, Retrieved from the Internet <URL:https://solr.apache.org/guide/7_7/collections-api.html> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113963763A (zh) * | 2021-10-20 | 2022-01-21 | 上海柯林布瑞信息技术有限公司 | 医疗数据存储的分区变更方法以及装置 |
CN113963763B (zh) * | 2021-10-20 | 2022-11-11 | 上海柯林布瑞信息技术有限公司 | 医疗数据存储的分区变更方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792340B2 (en) | Identifying data items | |
CN107784044B (zh) | 表数据查询方法及装置 | |
WO2018149271A1 (zh) | 数据查询方法、装置及计算设备 | |
CN110427368A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20140222873A1 (en) | Information system, management apparatus, method for processing data, data structure, program, and recording medium | |
CN108460041B (zh) | 数据的处理方法和装置 | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN109977077A (zh) | 模型文件存储方法、装置、可读存储介质和计算机设备 | |
CN110413845B (zh) | 基于物联网操作系统的资源存储方法及装置 | |
CN111475584B (zh) | 数据处理方法、系统以及装置 | |
CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN109325056A (zh) | 一种大数据处理方法及装置、通信设备 | |
EP3136261A1 (en) | Method and device for data search | |
CN112905618A (zh) | 数据处理方法以及装置 | |
CN113641869B (zh) | 一种人机物融合环境下的数字对象访问方法和系统 | |
CN116431726A (zh) | 一种图数据处理方法、装置、设备及计算机存储介质 | |
CN113297164A (zh) | 数据库系统、数据查询方法及装置 | |
CN113918857A (zh) | 一种提高分布式web应用系统性能的三级缓存加速方法 | |
US11683316B2 (en) | Method and device for communication between microservices | |
CN114996361B (zh) | 数据处理方法及系统 | |
CN114415971B (zh) | 数据处理方法以及装置 | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
KR102503958B1 (ko) | 분산 네트워크 환경에서의 쿼리 배치 장치 및 그 방법 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059132 Country of ref document: HK |