CN104679858A - 一种查询数据的方法和装置 - Google Patents
一种查询数据的方法和装置 Download PDFInfo
- Publication number
- CN104679858A CN104679858A CN201510085627.6A CN201510085627A CN104679858A CN 104679858 A CN104679858 A CN 104679858A CN 201510085627 A CN201510085627 A CN 201510085627A CN 104679858 A CN104679858 A CN 104679858A
- Authority
- CN
- China
- Prior art keywords
- data
- child partition
- raw data
- partition
- precision
- 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
Links
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24557—Efficient disk access during query execution
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种查询数据的方法和装置,实现了根据用户对数据精度的需求,查询满足精度需求的数据的技术效果。所述方法包括:接收包括查询条件和查询精度的查询指令;确定满足所述查询条件的数据分区;在所述数据分区中确定出与所述查询精度对应的数据子分区;查询所述数据子分区中的数据,获得查询结果。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种查询数据的方法和装置。
背景技术
随着生活和生产的发展,大量的数据需要存储和归档。由于当前数据库可以存储几十到几百TB的数据量,因此数据库在存储和管理数据方面扮演着十分重要的角色。
数据库中存储了大量数据,因此为了方便存储,且在查询时减小查询量,现有技术中,数据库往往会按照时间、数值范围或哈希值来将数据分区存储。
但是,用户查询数据时,有时候可能根据不同的目的而希望获得不同精度的数据。例如用户为了分析出数据的变化趋势,那么其实并不需要每一个数据。而用户更希望查询获得的是哪些变化剧烈的数据,或者低精度数据。对于变化缓慢甚至没有变化的数据,对于趋势分析并没有很明显的意义。而若用户查询数据的目的是为了计算或统计,则用户希望查询获得的尽可能全面的数据,并且数据的精度高,以保证最终的计算或统计结果误差小。
然而,现有技术中的数据库,由于仅仅按照时间、数值范围或哈希值来分区存储,造成数据库难以满足不同精度的查询需求。
发明内容
本发明实施例提供了一种查询数据的方法和装置,实现了根据用户对数据精度的需求,查询满足精度需求的数据的目的。
本申请第一方面提供了一种查询数据的方法,包括:
接收包括查询条件和查询精度的查询指令;
确定满足所述查询条件的数据分区;
在所述数据分区中确定出与所述查询精度对应的数据子分区;
查询所述数据子分区中的数据,获得查询结果。
结合第一方面,在第一方面的第一种可能的实现方式中,所述数据子分区包括高精度子分区、低精度子分区,在所述数据分区中确定出与所述查询精度对应的数据子分区,具体包括:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
结合第一方面,或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在接收包括查询条件和查询精度的查询指令之前,还包括:
接收多个原始数据;
根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
将每个分区的原始数据分为低精度数据和高精度数据;
将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,将每个分区的原始数据分为低精度数据和高精度数据,具体包括:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据;
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,查询所述数据子分区中的数据,获得查询结果,具体包括:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,在根据各个线性插值与所述偏差数据,获得所述多个原始数据之后,所述方法还包括:
根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述数据分区对应的原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
结合第一方面的第三种可能的实现方式,在第一方面的第六种可能的实现方式中,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,查询所述数据子分区中的数据,获得查询结果,具体包括:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,在根据各个线性插值与所述偏差数据,获得原始数据之后,所述方法还包括:
根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
本申请第二方面提供了一种查询数据的装置,包括:
第一接收单元,用于接收包括查询条件和查询精度的查询指令;
第一确定单元,用于确定满足所述查询条件的数据分区;
第二确定单元,用于在所述数据分区中确定出与所述查询精度对应的数据子分区;
查询单元,用于查询所述数据子分区中的数据,获得查询结果。
结合第二方面,在第二方面的第一种可能的实现方式中,所述数据子分区包括高精度子分区、低精度子分区,所述第二确定单元具体用于:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
结合第二方面,或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述装置还包括:
第二接收单元,用于在接收包括查询条件和查询精度的查询指令之前,接收多个原始数据;
第三确定单元,用于根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
数据处理单元,用于将每个分区的原始数据分为低精度数据和高精度数据;并将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述数据处理单元具体用于:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据;
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,所述查询单元具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述查询单元还用于:
在根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据之后,根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述最终数据作为所述查询结果。
结合第二方面的第三种可能的实现方式,在第二方面的第六种可能的实现方式中,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,所述查询单元具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述查询单元还用于:
根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述最终数据作为所述查询结果。
本申请第三方面提供了一种查询数据的设备,包括:
接收器,用于接收包括查询条件和查询精度的查询指令;
处理器,用于确定满足所述查询条件的数据分区;并在所述数据分区中确定出与所述查询精度对应的数据子分区;以及查询所述数据子分区中的数据,获得查询结果。
结合第三方面,在第三方面的第一种可能的实现方式中,所述数据子分区包括高精度子分区、低精度子分区,所述处理器具体用于:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
结合第三方面,或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述接收器还用于:
在接收包括查询条件和查询精度的查询指令之前,接收多个原始数据;
所述处理器用于:
根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;将每个分区的原始数据分为低精度数据和高精度数据;并将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器具体用于:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;将所述不可被压缩的原始数据作为所述低精度数据;将所述多个原始数据作为高精度数据;或在各个不可被压缩的原始数据之间进行线性插值;得各个线性插值与对应的原始数据之间的偏差数据;将所述偏差数据作为所述高精度数据。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,所述处理器具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;在各个所述不可被压缩的原始数据之间的进行线性插值;读取所述高精度子分区中的所述偏差数据;根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;将所述数据分区对应的原始数据作为所述查询结果。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理器还用于:
在根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据之后,根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;将所述最终数据作为所述查询结果。
结合第三方面的第三种可能的实现方式,在第三方面的第六种可能的实现方式中,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,所述处理器具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;在各个所述不可被压缩的原始数据之间的进行线性插值;根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;根据各个所述合格线性插值与所述偏差数据,获得原始数据;将所述原始数据作为所述查询结果。
结合第三方面的第六种可能的实现方式,在第三方面的第七种可能的实现方式中,所述处理器还用于:
在根据各个线性插值与所述偏差数据,获得原始数据之后,根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;将所述最终数据作为所述查询结果。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
接收包括查询条件和查询精度的查询指令;确定满足所述查询条件的数据分区;在所述数据分区中确定出与所述查询精度对应的数据子分区;查询所述数据子分区中的数据,获得查询结果。所以,在本发明实施例的技术方案中,首先根据查询条件确定数据分区,接着再根据查询精度从数据分区中确定出查询精度对应的数据子分区来,最终在数据子分区中查询。从而实现了按照查询精度查询数据,提供更加满足用户需求的数据的技术效果。
附图说明
图1为本发明实施例中查询数据方法的流程图;
图2a-图2b为本发明实施例中低精度子分区和高精度子分区的示意图;
图3为本发明实施例中对一分区数据执行SDT压缩算法获得的各个计算数值;
图4为本发明实施例中查询数据的装置结构示意图;
图5为本发明实施例中查询数据的设备结构示意图。
具体实施方式
本发明实施例提供了一种查询数据的方法和装置,实现了根据用户对数据精度的需求,查询满足精度需求的数据的技术效果。
为了解决上述技术问题,本发明提供的解决思路包括如下内容:
接收包括查询条件和查询精度的查询指令;确定满足所述查询条件的数据分区;在所述数据分区中确定出与所述查询精度对应的数据子分区;查询所述数据子分区中的数据,获得查询结果。所以,在本发明实施例的技术方案中,首先根据查询条件确定数据分区,接着再根据查询精度从数据分区中确定出查询精度对应的数据子分区来,最终在数据子分区中查询。从而实现了按照查询精度查询数据,提供更加满足用户需求的数据的技术效果。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请第一方面提供了一种查询数据方法,如图1所示,包括如下步骤:
S101:接收包括查询条件和查询精度的查询指令。
S102:确定满足所述查询条件的数据分区。
S103:在所述数据分区中确定出与所述查询精度对应的数据子分区。
S104:查询所述数据子分区中的数据,获得查询结果。
首先,S101中,接收到的查询指令中包括查询条件和查询精度。具体来讲,在本发明实施例中,查询条件与所存储的数据的统计参数对应。举例来说,数据的统计参数为时间,如2010-1-1到2012-12-31。那么查询条件也为一时间参数,例如查询条件为2010-1-1,或2010-1-1到2010-1-2等。
查询数据的设备中的多个数据按照统计参数分区存储,因此,根据查询指令中的查询条件可以确定出满足查询条件的数据分区。例如当统计参数为时间,且具体为2010-1-1到2012-12-31,而每一天的数据存储在一个分区中。所以假设接收到的查询指令中的查询条件为2010-1-1,则确定存储2010-1-1那一天的数据的分区,就是满足查询条件的数据分区。
接下来在S103中,为了查询获得满足查询精度的数据,进一步将从数据分区中确定出与查询精度对应的数据子分区。在具体实现过程中,查询精度可能与数据子分区的精度相同;也可能不相同,但是高于查询精度。
具体来讲,数据分区中包括高精度子分区和低精度子分区。在本发明实施例中,高精度子分区的数据精度为100%,低精度子分区的精度为低于100%的任意百分数。为了方便后续描述,假设低精度子分区的精度为q。
在本发明实施例中,当查询精度低于或等于q时,表明低精度子分区中存储的数据的精度已经可以满足查询精度的需求了,那么为了加快查询速度,将低精度子分区确定为数据子分区即可。
而当查询精度高于q时,为了满足用户对精度的需求,可以仅在高精度子分区中查询,也可以在低精度子分区和高精度子分区中查询。即确定高精度子分区为数据子分区,或确定低精度子分区和高精度子分区均为数据子分区。在具体实现过程中,本申请所属领域的普通技术人员可以根据实际进行选择,本申请不做具体限制。
最后,在S104中查询数据子分区,从而获得查询结果。
由上述描述可以看出,在本发明实施例的技术方案中,可以根据用户的查询精度在不同的数据子分区中进行查询,从而满足用户不同查询场合的需求。并且,当查询精度低于低精度子分区时,仅在低精度子分区中进行查询,避免了在查询全部数据,因此加快了查询效率。
可选的,在S101之前,还包括:
接收多个原始数据;
根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
将每个分区的原始数据分为低精度数据和高精度数据;
将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
具体来讲,在查询数据之前,查询数据的设备首先要接收多个原始数据,如10000个,254625个等。对原始数据的数量本申请不做具体限制。
为了便于存储和查询,查询数据的设备会将多个原始数据存储在多个分区中。由于原始数据是按照统计参数进行统计的,因此,根据统计参数就可以确定每个原始数据对应的分区。其中,S102中确定的数据分区也在多个分区中。
例如统计参数为时间,查询数据的设备中设置为一个分区存储一天的数据,因此,按照原始数据的时间,就可以确定原始数据所对应的分区。例如2010-1-1的数据对应第1个分区,2010-1-2的数据对应第2个分区等等。
进一步,为方便查询不同精度的数据,还需要将每个分区的原始数据分为高精度数据和低精度数据。并且每个分区的高精度数据存储在对应分区的高精度子分区,每个分区的低精度数据存储在对应分区的低精度子分区中。
具体来讲,将每个分区的原始数据分为低精度数据和高精度数据,可以通过多种方式实现,例如通过旋转门(英文:Swinging Door Trending;简称SDT)压缩算法,小波算法等将分区中的原始数据进行分解为两组,一组为低精度数据,另一组为高精度数据。通过SDT压缩算法或小波算法对原始数据进行分解后,所获得的低精度数据的数据量将小于高精度数据的数据量,例如当高精度数据包括10万个,而低精度数据仅有99个。
另外,还可以通过计算分区中每个原始数据的方差,然后将方差大于阈值的原始数据作为低精度数据,而方差小于阈值的原始数据作为高精度数据。在将分区中的原始数据分为低精度数据和高精度数据时,本申请所述领域的普通技术人员可以根据实际进行选择,本申请不做具体限制。
下面,以通过SDT分解算法为例,详细介绍获得低精度数据和高精度数据的过程。具体如下:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据;
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
其中,假设本轮SDT压缩算法从一分区的第i个数据开始执行,SDT压缩算法具体为:
步骤1:将第i个原始数据作为不可被压缩的原始数据。
步骤2:取V2等于第i+1个原始数据的数值,V1等于第i个原始数据的数值,t2等于第i+1个原始数据的统计参数,t1等于第i个原始数据的统计参数,通过公式1和公式2,计算获得第一斜率K1和第二斜率K2;
K1=(V2-(V1+p))/(t2-t1) 公式1;
K2=(V2-(V1-p))/(t2-t1) 公式2;
其中,p为预设的压缩参数。
步骤3:当K1不等于K2时,执行步骤4;当K1等于K2时,本轮SDT压缩算法结束。
步骤4:取V3等于第i+2个原始数据的数值,V1等于第i个原始数据的数值,t3等于第i+2个原始数据的统计参数,t1等于第i个原始数据的统计参数,通过公式3,计算获得第三斜率K3;
K3=(V3-V1)/(t3-t1) 公式3。
步骤5:当K3介于K1和K2之间,执行步骤6;当K3未介于K1和K2之间,执行步骤7。
步骤6:确定V2当前所取值的原始数据为可被压缩的原始数据;令V2等于当前所取原始数据后的第一个原始数据的数值,t2等于当前所取原始数据后的第一个原始数据的统计参数,V1和t1的取值保持不变,通过公式1和公式2,重新计算获得第一斜率K1和第二斜率K2;令V3等于当前所取原始数据后的第一个原始数据的数值,t3等于当前所取原始数据后的第一个原始数据的统计参数,V1和t1的取值保持不变,通过公式3,重新计算获得第三斜率K3;执行步骤5。
步骤7:确定V2当前所取值的原始数据为不可被压缩的原始数据,并将V2当前所取值的原始数据作为下一轮SDT压缩算法中的第1个原始数据;本轮SDT算法结束。
在上述算法中,预设的分解参数p为用户设置的参数,或查询数据的设备中的默认参数,可以取1,0.1或0.5等值,本申请不做具体限制。
为了方便描述,请参考图2a和图2b。假设2014-9-1分区中的原始数据如图2a和图2b左侧所示。假设p=0.3,首先将第1个原始数据26.1作为不可被压缩的原始数据。
接下来,取V2=26.3,V1=26.1。为了方便计算,t1、t2和t3均取秒针钟,即t1=0,t2=2。根据公式1和公式2,计算获得K1=-0.05,K2=0.25。然后取V3=26.8,V1=26.1,t1=0,t3=4。根据公式3,计算获得K3=0.175。
由于K3介于K1和K2之间,故第2个原始数据是可被压缩的原始数据。
进一步,取V2=26.8,V1=26.1,t2=4,t1=0,根据公式1和公式2,重新计算获得K1=0.1,K2=0.25。取V3=27.4,V1=26.1,t1=0,t3=6。根据公式3,计算获得K3=0.217。
由于K3介于K1和K2之间,故第3个原始数据也是被压缩的原始数据。
按照类似的计算过程,可以判断出第4个原始数据和第5个原始数据也是可被压缩的原始数据。
当判断第6个原始数据是否为可被压缩的原始数据时,取V2=28.1,V1=26.1,t2=10,t1=0,根据公式1和公式2,重新计算获得K1=0.17,K2=0.23。取V3=28,V1=26.1,t1=0,t3=12。根据公式3,计算获得K3=0.158。
K3未介于K1和K2之间,故第6个原始数据为不可被压缩的原始数据,本轮SDT压缩算法结束。
由于分区中的数据未分解完,因此对后续数据开始进行下一轮SDT压缩算法,并且将第6个原始数据作为下一轮SDT压缩算法的第1个不可被压缩的原始数据。
接下来,取V2=28,V1=28.1,t1=10,t2=12。根据公式1和公式2,计算获得K1=-0.2,K2=0.1。然后取V3=27.7,V1=28.1,t1=10,t3=14。根据公式3,计算获得K3=-0.1。
由于K3介于K1和K2之间,故第7个原始数据是可被压缩的原始数据。后续原始数据执行SDT压缩算法的过程类似,具体计算得到的各个数值请参考图3,这里就不一一详细列举了。
当图2a和图2b中的10个数据均执行完SDT压缩算法后,可以获得不可压缩的原始数据分别为第1个、第6个和第10个原始数据,其余原始数据均为可被压缩的原始数据。
接下来,将不可被压缩的原始数据作为低精度数据。
而对于高精度数据,在本发明实施例中,可以将全部原始数据作为高精度数据,如图2a所示。或者,为了减少高精度数据的数据量,也可以将对原始数据对应的偏差数据作为高精度数据。
具体来讲,首先在各个不可被压缩的原始数据之间进行线性插值。其中,本发明实施例中的线性插值的具体实现方式与现有技术类似,这里就不再详细赘述了。
如图2b所示,第1个原始数据和第6个原始数据为不可被压缩的原始数据,那么就在第1个原始数据和第6个原始数据之间进行线性插值,进而获得第1个原始数据和第6个原始数据之间的线性插值依次为26.1、26.5、26.9、27.3、27.9和28.1。其中,第1个线性插值26.1和第6个线性插值28.1为不可被压缩的原始数据本身。
接下来,获得每个线性插值和对应的原始数据之间的偏差数据。获得偏差数据,具体为线性插值减去原始数据,或原始数据减去线性插值,对此本申请不做限制,以下假设偏差数据为线性插值减去原始数据。沿用上文中的例子来说明。第1个原始数据和第6个原始数据之间的线性插值依次为26.1、26.5、26.9、27.3、27.9和28.1,那么线性插值26.5就和第2个原始数据对应,进而获得第2个原始数据的线性插值为0.2。
在本发明实施例中,不可被压缩的原始数据的线性插值为自身,故不可被压缩的原始数据对应的偏差数据为0。但是,偏差数据为0的数据,所对应的可能为不可被压缩的原始数据,也可能为可被压缩的原始数据。
获得全部原始数据的偏差数据后,将偏差数据作为高精度数据。最后,如图2b所示,将不可被压缩的原始数据作为低精度数据存储在低精度子分区中,将偏差数据作为高精度数据存储高精度子分区中。
进一步,在本发明实施例中,低精度子分区的精度q=(1-p/(max-min))×100%,其中,max为该分区的原始数据中的最大值,min为最小值。例如图2b所示的分区中,最大值max为28.1,最小值min为26.1,而p=0.3,因此,如图2b所示的低精度子分区的精度q就为85%。
在本发明实施例中,当将原始数据作为高精度数据,如图2a,且高精度子分区为数据子分区时,由于读取到的数据即为原始数据,因此可以直接将读取到的原始数据作为查询结果。
而当将偏差数据作为高精度数据,且低精度子分区和高精度子分区为数据子分区时,本发明实施例中,S104的实现过程具体包括但不限于以下两种方式。
第一种:
S104的具体实现过程包括:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
具体来讲,当确定低精度子分区和高精度子分区为数据子分区时,首先读取低精度子分区中的不可被压缩的原始数据,接着在各个不可被压缩的原始数据之间进行线性插值。然后,读取高精度子分区中的偏差数据。再根据偏差数据和线性插值还原出数据分区对应的原始数据。最后将原始数据作为查询结果。
沿用上文中的例子来说,如图2b所示,假设查询条件为2014-9-1,查询精度为70%,则查询精度高于2014-9-1分区中的低精度子分区的精度,故确定低精度子分区和高精度子分区为数据子分区。
在查询时,首先查询低精度子分区中的数据,获得26.1、28.1和27.3三个不可被压缩的原始数据。接着在上述三个不可被压缩的原始数据之间进行线性插值,依次获得的10个线性插值为26.1、26.5、26.9、27.3、27.7、28.1、27.9、27.7、27.5和27.3。
然后,再查询高精度子分区中的偏差数据,获得0、0.2、0.1、-0.1、0.2、0、-0.1、0、0.1和0。
接下来,根据各个线性插值对应的偏差数据,获得数据分区对应的原始数据。获得原始数据的过程具体为获得偏差数据的逆运算过程。本发明实施例中假设偏差数据为线性插值减去原始数据,那么,获得原始数据时,则为线性插值减去偏差数据。在图2b所示的例子中,具体为偏差数据0对应26.1、0.2对应26.5、0.1对应26.9…0对应27.3。进而获得数据分区对应的10个原始数据依次为26.1、26.3、26.8、27.4、27.5、28.1、28、27.7、27.4和27.3。最后,将上述10个原始数据作为查询结果。
可选的,在获得数据分区对应的原始数据之后,还包括:
根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述数据分区对应的原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果
具体来讲,当查询指令中还包括筛选条件时,为了确定查询结果满足筛选条件,因此在获得原始数据后,将根据筛选条件对原始数据进行筛选,从而确定出符合筛选条件的最终数据。
沿用上文中的例子来说,假设筛选条件为[27,28],大于等于27,小于等于28。那么经过筛选,确定原始数据中,27.4、27.5、28.1、28、27.7、27.4和27.3满足筛选条件。所以,查询结果就为27.4、27.5、28.1、28、27.7、27.4和27.3。
第二种:
本发明实施例中,S104的实现过程具体包括:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
具体来讲,首先,查询低精度子分区中的不可被压缩的原始数据。然后在各个不可被压缩的原始数据之间进行线性插值。接着根据查询指令中的筛选条件,对线性插值进行初次筛选,从而确定出符合筛选条件的合格线性插值。进一步,在高精度子分区中查询偏差数据。但是,由于已经对线性插值进行了初次筛选,因此在查询高精度子分区时,仅仅需要查询与合格线性插值所对应的偏差数据即可。接着,结合查询到的偏差数据和对应的合格线性插值获得各个原始数据。最后,将原始数据作为查询结果。
沿用上文中的例子来说,如图2b所示。首先,查询低精度子分区中的数据,获得26.1、28.1和27.3三个不可被压缩的原始数据。接着在上述三个不可被压缩的原始数据之间进行线性插值,依次获得的10个线性插值为26.1、26.5、26.9、27.3、27.7、28.1、27.9、27.7、27.5和27.3。
假设查询指令中的筛选条件为[27.5,28],那么满足筛选条件的合格线性插值为27.7、27.9、27.7和27.5。
在具体实现过程中,由于在执行SDT分解算法时,是按照分解参数p进行压缩的,因此,最终获得低精度数据存在p的误差。即当一个线性插值的数值为a,那么该线性插值对应的真实数据的数值其实应在[a-p,a+p]之间。而当[a-p,a+p]存在筛选条件的范围时,该线性插值就应被作为合格的线性插值。
举例来说,在对图2b的数据分区的数据执行SDT压缩算法时,分解参数p为0.3。因此,2上述10个线性插值所对应的原始数据的真实数值应该分别在[25.1,27.1],[25.5,27.5],[25.9,27.9],[26.3,28.3],[26.7,28.7],[27.1,29.1],[26.9,28.9],[26.7,28.7],[26.5,28.5],[26.3,28.3]之间。而[25.5,27.5],[25.9,27.9],[26.3,28.3],[26.7,28.7],[27.1,29.1],[26.9,28.9],[26.7,28.7],[26.5,28.5],[26.3,28.3]均与[27.5,28]有重合部分,因此,线性插值26.5、26.9、27.3、27.7、28.1、27.9、27.7、27.5和27.3均可被当作合格线性插值。
最后,在高精度子分区中读取26.5、26.9、27.3、27.7、28.1、27.9、27.7、27.5和27.3对应的偏差数据,即读取第2到10个原始数据对应的偏差数据,以结果线性插值获得第2到10个原始数据。后续获得原始数据的过程与第一种实现方式类似,这里就不再重复赘述了。
可选的,在根据各个线性插值与所述偏差数据,获得原始数据之后,所述方法还包括:
根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
具体来讲,为了使查询结果根据符合筛选条件,在获得原始数据后,还可以根据筛选条件对原始数据进行再次筛选,从而使得查询结果更加符合筛选条件。
沿用上文中的例子来说,假设筛选条件为[27.5,28],原始数据26.5、26.8、27.4、27.5、28.1、28、27.7、27.4和27.3中,27.5、28和27.7为满足筛选条件的最终数据。因此,查询结果就为27.5、28和27.7。
本申请第二方面提供了一种查询数据的装置,如图4所示,包括:
第一接收单元401,用于接收包括查询条件和查询精度的查询指令;
第一确定单元402,用于确定满足所述查询条件的数据分区;
第二确定单元403,用于在所述数据分区中确定出与所述查询精度对应的数据子分区;
查询单元404,用于查询所述数据子分区中的数据,获得查询结果。
可选的,在本发明实施例中,数据子分区包括高精度子分区、低精度子分区,第二确定单元403具体用于:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
可选的,本发明实施例中的装置还包括:
第二接收单元,用于在接收包括查询条件和查询精度的查询指令之前,接收多个原始数据;
第三确定单元,用于根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
数据处理单元,用于将每个分区的原始数据分为低精度数据和高精度数据;并将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
可选的,所述数据处理单元具体用于:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据;
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
具体来讲,当将偏差数据作为高精度数据,且低精度子分区和高精度子分区为数据子分区时,查询单元404具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
可选的,查询单元404还用于:
在根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据之后,根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述最终数据作为所述查询结果。
具体来讲,当将偏差数据作为高精度数据,且低精度子分区和高精度子分区为数据子分区时,查询单元404具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
可选的,查询单元404还用于:
根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述最终数据作为所述查询结果。
本申请第三方面提供了一种查询数据的设备,图5所示的查询数据的设备涉及到的术语的含义以及具体实现,可以参考前述图1至图4以及实施例的相关描述。
请参考图5,该设备包括:
接收器501,用于接收包括查询条件和查询精度的查询指令;
处理器503,用于确定满足所述查询条件的数据分区;并在所述数据分区中确定出与所述查询精度对应的数据子分区;以及查询所述数据子分区中的数据,获得查询结果。
可选的,数据子分区包括高精度子分区、低精度子分区,处理器503具体用于:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
可选的,接收器501在接收包括查询条件和查询精度的查询指令之前,还用于接收多个原始数据;而处理器503用于:
根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
将每个分区的原始数据分为低精度数据和高精度数据;
将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
可选的,处理器503具体用于:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
当将偏差数据作为高精度数据,且低精度子分区和高精度子分区为数据子分区时,处理器503具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
可选的,处理器503还用于:
在根据各个线性插值与所述偏差数据,获得所述多个原始数据之后,根据所述查询指令中还包括的筛选条件和所述多个原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述多个原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
可选的,当将偏差数据作为高精度数据,且低精度子分区和高精度子分区为数据子分区时,处理器503具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
可选的,处理器503还用于:
在根据各个线性插值与所述偏差数据,获得原始数据之后,根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器503代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口505在总线500和接收器501和发送器502之间提供接口。接收器501和发送器502可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器503负责管理总线500和通常的处理,而存储器504可以被用于存储处理器503在执行操作时所使用的数据。
前述实施例中描述的查询数据的各种变化方式和具体实例同样适用于本实施例的查询数据的设备,通过前述对查询数据的方法和查询数据的装置执行过程的详细描述,本领域技术人员可以清楚的知道本实施例中查询数据的设备的实施方法,所以为了说明书的简洁,在此不再详述。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
接收包括查询条件和查询精度的查询指令;确定满足所述查询条件的数据分区;在所述数据分区中确定出与所述查询精度对应的数据子分区;查询所述数据子分区中的数据,获得查询结果。所以,在本发明实施例的技术方案中,首先根据查询条件确定数据分区,接着再根据查询精度从数据分区中确定出查询精度对应的数据子分区来,最终在数据子分区中查询。从而实现了按照查询精度查询数据,提供更加满足用户需求的数据的技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种查询数据的方法,其特征在于,包括:
接收包括查询条件和查询精度的查询指令;
确定满足所述查询条件的数据分区;
在所述数据分区中确定出与所述查询精度对应的数据子分区;
查询所述数据子分区中的数据,获得查询结果。
2.如权利要求1所述的方法,其特征在于,所述数据子分区包括高精度子分区、低精度子分区,在所述数据分区中确定出与所述查询精度对应的数据子分区,具体包括:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
3.如权利要求1或2所述的方法,其特征在于,在接收包括查询条件和查询精度的查询指令之前,还包括:
接收多个原始数据;
根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
将每个分区的原始数据分为低精度数据和高精度数据;
将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
4.如权利要求3所述的方法,其特征在于,将每个分区的原始数据分为低精度数据和高精度数据,具体包括:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据;
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
5.如权利要求4所述的方法,其特征在于,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,查询所述数据子分区中的数据,获得查询结果,具体包括:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
6.如权利要求5所述的方法,其特征在于,在根据各个线性插值与所述偏差数据,获得所述多个原始数据之后,所述方法还包括:
根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述数据分区对应的原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
7.如权利要求4所述的方法,其特征在于,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,查询所述数据子分区中的数据,获得查询结果,具体包括:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
8.如权利要求7所述的方法,其特征在于,在根据各个线性插值与所述偏差数据,获得原始数据之后,所述方法还包括:
根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述原始数据作为所述查询结果,具体为:
将所述最终数据作为所述查询结果。
9.一种查询数据的装置,其特征在于,包括:
第一接收单元,用于接收包括查询条件和查询精度的查询指令;
第一确定单元,用于确定满足所述查询条件的数据分区;
第二确定单元,用于在所述数据分区中确定出与所述查询精度对应的数据子分区;
查询单元,用于查询所述数据子分区中的数据,获得查询结果。
10.如权利要求9所述的装置,其特征在于,所述数据子分区包括高精度子分区、低精度子分区,所述第二确定单元具体用于:
当所述查询精度低于或等于所述低精度子分区的精度时,确定所述低精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述高精度子分区为所述数据子分区;或
当所述查询精度高于所述低精度子分区的精度时,确定所述低精度子分区和所述高精度子分区为所述数据子分区。
11.如权利要求9或10所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于在接收包括查询条件和查询精度的查询指令之前,接收多个原始数据;
第三确定单元,用于根据所述多个原始数据的统计参数,确定每个原始数据对应的分区,所述分区包括所述数据分区;
数据处理单元,用于将每个分区的原始数据分为低精度数据和高精度数据;并将所述每个分区的低精度数据存储在对应分区的低精度子分区中,所述每个分区的高精度数据存储在对应分区的高精度子分区中。
12.如权利要求11所述的装置,其特征在于,所述数据处理单元具体用于:
对所述每个分区的原始数据执行旋转门SDT压缩算法,获得不可被压缩的原始数据;
将所述不可被压缩的原始数据作为所述低精度数据;
将所述多个原始数据作为高精度数据;或
在各个不可被压缩的原始数据之间进行线性插值;
获得各个线性插值与对应的原始数据之间的偏差数据;
将所述偏差数据作为所述高精度数据。
13.如权利要求12所述的装置,其特征在于,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,所述查询单元具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
读取所述高精度子分区中的所述偏差数据;
根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据;
将所述数据分区对应的原始数据作为所述查询结果。
14.如权利要求13所述的装置,其特征在于,所述查询单元还用于:
在根据各个线性插值与所述偏差数据,获得所述数据分区对应的原始数据之后,根据所述查询指令中还包括的筛选条件和所述数据分区对应的原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述最终数据作为所述查询结果。
15.如权利要求12所述的装置,其特征在于,当将所述偏差数据作为所述高精度数据,且所述低精度子分区和所述高精度子分区为所述数据子分区时,所述查询单元具体用于:
读取所述低精度子分区中的所述不可被压缩的原始数据;
在各个所述不可被压缩的原始数据之间的进行线性插值;
根据所述查询指令中还包括的筛选条件和线性插值所对应的统计参数,确定出符合所述筛选条件的合格线性插值;
读取所述高精度子分区中的与所述合格线性插值对应的所述偏差数据;
根据各个所述合格线性插值与所述偏差数据,获得原始数据;
将所述原始数据作为所述查询结果。
16.如权利要求15所述的装置,其特征在于,所述查询单元还用于:
根据所述筛选条件和所述原始数据的统计参数,确定出符合所述筛选条件的最终数据;
将所述最终数据作为所述查询结果。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510085627.6A CN104679858B (zh) | 2015-02-16 | 2015-02-16 | 一种查询数据的方法和装置 |
PCT/CN2015/098946 WO2016131341A1 (zh) | 2015-02-16 | 2015-12-25 | 一种查询数据的方法和装置 |
EP15882480.5A EP3249550A4 (en) | 2015-02-16 | 2015-12-25 | Data querying method and device |
US15/677,952 US11086904B2 (en) | 2015-02-16 | 2017-08-15 | Data query method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510085627.6A CN104679858B (zh) | 2015-02-16 | 2015-02-16 | 一种查询数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679858A true CN104679858A (zh) | 2015-06-03 |
CN104679858B CN104679858B (zh) | 2018-10-09 |
Family
ID=53314900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510085627.6A Active CN104679858B (zh) | 2015-02-16 | 2015-02-16 | 一种查询数据的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11086904B2 (zh) |
EP (1) | EP3249550A4 (zh) |
CN (1) | CN104679858B (zh) |
WO (1) | WO2016131341A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279917A (zh) * | 2015-09-25 | 2016-01-27 | 卡斯柯信号有限公司 | 一种基于旋转门算法的实时预警方法 |
WO2016131341A1 (zh) * | 2015-02-16 | 2016-08-25 | 华为技术有限公司 | 一种查询数据的方法和装置 |
CN106407191A (zh) * | 2015-07-27 | 2017-02-15 | 中国移动通信集团公司 | 一种数据处理方法及服务器 |
CN108287868A (zh) * | 2017-12-19 | 2018-07-17 | 北京国电通网络技术有限公司 | 一种数据库查询、数据块划分方法和装置 |
CN113849523A (zh) * | 2021-09-28 | 2021-12-28 | 天元大数据信用管理有限公司 | 一种数据查询方法、设备及介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997492B2 (en) * | 2017-01-20 | 2021-05-04 | Nvidia Corporation | Automated methods for conversions to a lower precision data format |
CN112214526A (zh) * | 2020-09-18 | 2021-01-12 | 广东电网有限责任公司广州供电局 | 一种用于电力系统运行参数的数据处理及查询方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063490A (zh) * | 2010-12-20 | 2011-05-18 | 大唐移动通信设备有限公司 | 一种数据库分区方法和分区装置 |
CN102609433A (zh) * | 2011-12-16 | 2012-07-25 | 北京大学 | 基于用户日志进行查询推荐的方法及系统 |
CN103064890A (zh) * | 2012-12-11 | 2013-04-24 | 泉州豪杰信息科技发展有限公司 | 一种gps海量数据处理方法 |
CN103544258A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种大数据多区间查询条件下的基数估计方法及装置 |
US20140172869A1 (en) * | 2012-12-19 | 2014-06-19 | International Business Machines Corporation | Indexing of large scale patient set |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
US6665684B2 (en) * | 1999-09-27 | 2003-12-16 | Oracle International Corporation | Partition pruning with composite partitioning |
US20040125124A1 (en) * | 2000-07-24 | 2004-07-01 | Hyeokman Kim | Techniques for constructing and browsing a hierarchical video structure |
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
US7647353B2 (en) | 2006-11-14 | 2010-01-12 | Google Inc. | Event searching |
US8943040B1 (en) * | 2008-11-25 | 2015-01-27 | Teradota Us, Inc. | Using a table to track whether a dynamic partitioning condition evaluates to true |
US9002859B1 (en) * | 2010-12-17 | 2015-04-07 | Moonshadow Mobile, Inc. | Systems and methods for high-speed searching and filtering of large datasets |
US20140074614A1 (en) * | 2012-09-12 | 2014-03-13 | Globys, Inc. | Time series-based entity behavior classification |
CN104679858B (zh) * | 2015-02-16 | 2018-10-09 | 华为技术有限公司 | 一种查询数据的方法和装置 |
-
2015
- 2015-02-16 CN CN201510085627.6A patent/CN104679858B/zh active Active
- 2015-12-25 EP EP15882480.5A patent/EP3249550A4/en not_active Ceased
- 2015-12-25 WO PCT/CN2015/098946 patent/WO2016131341A1/zh active Application Filing
-
2017
- 2017-08-15 US US15/677,952 patent/US11086904B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063490A (zh) * | 2010-12-20 | 2011-05-18 | 大唐移动通信设备有限公司 | 一种数据库分区方法和分区装置 |
CN102609433A (zh) * | 2011-12-16 | 2012-07-25 | 北京大学 | 基于用户日志进行查询推荐的方法及系统 |
CN103064890A (zh) * | 2012-12-11 | 2013-04-24 | 泉州豪杰信息科技发展有限公司 | 一种gps海量数据处理方法 |
US20140172869A1 (en) * | 2012-12-19 | 2014-06-19 | International Business Machines Corporation | Indexing of large scale patient set |
US20140172870A1 (en) * | 2012-12-19 | 2014-06-19 | International Business Machines Corporation | Indexing of large scale patient set |
CN103544258A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种大数据多区间查询条件下的基数估计方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016131341A1 (zh) * | 2015-02-16 | 2016-08-25 | 华为技术有限公司 | 一种查询数据的方法和装置 |
US11086904B2 (en) | 2015-02-16 | 2021-08-10 | Huawei Technologies Co., Ltd. | Data query method and apparatus |
CN106407191A (zh) * | 2015-07-27 | 2017-02-15 | 中国移动通信集团公司 | 一种数据处理方法及服务器 |
CN105279917A (zh) * | 2015-09-25 | 2016-01-27 | 卡斯柯信号有限公司 | 一种基于旋转门算法的实时预警方法 |
CN108287868A (zh) * | 2017-12-19 | 2018-07-17 | 北京国电通网络技术有限公司 | 一种数据库查询、数据块划分方法和装置 |
CN113849523A (zh) * | 2021-09-28 | 2021-12-28 | 天元大数据信用管理有限公司 | 一种数据查询方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3249550A4 (en) | 2018-01-24 |
US11086904B2 (en) | 2021-08-10 |
EP3249550A1 (en) | 2017-11-29 |
WO2016131341A1 (zh) | 2016-08-25 |
CN104679858B (zh) | 2018-10-09 |
US20180011915A1 (en) | 2018-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679858A (zh) | 一种查询数据的方法和装置 | |
CN109298940B (zh) | 计算任务分配方法、装置、电子设备及计算机存储介质 | |
CN110706147B (zh) | 图像处理的环境确定方法、装置、电子设备和存储介质 | |
CN110955715A (zh) | Erp系统和目标平台的数据转换方法、装置以及电子设备 | |
CN109857804A (zh) | 一种分布式模型参数的搜索方法、装置和电子设备 | |
CN105678831A (zh) | 一种图像渲染方法和装置 | |
CN108399609A (zh) | 一种三维点云数据的修补方法、装置和机器人 | |
CN115576502A (zh) | 一种数据存储的方法、装置、电子设备以及存储介质 | |
CN115277882A (zh) | Can报文数据库建立方法、装置、车载电子设备及存储介质 | |
CN115185818A (zh) | 一种基于二进制集合的程序依赖簇检测方法 | |
CN114239960A (zh) | 基于资源动态优化的配网工程项目群进度管理方法及系统 | |
US11699013B2 (en) | Computer-implemented method for simulation of an electrical circuit | |
CN105303473A (zh) | 一种水电站水库水情确定方法及系统 | |
CN110222402B (zh) | 电气设计系统和方法 | |
CN116227647B (zh) | 一种电力系统数字孪生推演优化方法及系统 | |
CN115940202A (zh) | 基于人工智能的多逆变器功率分配控制方法、装置及设备 | |
CN110895460A (zh) | 基于Jenkins的机器人系统集成方法、装置及终端设备 | |
CN115459299A (zh) | 低压配电无功调节方法、装置、计算机设备和存储介质 | |
CN114117349A (zh) | 电力系统随机变量概率分析方法、系统、设备及存储介质 | |
CN112054741B (zh) | 电机控制方法、装置、终端设备及存储介质 | |
CN114397534A (zh) | 一种电压暂降故障源定位方法及装置 | |
CN112559804A (zh) | 基于图数据库的电网cim/e模型数据处理方法和装置 | |
CN103440157A (zh) | 一种用于获得虚拟机的模板的方法和装置 | |
CN110727919A (zh) | 一种光伏发电量预测方法、装置及系统 | |
CN110968502B (zh) | 基于mfac算法进行遍历测试的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |