CN106598969A - 数据查询方法和装置 - Google Patents

数据查询方法和装置 Download PDF

Info

Publication number
CN106598969A
CN106598969A CN201510662485.5A CN201510662485A CN106598969A CN 106598969 A CN106598969 A CN 106598969A CN 201510662485 A CN201510662485 A CN 201510662485A CN 106598969 A CN106598969 A CN 106598969A
Authority
CN
China
Prior art keywords
data
acquisition system
data acquisition
memory area
value
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.)
Granted
Application number
CN201510662485.5A
Other languages
English (en)
Other versions
CN106598969B (zh
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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201510662485.5A priority Critical patent/CN106598969B/zh
Publication of CN106598969A publication Critical patent/CN106598969A/zh
Application granted granted Critical
Publication of CN106598969B publication Critical patent/CN106598969B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

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

Abstract

本申请公开了一种数据查询方法和装置。其中,该方法包括:按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域;并行查询每个存储区域中第二数据子集相对第一数据子集的增量数据,得到多个存储区域中的增量数据集合,其中,第一存储区域中的第一数据子集为存储至第一存储区域中的第一数据的集合,第一存储区域中的第二数据子集为存储至第一存储区域中的第二数据的集合,第一存储区域为多个存储区域中的任一存储区域;以及确定增量数据集合中的数据为第二数据集合相对第一数据集合的增量数据。本申请解决了现有技术中数据查询速度比较慢的技术问题。

Description

数据查询方法和装置
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据查询方法和装置。
背景技术
大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,企业中每天都会产生海量的数据,那么每天产生的数据各不相同,如何找到一种快捷并且准确的方法对比出在后时间比在前时间多出的增量数据成为现在发展的需要。现在的进行增量数据查询方案,在应用于较小数据量时还可以有效地进行,但是对于海量数据的情况,存在查询速度慢的弊端。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据查询方法和装置,以至少解决现有技术中数据查询速度比较慢的技术问题。
根据本申请实施例的一个方面,提供了一种数据查询方法,包括:按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域,其中,不同的所述存储区域对应不同的数据值区间,每个所述第一数据和每个所述第二数据均具有数据值,所述第一数据集合和所述第二数据集合为不同的数据集合;并行查询每个所述存储区域中第二数据子集相对所述第一数据子集的增量数据,得到多个所述存储区域中的增量数据集合,其中,第一存储区域中的所述第一数据子集为存储至所述第一存储区域中的所述第一数据的集合,所述第一存储区域中的所述第二数据子集为存储至所述第一存储区域中的所述第二数据的集合,所述第一存储区域为多个所述存储区域中的任一存储区域;以及确定所述增量数据集合中的数据为所述第二数据集合相对所述第一数据集合的增量数据。
进一步地,在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,所述方法还包括:按照预设计算方式计算所述第一数据集合中第一数据ai的第一压缩值ai′,其中,i依次取1至n1,n1为所述第一数据集合中第一数据的数量;以及按照所述预设计算方式计算所述第二数据集合中第二数据bj的第二压缩值bj′,其中,j依次取1至n2,n2为所述第二数据集合中第二数据的数量,按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域包括:按照压缩值与所述存储区域的对应关系,将第一数据组A1至第一数据组An1和第二数据组B1至第二数据组Bn2分区存储至多个所述存储区域,其中,第一数据组Ai为所述第一数据ai和所述第一压缩值ai′的组合,第二数据组Bj为所述第二数据bj和所述第二压缩值bj′的组合,不同的所述存储区域对应不同的压缩值区间,并行查询每个所述存储区域中第二数据子集相对所述第一数据子集的增量数据,得到多个所述存储区域中的增量数据集合包括:并行查询每个所述存储区域中第二压缩值子集相对第一压缩值子集的增量压缩值,其中,所述第一存储区域中的所述第一压缩值子集为存储至所述第一存储区域中的第一压缩值的集合,所述第一存储区域中的所述第二压缩值子集为存储至所述第一存储区域中的所述第二压缩值的集合;以及确定多个所述存储区域中增量压缩值所对应的数据的集合为所述增量数据集合。
进一步地,按照预设计算方式计算所述第一数据集合中第一数据ai的第一压缩值ai′包括:计算所述第一数据ai的哈希值,得到所述第一压缩值ai′,按照所述预设计算方式计算所述第二数据集合中第二数据bj的第二压缩值bj′包括:计算所述第二数据bj的哈希值,得到所述第二压缩值bj′。
进一步地,在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,所述方法还包括:接收第一选择指令和第二选择指令;以及按照所述第一选择指令从目标数据库中提取第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取第二时间范围内的数据,得到所述第二数据集合,其中,所述第一时间范围和所述第二时间范围为不同的时间范围,并且所述第一时间范围的时长和所述第二时间范围的时长相同。
进一步地,在接收第一选择指令和第二选择指令之后,所述方法还包括:从所述第一选择指令中提取所述第一时间范围,并从所述第二选择指令中提取所述第二时间范围;以及
判断所述第二时间范围的起始时刻是否在所述第一时间范围的结束时刻之后,
其中,在判断出所述第二时间范围的起始时刻在所述第一时间范围的结束时刻之后的情况下,按照所述第一选择指令从所述目标数据库中提取所述第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取所述第二时间范围内的数据,得到所述第二数据集合。
根据本申请实施例的另一个方面,提供了一种数据查询装置,包括:存储单元,用于按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域,其中,不同的所述存储区域对应不同的数据值区间,每个所述第一数据和每个所述第二数据均具有数据值,所述第一数据集合和所述第二数据集合为不同的数据集合;查询单元,用于并行查询每个所述存储区域中第二数据子集相对所述第一数据子集的增量数据,得到多个所述存储区域中的增量数据集合,其中,第一存储区域中的所述第一数据子集为存储至所述第一存储区域中的所述第一数据的集合,所述第一存储区域中的所述第二数据子集为存储至所述第一存储区域中的所述第二数据的集合,所述第一存储区域为多个所述存储区域中的任一存储区域;以及确定单元,用于确定所述增量数据集合中的数据为所述第二数据集合相对所述第一数据集合的增量数据。
进一步地,所述装置还包括:第一计算单元,用于按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,按照预设计算方式计算所述第一数据集合中第一数据ai的第一压缩值ai′,其中,i依次取1至n1,n1为所述第一数据集合中第一数据的数量;以及第二计算单元,用于按照所述预设计算方式计算所述第二数据集合中第二数据bj的第二压缩值bj′,其中,j依次取1至n2,n2为所述第二数据集合中第二数据的数量,所述存储单元包括:存储子单元,用于按照压缩值与所述存储区域的对应关系,将第一数据组A1至第一数据组An1和第二数据组B1至第二数据组Bn2分区存储至多个所述存储区域,其中,第一数据组Ai为所述第一数据ai和所述第一压缩值ai′的组合,第二数据组Bj为所述第二数据bj和所述第二压缩值bj′的组合,不同的所述存储区域对应不同的压缩值区间,所述查询单元包括:查询子单元,用于并行查询每个所述存储区域中第二压缩值子集相对第一压缩值子集的增量压缩值,其中,所述第一存储区域中的所述第一压缩值子集为存储至所述第一存储区域中的第一压缩值的集合,所述第一存储区域中的所述第二压缩值子集为存储至所述第一存储区域中的所述第二压缩值的集合;以及确定子单元,用于确定多个所述存储区域中增量压缩值所对应的数据的集合为所述增量数据集合。
进一步地,所述第一计算单元包括:第一计算子单元,用于计算所述第一数据ai的哈希值,得到所述第一压缩值ai′,所述第二计算单元包括:第二计算子单元,用于计算所述第二数据bj的哈希值,得到所述第二压缩值bj′。
进一步地,所述装置还包括:接收单元,用于在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,接收第一选择指令和第二选择指令;以及第一提取单元,用于按照所述第一选择指令从目标数据库中提取第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取第二时间范围内的数据,得到所述第二数据集合,其中,所述第一时间范围和所述第二时间范围为不同的时间范围,并且所述第一时间范围的时长和所述第二时间范围的时长相同。
进一步地,所述装置还包括:第二提取单元,用于在接收第一选择指令和第二选择指令之后,从所述第一选择指令中提取所述第一时间范围,并从所述第二选择指令中提取所述第二时间范围;以及判断单元,用于判断所述第二时间范围的起始时刻是否在所述第一时间范围的结束时刻之后,第三提取单元,用于当判断出所述第二时间范围的起始时刻在所述第一时间范围的结束时刻之后时,按照所述第一选择指令从所述目标数据库中提取所述第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取所述第二时间范围内的数据,得到所述第二数据集合。
在本申请实施例中,采用按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域,并行查询每个存储区域中第二数据子集相对第一数据子集的增量数据,得到多个存储区域中的增量数据集合,确定增量数据集合中的数据为第二数据集合相对第一数据集合的增量数据。通过把数据集合A中的多个数据和数据集合B中的多个数据分别存储到多个存储区域,其中,每个区域既存储数据集合A的一个子集,又存储数据集合B的一个子集,对各个存储区域同时进行查询,查询出各个存储区域中,数据集合B的子集中包含,且数据集合A的子集中不包含的数据,即数据集合B的子集相对于数据集合A的子集的增量数据,所有存储区域的数据的增量的集合即为数据集合B相对于数据集合A的增量数据,实现了分区存储、并行查询的查询方式,解决了现有技术中数据查询效率低的问题,达到了提高数据查询速度和查询效率的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据查询方法的示意图;
图2a至图4b是根据本申请实施例的数据查询方法存储压缩值和压缩值对应的数据的示意图;以及
图5是根据本申请实施例的数据查询装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先对本申请实施例所涉及的技术术语作如下解释:
增量:本申请实施例中所涉及的增量是指两份数据文件中,一份数据文件相对另一份数据文件来说,前者没有后者有的数据,比如:两份数据文件a、b,这两份文件中有大量相同的数据,增量就是数据文件b中有,但是数据文件a中没有的数据。
集群:(cluster)集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
Hash算法:哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文,而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。
根据本申请实施例,提供了一种数据查询方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的数据查询方法的示意图,如图1所示,该方法包括如下步骤:
步骤S102,按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域,其中,不同的存储区域对应不同的数据值区间,每个第一数据和每个第二数据均具有数据值,第一数据集合和第二数据集合为不同的数据集合。假设第一数据集合为数据集合A,第二数据集合为数据集合B,数据集合A中包含了多个数据,数据集合B中包含了多个数据,数据集合A和数据集合B中包含的数据不同,按照存储区域与数据值区间的对应关系,把数据集合A中的多个数据和数据集合B中的多个数据分别存储到多个存储区域。其中,每个区域既存储数据集合A的一个子集,又存储数据集合B的一个子集。
步骤S104,并行查询每个存储区域中第二数据子集相对第一数据子集的增量数据,得到多个存储区域中的增量数据集合,其中,第一存储区域中的第一数据子集为存储至第一存储区域中的第一数据的集合,第一存储区域中的第二数据子集为存储至第一存储区域中的第二数据的集合,第一存储区域为多个存储区域中的任一存储区域。即,对各个存储区域同时进行查询,对于任意一个存储了集合A的子集中的数据和集合B的子集中的数据的存储区域,查询出数据集合B的子集相对于数据集合A的子集数据的增量,即在该存储区域中,数据集合B的子集中包含,且数据集合A的子集中不包含的数据。
步骤S106,确定增量数据集合中的数据为第二数据集合相对第一数据集合的增量数据。即,对于每一个存储区域,已经查询出数据集合B的子集相对于数据集合A的子集数据的增量,所有存储区域的数据的增量的集合即为数据集合B相对于数据集合A的增量数据。
例如,某公司2015年8月20日的数据为81、82、85、86、88、89、5862、5864、5866、5871、79735、79737、79738、79743,2015年8月21日的数据为81、82、83、84、85、86、87、88、89、5862、5864、5866、5869、5871、79735、79737、79738、79742、79743。2015年8月20日的数据的集合为第一数据集合,亦即数据集合A。2015年8月21日的数据的集合为第二数据集合,亦即数据集合B。数据集合A为{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743},数据集合B为{81,82,83,84,85,86,87,88,89,5862,5864,5866,5869,5871,79735,79737,79738,79742,79743}。把数据集合A和数据集合B中的数据存储在3个存储区域,这3个存储区域分别为存储区域甲、存储区域乙、存储区域丙。即把数据集合A划分成3个子集,分别为数据集合A1,数据集合A2,数据集合A3,把数据集合B划分成3个子集,分别为数据集合B1,数据集合B2,数据集合B3。数据集合A1为{81,82,85,86,88,89},数据集合A2为{5862,5864,5866,5871},数据集合A3为{79735,79737,79738,79743}。数据集合B1为{81,82,83,84,85,86,87,88,89},数据集合B2为{5862,5864,5866,5869,5871},数据集合B3为{79735,79737,79738,79742,79743}。存储区域甲存储着数据集合A1和数据集合B1,存储区域乙存储着数据集合A2和数据集合B2,存储区域丙存储着数据集合A3和数据集合B3。同时查询存储区域甲、存储区域乙和存储区域丙。存储区域甲中,数据集合B1中包含且数据集合A1中不包含的数据为83、84、87,即存储区域甲中数据集合B1相对于数据集合A1的增量数据集合为{83、84、87}。存储区域乙中,数据集合B2中包含且数据集合A2中不包含的数据为5869,即存储区域乙中数据集合B2相对于数据集合A2的增量数据集合为{5869}。存储区域丙中,数据集合B3中包含且数据集合A3中不包含的数据为79742,即存储区域丙中数据集合B3相对于数据集合A3的增量数据集合为{79742}。存储区域甲中,数据集合B1相对于数据集合A1的增量数据集合为{83,84,87},存储区域乙中数据集合B2相对于数据集合A2的增量数据集合为{5869},存储区域丙中数据集合B3相对于数据集合A3的增量数据集合为{79742},故数据集合B相对于数据集合A的增量数据集合为{83,84,87,5869,79742},也即数据集合B相对于数据集合A的增量数据为83、84、87、5869、79742。
本申请实施例所提供的数据查询方法,通过把数据集合A中的多个数据和数据集合B中的多个数据分别存储到多个存储区域,其中,每个区域既存储数据集合A的一个子集,又存储数据集合B的一个子集,对各个存储区域同时进行查询,查询出各个存储区域中,数据集合B的子集中包含,且数据集合A的子集中不包含的数据,即数据集合B的子集相对于数据集合A的子集的增量数据,所有存储区域的数据的增量的集合即为数据集合B相对于数据集合A的增量数据,实现了分区存储、并行查询的查询方式,解决了现有技术中数据查询效率低的问题,达到了提高数据查询速度和查询效率的技术效果。
可选地,在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域之前,数据查询方法还包括:按照预设计算方式计算第一数据集合中第一数据ai的第一压缩值ai′,其中,i依次取1至n1,n1为第一数据集合中第一数据的数量;以及按照同样的预设计算方式计算第二数据集合中第二数据bj的第二压缩值bj′,其中,j依次取1至n2,n2为第二数据集合中第二数据的数量。
进行压缩值计算之后,按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域包括:按照压缩值与存储区域的对应关系,将第一数据组A1至第一数据组An1和第二数据组B1至第二数据组Bn2分区存储至多个存储区域,其中,第一数据组Ai为第一数据ai和第一压缩值ai′的组合,第二数据组Bj为第二数据bj和第二压缩值bj′的组合,不同的存储区域对应不同的压缩值区间。
相应地,并行查询每个存储区域中第二数据子集相对第一数据子集的增量数据,得到多个存储区域中的增量数据集合包括:并行查询每个存储区域中第二压缩值子集相对第一压缩值子集的增量压缩值,其中,第一存储区域中的第一压缩值子集为存储至第一存储区域中的第一压缩值的集合,第一存储区域中的第二压缩值子集为存储至第一存储区域中的第二压缩值的集合;以及确定多个存储区域中增量压缩值所对应的数据的集合为增量数据集合。
即,数据集合A中一共有n1个数据,分别为a1、a2、……an1。按照一定的压缩方式,对数据集合A中的数据进行压缩,经过压缩后得到压缩值,对于ai,对应的压缩值为ai′。数据集合B中一共有n2个数据,分别为b1、b2、……bn2。按照相同的压缩方式,对数据集合B中的数据进行压缩,经过压缩后得到压缩值,对于bj,对应的压缩值为bj′。Ai为数据ai和其压缩值ai′的组合。Bj为数据bj和其压缩值bj′的组合。假如一共有k个存储区域,分别为存储区域1、存储区域2、存储区域3、……存储区域k。在存储区域1中存储在存储区域2中存储在存储区域3中存储在存储区域k中存储 其中,lk=n1,dk=n2。
同时查询这k个存储区域。对于每个存储区域,查询该存储区域内的增量压缩值,增量压缩值是数据集合B的子集中的数据的压缩值相对于数据集合A的子集中的数据的压缩值的增量,即数据集合B的子集中的数据的压缩值的集合中包含的,且数据集合A的子集中的数据的压缩值的集合中不包含的压缩值。所有存储区域中增量压缩值所对应的数据的集合即为增量数据集合,也即是数据集合B相对于数据集合A的增量数据。通过利用同样的计算方式计算数据集合A中的数据和数据集合B中的数据的压缩值,相同的数据计算出的压缩值相同,进而通过压缩值进行增量数据的查询,由于压缩值所在空间小于原数据所占空间,因此能够进一步提高查询速度。
例如,某公司2015年8月20日的数据为81、82、85、86、88、89、5862、5864、5866、5871、79735、79737、79738、79743,2015年8月21日的数据为81、82、83、84、85、86、87、88、89、5862、5864、5866、5869、5871、79735、79737、79738、79742、79743。2015年8月20日的数据的集合为第一数据集合,亦即数据集合A。2015年8月21日的数据的集合为第二数据集合,亦即数据集合B。数据集合A为{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743},数据集合B为{81,82,83,84,85,86,87,88,89,5862,5864,5866,5869,5871,79735,79737,79738,79742,79743}。把数据集合A和数据集合B中的数据存储在3个存储区域,这3个存储区域分别为存储区域甲、存储区域乙、存储区域丙。即把数据集合A划分成3个子集,分别为数据集合A1,数据集合A2,数据集合A3,把数据集合B划分成3个子集,分别为数据集合B1,数据集合B2,数据集合B3。数据集合A1为{81,82,85,86,88,89},数据集合A2为{5862,5864,5866,5871},数据集合A3为{79735,79737,79738,79743}。数据集合B1为{81,82,83,84,85,86,87,88,89},数据集合B2为{5862,5864,5866,5869,5871},数据集合B3为{79735,79737,79738,79742,79743}。
可选地,按照预设计算方式计算第一数据集合中第一数据ai的第一压缩值ai′包括:计算第一数据ai的哈希值,得到第一压缩值ai′,按照预设计算方式计算第二数据集合中第二数据bj的第二压缩值bj′包括:计算第二数据bj的哈希值,得到第二压缩值bj′。即,预设计算方式可以是哈希算法,压缩值可以是哈希值。根据同一个哈希算法,算出数据集合A中的数据和数据集合B中的数据的哈希值,也即压缩值。
在本申请实施例中,计算数据压缩值的方法有多种,可以根据实际需要进行选择。哈希算法可以用来计算数据的压缩值。哈希算法有很多种,下面举一个例子进行说明。例如,hash(key)=floor{10*[(0.7*key)mod1]}。其中,key表示进行哈希运算的数值,floor表示对表达式进行下取整,mod为取余操作,[(0.7*key)mod1]表示将key乘以0.7并取乘积的小数部分。
根据上述哈希算法,对数据集合A1、数据集合A2、数据集合A3、数据集合B1、数据集合B2、数据集合B3中的数据进行计算。以数据81为例进行说明,81经过哈希算法得到压缩值7,亦即压缩值7对应的数据为81。以数据集合A1为例进行说明,81经过上述哈希算法得到压缩值7,82经过上述哈希算法得到压缩值4,85经过上述哈希算法得到压缩值5,86经过上述哈希算法得到压缩值2,88经过上述哈希算法得到压缩值6,89经过上述哈希算法得到压缩值3,即压缩值7对应81,压缩值4对应82,压缩值5对应85,压缩值2对应86,压缩值6对应88,压缩值3对应89。同理,可求得数据集合A2、数据集合A3、数据集合B1、数据集合B2、数据集合B3中的数据的压缩值。
把数据集合A1和数据集合B1中的压缩值和压缩值对应的数据存储在存储区域甲中,把数据集合A2和数据集合B2中的压缩值和压缩值对应的数据存储在存储区域乙中,把数据集合A3和数据集合B3中的压缩值和压缩值对应的数据存储在存储区域丙中。
图2a和图2b为存储区域甲中存储着数据集合A1和数据集合B1中的压缩值和压缩值对应的数据的示意图。
图3a和图3b为存储区域乙中存储着数据集合A2和数据集合B2中的压缩值和压缩值对应的数据的示意图。
图4a和图4b为存储区域丙中存储着数据集合A3和数据集合B3中的压缩值和压缩值对应的数据的示意图。
同时对存储区域甲、存储区域乙、存储区域丙进行查询。
存储区域甲中存储的数据集合A1中数据的压缩值的集合为{2,3,4,5,6,7},存储的数据集合B1中数据的压缩值的集合为{1,2,3,4,5,6,7,8,9},数据集合B1中数据的压缩值的集合中包含的,且数据集合A1中数据的压缩值的集合中不包含的压缩值为1、8、9,即存储区域甲中,数据集合B1中数据的压缩值的集合相对于数据集合A1中数据的压缩值的集合,新增的压缩值为1、8、9。压缩值1对应的压缩前的数据为83,压缩值8对应的压缩前的数据为84,压缩值9对应的压缩前的数据为87,所以存储区域甲中,数据集合B1相对于数据集合A1的增量数据为83、84、87。
存储区域乙中存储的数据集合A2中数据的压缩值的集合为{2,4,7,8},存储的数据集合B2中数据的压缩值的集合为{2,3,4,7,8},数据集合B2中数据的压缩值的集合中包含的,且数据集合A2中数据的压缩值的集合中不包含的压缩值为3,即存储区域乙中,数据集合B2中数据的压缩值的集合相对于数据集合A2中数据的压缩值的集合,新增的压缩值为3。压缩值3对应的压缩前的数据为5869,所以存储区域乙中,数据集合B2相对于数据集合A2的增量数据为5869。
存储区域丙中存储的数据集合A3中数据的压缩值的集合为{1,5,6,9},存储的数据集合B3中数据的压缩值的集合为{1,4,5,6,9},数据集合B3中数据的压缩值的集合中包含的,且数据集合A3中数据的压缩值的集合中不包含的压缩值为4,即存储区域丙中,数据集合B3中数据的压缩值的集合相对于数据集合A3中数据的压缩值的集合,新增的压缩值为4。压缩值4对应的压缩前的数据为79742,所以存储区域丙中,数据集合B3相对于数据集合A3的增量数据为79742。
可选地,在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域之前,数据查询方法还包括:接收第一选择指令和第二选择指令;以及按照第一选择指令从目标数据库中提取第一时间范围内的数据,得到第一数据集合,并按照第二选择指令从目标数据库中提取第二时间范围内的数据,得到第二数据集合,其中,第一时间范围和第二时间范围为不同的时间范围,并且第一时间范围的时长和第二时间范围的时长相同。即,按照指令从数据库中提取出时间段t1-t2对应的数据,这些数据组成的集合即为数据集合A,按照另一个指令从数据库中提取出时间段t3-t4对应的数据,这些数据组成的集合即为数据集合B。其中,时间段t1-t2与时间段t3-t4长度相同,且是不同的时间段。
例如,接收第一个选择指令,指令内容为“提取2015年8月20日08:00-2015年8月20日18:00的数据”,根据此指令,提取出数据81、82、85、86、88、89、5862、5864、5866、5871、79735、79737、79738、79743,得到数据集合A{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743}。接收第二个选择指令,指令内容为“提取2015年8月21日08:00-2015年8月21日18:00的数据”,根据此指令,提取出数据81、82、83、84、85、86、87、88、89、5862、5864、5866、5869、5871、79735、79737、79738、79742、79743,得到数据集合B{81,82,83,84,85,86,87,88,89,5862,5864,5866,5869,5871,79735,79737,79738,79742,79743}。
可选地,在接收第一选择指令和第二选择指令之后,数据查询方法还包括:从第一选择指令中提取第一时间范围,并从第二选择指令中提取第二时间范围;以及判断第二时间范围的起始时刻是否在第一时间范围的结束时刻之后,其中,在判断出第二时间范围的起始时刻在第一时间范围的结束时刻之后的情况下,按照第一选择指令从目标数据库中提取第一时间范围内的数据,得到第一数据集合,并按照第二选择指令从目标数据库中提取第二时间范围内的数据,得到第二数据集合。即,选择指令包含了两个时间段的信息,根据信息,当第二个时间段的起始时刻位于第一个时间段的结束时刻之后时,亦即第二个时间段位于第一个时间段之后且两个时间段完全不重合的情况下,从数据库中提取相应于两个时间段的数据,相应于第一个时间段,得到数据集合A,相应于第二个时间段,得到数据集合B。第一数据集合和第二数据集合是周期性的数据,保证了后续进行分区存储和对比查询过程中,能够准确地查询出增量数据。
例如,接收第一个选择指令,指令内容为“提取2015年8月20日08:00-2015年8月20日18:00的数据”,根据此指令,提取出第一个时间范围为2015年8月20日08:00-2015年8月20日18:00。接收第二个选择指令,指令内容为“提取2015年8月21日08:00-2015年8月21日18:00的数据”,根据此指令,提取出第二个时间范围为2015年8月21日08:00-2015年8月21日18:00。由于第二个时间范围的起始时刻2015年8月21日08:00晚于第一个时间范围的结束时刻2015年8月20日18:00,所以按照第一个选择指令,提取出对应于第一个时间范围的数据,得到数据集合A{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743},按照第二个选择指令,提取出对应于第二个时间范围的数据,得到数据集合B{81,82,83,84,85,86,,87,88,89,5862,5864,5866,,5869,5871,79735,79737,79738,,79742,79743}。
根据本申请实施例,还提供了一种数据查询装置。该数据查询装置可以执行上述数据查询方法,上述数据查询方法也可以通过该数据查询装置实施。
图5是根据本申请实施例的数据查询装置的示意图,如图5所示,该装置包括:存储单元50、查询单元52、确定单元54。
存储单元50,用于按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域,其中,不同的存储区域对应不同的数据值区间,每个第一数据和每个第二数据均具有数据值,第一数据集合和第二数据集合为不同的数据集合。假设第一数据集合为数据集合A,第二数据集合为数据集合B,数据集合A中包含了多个数据,数据集合B中包含了多个数据,数据集合A和数据集合B中包含的数据不同,按照存储区域与数据值区间的对应关系,把数据集合A中的多个数据和数据集合B中的多个数据分别存储到多个存储区域。其中,每个区域既存储数据集合A的一个子集,又存储数据集合B的一个子集。
查询单元52,用于并行查询每个存储区域中第二数据子集相对第一数据子集的增量数据,得到多个存储区域中的增量数据集合,其中,第一存储区域中的第一数据子集为存储至第一存储区域中的第一数据的集合,第一存储区域中的第二数据子集为存储至第一存储区域中的第二数据的集合,第一存储区域为多个存储区域中的任一存储区域。即,对各个存储区域同时进行查询,对于任意一个存储了集合A的子集中的数据和集合B的子集中的数据的存储区域,查询出数据集合B的子集相对于数据集合A的子集数据的增量,即在该存储区域中,数据集合B的子集中包含,且数据集合A的子集中不包含的数据。
确定单元54,用于确定增量数据集合中的数据为第二数据集合相对第一数据集合的增量数据。即,对于每一个存储区域,已经查询出数据集合B的子集相对于数据集合A的子集数据的增量,所有存储区域的数据的增量的集合即为数据集合B相对于数据集合A的增量数据。
例如,某公司2015年8月20日的数据为81、82、85、86、88、89、5862、5864、5866、5871、79735、79737、79738、79743,2015年8月21日的数据为81、82、83、84、85、86、87、88、89、5862、5864、5866、5869、5871、79735、79737、79738、79742、79743。2015年8月20日的数据的集合为第一数据集合,亦即数据集合A。2015年8月21日的数据的集合为第二数据集合,亦即数据集合B。数据集合A为{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743},数据集合B为{81,82,83,84,85,86,87,88,89,5862,5864,5866,5869,5871,79735,79737,79738,79742,79743}。把数据集合A和数据集合B中的数据存储在3个存储区域,这3个存储区域分别为存储区域甲、存储区域乙、存储区域丙。即把数据集合A划分成3个子集,分别为数据集合A1,数据集合A2,数据集合A3,把数据集合B划分成3个子集,分别为数据集合B1,数据集合B2,数据集合B3。数据集合A1为{81,82,85,86,88,89},数据集合A2为{5862,5864,5866,5871},数据集合A3为{79735,79737,79738,79743}。数据集合B1为{81,82,83,84,85,86,87,88,89},数据集合B2为{5862,5864,5866,5869,5871},数据集合B3为{79735,79737,79738,79742,79743}。存储区域甲存储着数据集合A1和数据集合B1,存储区域乙存储着数据集合A2和数据集合B2,存储区域丙存储着数据集合A3和数据集合B3。同时查询存储区域甲、存储区域乙和存储区域丙。存储区域甲中,数据集合B1中包含且数据集合A1中不包含的数据为83、84、87,即存储区域甲中数据集合B1相对于数据集合A1的增量数据集合为{83、84、87}。存储区域乙中,数据集合B2中包含且数据集合A2中不包含的数据为5869,即存储区域乙中数据集合B2相对于数据集合A2的增量数据集合为{5869}。存储区域丙中,数据集合B3中包含且数据集合A3中不包含的数据为79742,即存储区域丙中数据集合B3相对于数据集合A3的增量数据集合为{79742}。存储区域甲中,数据集合B1相对于数据集合A1的增量数据集合为{83,84,87},存储区域乙中数据集合B2相对于数据集合A2的增量数据集合为{5869},存储区域丙中数据集合B3相对于数据集合A3的增量数据集合为{79742},故数据集合B相对于数据集合A的增量数据集合为{83,84,87,5869,79742},也即数据集合B相对于数据集合A的增量数据为83、84、87、5869、79742。
本申请实施例所提供的数据查询装置,通过存储单元把数据集合A中的多个数据和数据集合B中的多个数据分别存储到多个存储区域,其中,每个区域既存储数据集合A的一个子集,又存储数据集合B的一个子集,对各个存储区域同时进行查询,查询单元查询出各个存储区域中,数据集合B的子集中包含,且数据集合A的子集中不包含的数据,即数据集合B的子集相对于数据集合A的子集的增量数据,确定单元确定所有存储区域的数据的增量的集合即为数据集合B相对于数据集合A的增量数据,实现了分区存储、并行查询的查询方式,解决了现有技术中数据查询效率低的问题,达到了提高数据查询速度和查询效率的技术效果。
可选地,数据查询装置还包括:第一计算单元,用于按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域之前,按照预设计算方式计算第一数据集合中第一数据ai的第一压缩值ai′,其中,i依次取1至n1,n1为第一数据集合中第一数据的数量;以及第二计算单元,用于按照预设计算方式计算第二数据集合中第二数据bj的第二压缩值bj′,其中,j依次取1至n2,n2为第二数据集合中第二数据的数量。
存储单元包括:存储子单元,用于按照压缩值与存储区域的对应关系,将第一数据组A1至第一数据组An1和第二数据组B1至第二数据组Bn2分区存储至多个存储区域,其中,第一数据组Ai为第一数据ai和第一压缩值ai′的组合,第二数据组Bj为第二数据bj和第二压缩值bj′的组合,不同的存储区域对应不同的压缩值区间。
查询单元包括:查询子单元,用于并行查询每个存储区域中第二压缩值子集相对第一压缩值子集的增量压缩值,其中,第一存储区域中的第一压缩值子集为存储至第一存储区域中的第一压缩值的集合,第一存储区域中的第二压缩值子集为存储至第一存储区域中的第二压缩值的集合;以及确定子单元,用于确定多个存储区域中增量压缩值所对应的数据的集合为增量数据集合。即,数据集合A中一共有n1个数据,分别为a1、a2、……an1。按照一定的压缩方式,对数据集合A中的数据进行压缩,经过压缩后得到压缩值,对于ai,对应的压缩值为ai′。数据集合B中一共有n2个数据,分别为b1、b2、……bn2。按照相同的压缩方式,对数据集合B中的数据进行压缩,经过压缩后得到压缩值,对于bj,对应的压缩值为bj′。Ai为数据ai和其压缩值ai′的组合。Bj为数据bj和其压缩值bj′的组合。假如一共有k个存储区域,分别为存储区域1、存储区域2、存储区域3、……存储区域k。在存储区域1中存储在存储区域2中存储在存储区域3中存储在存储区域k中存储其中,lk=n1,dk=n2。
同时查询这k个存储区域。对于每个存储区域,查询该存储区域内的增量压缩值,增量压缩值是数据集合B的子集中的数据的压缩值相对于数据集合A的子集中的数据的压缩值的增量,即数据集合B的子集中的数据的压缩值的集合中包含的,且数据集合A的子集中的数据的压缩值的集合中不包含的压缩值。所有存储区域中增量压缩值所对应的数据的集合即为增量数据集合,也即是数据集合B相对于数据集合A的增量数据。通过利用同样的计算方式计算数据集合A中的数据和数据集合B中的数据的压缩值,相同的数据计算出的压缩值相同,进而通过压缩值进行增量数据的查询,由于压缩值所在空间小于原数据所占空间,因此能够进一步提高查询速度。
例如,某公司2015年8月20日的数据为81、82、85、86、88、89、5862、5864、5866、5871、79735、79737、79738、79743,2015年8月21日的数据为81、82、83、84、85、86、87、88、89、5862、5864、5866、5869、5871、79735、79737、79738、79742、79743。2015年8月20日的数据的集合为第一数据集合,亦即数据集合A。2015年8月21日的数据的集合为第二数据集合,亦即数据集合B。数据集合A为{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743},数据集合B为{81,82,83,84,85,86,87,88,89,5862,5864,5866,5869,5871,79735,79737,79738,79742,79743}。把数据集合A和数据集合B中的数据存储在3个存储区域,这3个存储区域分别为存储区域甲、存储区域乙、存储区域丙。即把数据集合A划分成3个子集,分别为数据集合A1,数据集合A2,数据集合A3,把数据集合B划分成3个子集,分别为数据集合B1,数据集合B2,数据集合B3。数据集合A1为{81,82,85,86,88,89},数据集合A2为{5862,5864,5866,5871},数据集合A3为{79735,79737,79738,79743}。数据集合B1为{81,82,83,84,85,86,87,88,89},数据集合B2为{5862,5864,5866,5869,5871},数据集合B3为{79735,79737,79738,79742,79743}。
可选地,第一计算单元包括:第一计算子单元,用于计算第一数据ai的哈希值,得到第一压缩值ai′,第二计算单元包括:第二计算子单元,用于计算第二数据bj的哈希值,得到第二压缩值bj′。即,预设计算方式可以是哈希算法,压缩值可以是哈希值。根据同一个哈希算法,算出数据集合A中的数据和数据集合B中的数据的哈希值,也即压缩值。
在本申请实施例中,计算数据压缩值的方法有多种,可以根据实际需要进行选择。哈希算法可以用来计算数据的压缩值。哈希算法有很多种,下面举一个例子进行说明。例如,hash(key)=floor{10*[(0.7*key)mod1]}。其中,key表示进行哈希运算的数值,floor表示对表达式进行下取整,mod为取余操作,[(0.7*key)mod1]表示将key乘以0.7并取乘积的小数部分。
根据上述哈希算法,对数据集合A1、数据集合A2、数据集合A3、数据集合B1、数据集合B2、数据集合B3中的数据进行计算。以数据81为例进行说明,81经过哈希算法得到压缩值7,亦即压缩值7对应的数据为81。以数据集合A1为例进行说明,81经过上述哈希算法得到压缩值7,82经过上述哈希算法得到压缩值4,85经过上述哈希算法得到压缩值5,86经过上述哈希算法得到压缩值2,88经过上述哈希算法得到压缩值6,89经过上述哈希算法得到压缩值3,即压缩值7对应81,压缩值4对应82,压缩值5对应85,压缩值2对应86,压缩值6对应88,压缩值3对应89。同理,可求得数据集合A2、数据集合A3、数据集合B1、数据集合B2、数据集合B3中的数据的压缩值。
把数据集合A1和数据集合B1中的压缩值和压缩值对应的数据存储在存储区域甲中,把数据集合A2和数据集合B2中的压缩值和压缩值对应的数据存储在存储区域乙中,把数据集合A3和数据集合B3中的压缩值和压缩值对应的数据存储在存储区域丙中。
图2a和图2b为存储区域甲中存储着数据集合A1和数据集合B1中的压缩值和压缩值对应的数据的示意图。
图3a和图3b为存储区域乙中存储着数据集合A2和数据集合B2中的压缩值和压缩值对应的数据的示意图。
图4a和图4b为存储区域丙中存储着数据集合A3和数据集合B3中的压缩值和压缩值对应的数据的示意图。
同时对存储区域甲、存储区域乙、存储区域丙进行查询。
存储区域甲中存储的数据集合A1中数据的压缩值的集合为{2,3,4,5,6,7},存储的数据集合B1中数据的压缩值的集合为{1,2,3,4,5,6,7,8,9},数据集合B1中数据的压缩值的集合中包含的,且数据集合A1中数据的压缩值的集合中不包含的压缩值为1、8、9,即存储区域甲中,数据集合B1中数据的压缩值的集合相对于数据集合A1中数据的压缩值的集合,新增的压缩值为1、8、9。压缩值1对应的压缩前的数据为83,压缩值8对应的压缩前的数据为84,压缩值9对应的压缩前的数据为87,所以存储区域甲中,数据集合B1相对于数据集合A1的增量数据为83、84、87。
存储区域乙中存储的数据集合A2中数据的压缩值的集合为{2,4,7,8},存储的数据集合B2中数据的压缩值的集合为{2,3,4,7,8},数据集合B2中数据的压缩值的集合中包含的,且数据集合A2中数据的压缩值的集合中不包含的压缩值为3,即存储区域乙中,数据集合B2中数据的压缩值的集合相对于数据集合A2中数据的压缩值的集合,新增的压缩值为3。压缩值3对应的压缩前的数据为5869,所以存储区域乙中,数据集合B2相对于数据集合A2的增量数据为5869。
存储区域丙中存储的数据集合A3中数据的压缩值的集合为{1,5,6,9},存储的数据集合B3中数据的压缩值的集合为{1,4,5,6,9},数据集合B3中数据的压缩值的集合中包含的,且数据集合A3中数据的压缩值的集合中不包含的压缩值为4,即存储区域丙中,数据集合B3中数据的压缩值的集合相对于数据集合A3中数据的压缩值的集合,新增的压缩值为4。压缩值4对应的压缩前的数据为79742,所以存储区域丙中,数据集合B3相对于数据集合A3的增量数据为79742。
可选地,数据查询装置还包括:接收单元,用于在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域之前,接收第一选择指令和第二选择指令;以及第一提取单元,用于按照第一选择指令从目标数据库中提取第一时间范围内的数据,得到第一数据集合,并按照第二选择指令从目标数据库中提取第二时间范围内的数据,得到第二数据集合,其中,第一时间范围和第二时间范围为不同的时间范围,并且第一时间范围的时长和第二时间范围的时长相同。即,按照指令从数据库中提取出时间段t1-t2对应的数据,这些数据组成的集合即为数据集合A,按照另一个指令从数据库中提取出时间段t3-t4对应的数据,这些数据组成的集合即为数据集合B。其中,时间段t1-t2与时间段t3-t4长度相同,且是不同的时间段。
例如,接收第一个选择指令,指令内容为“提取2015年8月20日08:00-2015年8月20日18:00的数据”,根据此指令,提取出数据81、82、85、86、88、89、5862、5864、5866、5871、79735、79737、79738、79743,得到数据集合A{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743}。接收第二个选择指令,指令内容为“提取2015年8月21日08:00-2015年8月21日18:00的数据”,根据此指令,提取出数据81、82、83、84、85、86、87、88、89、5862、5864、5866、5869、5871、79735、79737、79738、79742、79743,得到数据集合B{81,82,83,84,85,86,87,88,89,5862,5864,5866,5869,5871,79735,79737,79738,79742,79743}。
可选地,本申请实施例所提供的数据查询装置还包括:第二提取单元,用于在接收第一选择指令和第二选择指令之后,从第一选择指令中提取第一时间范围,并从第二选择指令中提取第二时间范围;以及判断单元,用于判断第二时间范围的起始时刻是否在第一时间范围的结束时刻之后,第三提取单元,用于当判断出第二时间范围的起始时刻在第一时间范围的结束时刻之后时,按照第一选择指令从目标数据库中提取第一时间范围内的数据,得到第一数据集合,并按照第二选择指令从目标数据库中提取第二时间范围内的数据,得到第二数据集合。即,选择指令包含了两个时间段的信息,根据信息,当第二个时间段的起始时刻位于第一个时间段的结束时刻之后时,亦即第二个时间段位于第一个时间段之后且两个时间段完全不重合的情况下,从数据库中提取相应于两个时间段的数据,相应于第一个时间段,得到数据集合A,相应于第二个时间段,得到数据集合B。第一数据集合和第二数据集合是周期性的数据,保证了后续进行分区存储和对比查询过程中,能够准确地查询出增量数据。
例如,接收第一个选择指令,指令内容为“提取2015年8月20日08:00-2015年8月20日18:00的数据”,根据此指令,提取出第一个时间范围为2015年8月20日08:00-2015年8月20日18:00。接收第二个选择指令,指令内容为“提取2015年8月21日08:00-2015年8月21日18:00的数据”,根据此指令,提取出第二个时间范围为2015年8月21日08:00-2015年8月21日18:00。由于第二个时间范围的起始时刻2015年8月21日08:00晚于第一个时间范围的结束时刻2015年8月20日18:00,所以按照第一个选择指令,提取出对应于第一个时间范围的数据,得到数据集合A{81,82,85,86,88,89,5862,5864,5866,5871,79735,79737,79738,79743},按照第二个选择指令,提取出对应于第二个时间范围的数据,得到数据集合B{81,82,83,84,85,86,,87,88,89,5862,5864,5866,,5869,5871,79735,79737,79738,,79742,79743}。
所述数据查询装置包括处理器和存储器,上述存储单元50、查询单元52、确定单元54等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来查询数据。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个存储区域,其中,不同的存储区域对应不同的数据值区间,每个第一数据和每个第二数据均具有数据值,第一数据集合和第二数据集合为不同的数据集合;并行查询每个存储区域中第二数据子集相对第一数据子集的增量数据,得到多个存储区域中的增量数据集合,其中,第一存储区域中的第一数据子集为存储至第一存储区域中的第一数据的集合,第一存储区域中的第二数据子集为存储至第一存储区域中的第二数据的集合,第一存储区域为多个存储区域中的任一存储区域;以及确定增量数据集合中的数据为第二数据集合相对第一数据集合的增量数据。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种数据查询方法,其特征在于,包括:
按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域,其中,不同的所述存储区域对应不同的数据值区间,每个所述第一数据和每个所述第二数据均具有数据值,所述第一数据集合和所述第二数据集合为不同的数据集合;
并行查询每个所述存储区域中第二数据子集相对所述第一数据子集的增量数据,得到多个所述存储区域中的增量数据集合,其中,第一存储区域中的所述第一数据子集为存储至所述第一存储区域中的所述第一数据的集合,所述第一存储区域中的所述第二数据子集为存储至所述第一存储区域中的所述第二数据的集合,所述第一存储区域为多个所述存储区域中的任一存储区域;以及
确定所述增量数据集合中的数据为所述第二数据集合相对所述第一数据集合的增量数据。
2.根据权利要求1所述的方法,其特征在于,在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,所述方法还包括:
按照预设计算方式计算所述第一数据集合中第一数据ai的第一压缩值ai′,其中,i依次取1至n1,n1为所述第一数据集合中第一数据的数量;以及
按照所述预设计算方式计算所述第二数据集合中第二数据bj的第二压缩值bj′,其中,j依次取1至n2,n2为所述第二数据集合中第二数据的数量,
按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域包括:
按照压缩值与所述存储区域的对应关系,将第一数据组A1至第一数据组An1和第二数据组B1至第二数据组Bn2分区存储至多个所述存储区域,其中,第一数据组Ai为所述第一数据ai和所述第一压缩值ai′的组合,第二数据组Bj为所述第二数据bj和所述第二压缩值bj′的组合,不同的所述存储区域对应不同的压缩值区间,
并行查询每个所述存储区域中第二数据子集相对所述第一数据子集的增量数据,得到多个所述存储区域中的增量数据集合包括:
并行查询每个所述存储区域中第二压缩值子集相对第一压缩值子集的增量压缩值,其中,所述第一存储区域中的所述第一压缩值子集为存储至所述第一存储区域中的第一压缩值的集合,所述第一存储区域中的所述第二压缩值子集为存储至所述第一存储区域中的所述第二压缩值的集合;以及
确定多个所述存储区域中增量压缩值所对应的数据的集合为所述增量数据集合。
3.根据权利要求2所述的方法,其特征在于:
按照预设计算方式计算所述第一数据集合中第一数据ai的第一压缩值ai′包括:计算所述第一数据ai的哈希值,得到所述第一压缩值ai′,
按照所述预设计算方式计算所述第二数据集合中第二数据bj的第二压缩值bj′包括:计算所述第二数据bj的哈希值,得到所述第二压缩值bj′。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,所述方法还包括:
接收第一选择指令和第二选择指令;以及
按照所述第一选择指令从目标数据库中提取第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取第二时间范围内的数据,得到所述第二数据集合,其中,所述第一时间范围和所述第二时间范围为不同的时间范围,并且所述第一时间范围的时长和所述第二时间范围的时长相同。
5.根据权利要求4所述的方法,其特征在于,在接收第一选择指令和第二选择指令之后,所述方法还包括:
从所述第一选择指令中提取所述第一时间范围,并从所述第二选择指令中提取所述第二时间范围;以及
判断所述第二时间范围的起始时刻是否在所述第一时间范围的结束时刻之后,
其中,在判断出所述第二时间范围的起始时刻在所述第一时间范围的结束时刻之后的情况下,按照所述第一选择指令从所述目标数据库中提取所述第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取所述第二时间范围内的数据,得到所述第二数据集合。
6.一种数据查询装置,其特征在于,包括:
存储单元,用于按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域,其中,不同的所述存储区域对应不同的数据值区间,每个所述第一数据和每个所述第二数据均具有数据值,所述第一数据集合和所述第二数据集合为不同的数据集合;
查询单元,用于并行查询每个所述存储区域中第二数据子集相对所述第一数据子集的增量数据,得到多个所述存储区域中的增量数据集合,其中,第一存储区域中的所述第一数据子集为存储至所述第一存储区域中的所述第一数据的集合,所述第一存储区域中的所述第二数据子集为存储至所述第一存储区域中的所述第二数据的集合,所述第一存储区域为多个所述存储区域中的任一存储区域;以及
确定单元,用于确定所述增量数据集合中的数据为所述第二数据集合相对所述第一数据集合的增量数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一计算单元,用于按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,按照预设计算方式计算所述第一数据集合中第一数据ai的第一压缩值ai′,其中,i依次取1至n1,n1为所述第一数据集合中第一数据的数量;以及
第二计算单元,用于按照所述预设计算方式计算所述第二数据集合中第二数据bj的第二压缩值bj′,其中,j依次取1至n2,n2为所述第二数据集合中第二数据的数量,
所述存储单元包括:
存储子单元,用于按照压缩值与所述存储区域的对应关系,将第一数据组A1至第一数据组An1和第二数据组B1至第二数据组Bn2分区存储至多个所述存储区域,其中,第一数据组Ai为所述第一数据ai和所述第一压缩值ai′的组合,第二数据组Bj为所述第二数据bj和所述第二压缩值bj′的组合,不同的所述存储区域对应不同的压缩值区间,
所述查询单元包括:
查询子单元,用于并行查询每个所述存储区域中第二压缩值子集相对第一压缩值子集的增量压缩值,其中,所述第一存储区域中的所述第一压缩值子集为存储至所述第一存储区域中的第一压缩值的集合,所述第一存储区域中的所述第二压缩值子集为存储至所述第一存储区域中的所述第二压缩值的集合;以及
确定子单元,用于确定多个所述存储区域中增量压缩值所对应的数据的集合为所述增量数据集合。
8.根据权利要求7所述的装置,其特征在于:
所述第一计算单元包括:
第一计算子单元,用于计算所述第一数据ai的哈希值,得到所述第一压缩值ai′,
所述第二计算单元包括:
第二计算子单元,用于计算所述第二数据bj的哈希值,得到所述第二压缩值bj′。
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述装置还包括:
接收单元,用于在按照数据值与存储区域的对应关系,将第一数据集合中的多个第一数据和第二数据集合中的多个第二数据分区存储至多个所述存储区域之前,接收第一选择指令和第二选择指令;以及
第一提取单元,用于按照所述第一选择指令从目标数据库中提取第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取第二时间范围内的数据,得到所述第二数据集合,其中,所述第一时间范围和所述第二时间范围为不同的时间范围,并且所述第一时间范围的时长和所述第二时间范围的时长相同。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二提取单元,用于在接收第一选择指令和第二选择指令之后,从所述第一选择指令中提取所述第一时间范围,并从所述第二选择指令中提取所述第二时间范围;以及
判断单元,用于判断所述第二时间范围的起始时刻是否在所述第一时间范围的结束时刻之后,
第三提取单元,用于当判断出所述第二时间范围的起始时刻在所述第一时间范围的结束时刻之后时,按照所述第一选择指令从所述目标数据库中提取所述第一时间范围内的数据,得到所述第一数据集合,并按照所述第二选择指令从所述目标数据库中提取所述第二时间范围内的数据,得到所述第二数据集合。
CN201510662485.5A 2015-10-14 2015-10-14 数据查询方法和装置 Active CN106598969B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510662485.5A CN106598969B (zh) 2015-10-14 2015-10-14 数据查询方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510662485.5A CN106598969B (zh) 2015-10-14 2015-10-14 数据查询方法和装置

Publications (2)

Publication Number Publication Date
CN106598969A true CN106598969A (zh) 2017-04-26
CN106598969B CN106598969B (zh) 2019-12-03

Family

ID=58553047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510662485.5A Active CN106598969B (zh) 2015-10-14 2015-10-14 数据查询方法和装置

Country Status (1)

Country Link
CN (1) CN106598969B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800531A (zh) * 2017-12-13 2018-03-13 广西师范大学 一种采用哈希表分析有限精度下混沌系统的周期的方法
CN112818007A (zh) * 2021-02-03 2021-05-18 中科驭数(北京)科技有限公司 数据处理方法、装置及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916299A (zh) * 2010-09-01 2010-12-15 中国地质大学(武汉) 一种基于文件系统的三维空间数据存储管理方法
CN102043789A (zh) * 2009-10-21 2011-05-04 阿里巴巴集团控股有限公司 一种更新数据表的方法和装置
US20110106966A1 (en) * 2001-08-20 2011-05-05 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
CN103778203A (zh) * 2014-01-13 2014-05-07 中国人民解放军91655部队 一种网络管理数据无损压缩存储与检索的方法与系统
CN104298736A (zh) * 2014-09-30 2015-01-21 华为软件技术有限公司 数据集合连接方法、装置及数据库系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110106966A1 (en) * 2001-08-20 2011-05-05 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
CN102043789A (zh) * 2009-10-21 2011-05-04 阿里巴巴集团控股有限公司 一种更新数据表的方法和装置
CN101916299A (zh) * 2010-09-01 2010-12-15 中国地质大学(武汉) 一种基于文件系统的三维空间数据存储管理方法
CN103778203A (zh) * 2014-01-13 2014-05-07 中国人民解放军91655部队 一种网络管理数据无损压缩存储与检索的方法与系统
CN104298736A (zh) * 2014-09-30 2015-01-21 华为软件技术有限公司 数据集合连接方法、装置及数据库系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800531A (zh) * 2017-12-13 2018-03-13 广西师范大学 一种采用哈希表分析有限精度下混沌系统的周期的方法
CN112818007A (zh) * 2021-02-03 2021-05-18 中科驭数(北京)科技有限公司 数据处理方法、装置及可读存储介质
CN112818007B (zh) * 2021-02-03 2021-10-19 中科驭数(北京)科技有限公司 数据处理方法、装置及可读存储介质

Also Published As

Publication number Publication date
CN106598969B (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
CN104978601B (zh) 神经网络模型训练系统和方法
CN108171280A (zh) 一种分类器构建方法及预测分类的方法
CN108920272A (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN106156070B (zh) 一种查询方法、文件合并方法与相关装置
CN106649346A (zh) 数据重复性校验方法及装置
CN105204920B (zh) 一种基于映射聚合的分布式计算作业的实现方法及装置
CN112800466B (zh) 基于隐私保护的数据处理方法、装置和服务器
CN104462222A (zh) 一种卡口车辆通行数据的分布式存储方法及系统
CN105117442B (zh) 一种基于概率的大数据查询方法
CN106326475A (zh) 一种高效的静态哈希表实现方法及系统
CN109766394A (zh) 度量平台数据查询方法及装置、可读存储介质及终端
CN105468699B (zh) 去重数据统计方法及设备
CN106598969A (zh) 数据查询方法和装置
US10394769B2 (en) Adaptive query processor for query systems with limited capabilities
CN106897281A (zh) 一种日志分片方法和装置
CN111400301B (zh) 一种数据查询方法、装置及设备
CN105701861A (zh) 点云采样方法及系统
US9384238B2 (en) Block partitioning for efficient record processing in parallel computing environment
CN110263136A (zh) 基于强化学习模型向用户推送对象的方法和装置
CN111783141B (zh) 基于区块链的数据存储方法、装置、设备及存储介质
CN111325255B (zh) 特定人群圈定方法、装置、电子设备及存储介质
CN105589896B (zh) 数据挖掘方法及装置
CN105991609B (zh) 一种风险事件确定方法及装置
CN109544329A (zh) 撮合匹配方法、装置和系统
CN110362540A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant