一种数据查询方法及装置制造方法及图纸

技术编号:11520607 阅读:90 留言:0更新日期:2015-05-29 12:21
本发明专利技术实施例公开了一种数据查询方法及装置。该数据查询方法预先存储多个历史查询请求及其时间戳,以及与所述历史查询请求一一对应的历史查询结果,所述查询方法包括:接收数据查询请求;将所述数据查询请求与所述多个历史查询请求进行匹配;根据匹配结果将所述数据查询请求划分为至少一个子查询请求;根据所述子查询请求进行数据查询;合并所述至少一个子查询请求的查询结果,并将合并后的查询结果作为所述数据查询请求的结果。该方法无需建立和维护物化视图,而且对历史结果数据以及查询过的不需要重复查询,这样可以大大减少扫描和计算的数据量,提高查询效率,改善查询性能,降低查询费用。

【技术实现步骤摘要】
一种数据查询方法及装置
本专利技术涉及数据处理
,特别是涉及一种数据查询方法及装置。
技术介绍
随着IT技术和互联网的快速发展,许多应用均伴随着大量数据的产生,如股票交易、电子商务、社交网络等。这些应用逐渐采用NoSQL来保存数据,该数据保存方法的特征是大多采用追加的方式保存数据,数据的更新和删除操作比较少,删除一般也是追加一条带删除标签的新记录,且每条记录都有一个记录时间,即时间戳。基于上述数据保存方法,现有技术中,在针对云环境下大数据进行数据查询时,为了提高查询效率,需要预先定义查询请求,并根据预先定义的查询请求及数据库中的原始数据计算建立物化视图,在接收到查询请求时,若该查询请求为预先定义的查询请求,则物化视图根据预先规则进行计算,直接输出查询结果,对于未预先定义的查询请求,再在原始数据上进行完全扫描,然后输出查询结果。然而,该方法中若要保障查询效率就需要实时维护物化视图,例如,每当有新数据插入时,均需要重新计算更新物化视图,物化视图的维护过程较复杂,代价高。
技术实现思路
本专利技术实施例中提供了一种数据查询方法及装置,能够保障数据查询效率的同时无需维护物化视图。为了解决上述技术问题,本专利技术实施例公开了如下技术方案:第一方面,提供一种数据查询方法,预先存储多个历史查询请求及其时间戳,以及与所述历史查询请求一一对应的历史查询结果,所述查询方法包括:接收数据查询请求;将所述数据查询请求与所述多个历史查询请求进行匹配;根据匹配结果将所述数据查询请求划分为至少一个子查询请求;根据所述子查询请求进行数据查询;合并所述至少一个子查询请求的查询结果,并将合并后的查询结果作为所述数据查询请求的结果。结合上述第一方面,在第一种可能的实现方式中,所述根据匹配结果将所述数据查询请求分解为至少一个子查询请求,包括:当所述数据查询请求与所述历史查询请求中的第一历史查询请求完全匹配时,将所述数据查询请求分解为历史数据子查询请求和增量数据子查询请求;所述根据所述子查询请求进行数据查询,包括:根据所述历史数据子查询请求在所述历史查询结果中查询所述第一历史查询请求对应的第一历史查询结果;根据所述增量数据子查询请求在时间戳位于所述第一历史查询请求的时间戳之后的原始数据中对所述数据查询请求所请求查询的数据进行查询。结合上述第一方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,还包括:将所述第一历史查询结果更新为所述合并后的查询结果,并将所述第一历史查询请求的时间戳更新为根据所述增量数据子查询请求所查询数据的最新记录时间。结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,所述根据匹配结果将所述数据查询请求分解为至少一个子查询请求,包括:当所述数据查询请求与所述多个历史查询请求完全不匹配时,将所述数据查询请求分解为全新子查询请求;所述根据所述子查询请求进行数据查询,包括:根据所述全新子查询请求在所有原始数据中对所述数据查询请求所请求查询的数据进行查询。结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,在第四种可能的实现方式中,还包括:将所述数据查询请求作为第二历史查询请求增添至所述多个历史查询请求中,将根据所述全新子查询请求所查询数据的最新记录时间作为所述第二历史查询请求的时间戳,并将所述合并后的查询结果作为与所述第二历史查询请求对应的历史查询结果。结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,在第五种可能的实现方式中,所述根据匹配结果将所述数据查询请求分解为至少一个子查询请求,包括:当所述数据查询请求与所述多个历史查询请求中的第一历史查询请求部分匹配时,将所述数据查询请求分解为历史数据子查询请求、增量数据子查询请求和全新子查询请求;所述根据所述子查询请求进行数据查询,包括:根据所述历史数据子查询请求在所述历史查询结果中查询所述第一历史查询请求对应的第一历史查询结果;根据所述增量数据子查询请求在时间戳位于所述第一历史查询请求的时间戳之后的原始数据中对所述第一历史查询请求所请求查询的数据进行查询;根据所述全新子查询请求在所有原始数据中对所述数据查询请求中与所述第一历史查询请求不匹配部分所请求查询的数据进行查询。结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,在第六种可能的实现方式中,还包括:将所述第一历史查询结果更新为根据所述历史数据子查询请求与所述增量数据子查询请求所查询的结果的合并结果,并将所述第一历史查询请求的时间戳更新为根据所述增量数据子查询请求所查询数据的最新记录的时间;将所述数据查询请求作为第二历史查询请求增添至所述多个历史查询请求中,将根据各所述子查询请求所查询数据的最新记录时间作为所述第二历史查询请求的时间戳,并将所述合并后的查询结果作为与所述第二历史查询请求对应的历史查询结果;将所述全新子查询请求作为第三历史查询请求增添至所述多个历史查询请求中,将根据所述全新子查询请求所查询数据的最新记录时间作为所述第三历史查询请求的时间戳,并将所述全新子查询请求的查询结果作为与所述第三历史查询请求对应的历史查询结果。第二方面,提供一种数据查询装置,包括:存储单元,用于存储多个历史查询请求及其时间戳,以及与所述历史查询请求一一对应的历史查询结果;接收单元,用于接收数据查询请求;匹配单元,用于将所述数据查询请求与所述存储单元中存储的多个历史查询请求进行匹配;分解单元,用于根据匹配结果将所述数据查询请求划分为至少一个子查询请求;查询单元,用于根据所述子查询请求进行数据查询;结果输出单元,用于合并所述至少一个子查询请求的查询结果,并将合并后的查询结果作为所述数据查询请求的结果。结合上述第二方面,在第一种可能的实现方式中,所述分解单元,具体用于当所述数据查询请求与所述历史查询请求中的第一历史查询请求完全匹配时,将所述数据查询请求分解为历史数据子查询请求和增量数据子查询请求;所述查询单元包括:历史查询单元,用于根据所述历史数据子查询请求在所述历史查询结果中查询所述第一历史查询请求对应的第一历史查询结果;增量查询单元,用于根据所述增量数据子查询请求在时间戳位于所述第一历史查询请求的时间戳之后的原始数据中对所述数据查询请求所请求查询的数据进行查询。结合上述第二方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,还包括:更新单元,用于将所述第一历史查询结果更新为所述合并后的查询结果,并将所述第一历史查询请求的时间戳更新为根据所述增量数据子查询请求所查询数据的最新记录时间。结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,所述分解单元,具体用于当所述数据查询请求与所述多个历史查询请求完全不匹配时,将所述数据查询请求分解为全新子查询请求;所述查询单元包括全新查询单元,所述全新查询单元,用于根据所述全新子查询请求在所有原始数据中对所述数据查询请求所请求查询的数据进行查询。结合上述第二方面,和本文档来自技高网...

【技术保护点】
一种数据查询方法,其特征在于,预先存储多个历史查询请求及其时间戳,以及与所述历史查询请求一一对应的历史查询结果,所述查询方法包括:接收数据查询请求;将所述数据查询请求与所述多个历史查询请求进行匹配;根据匹配结果将所述数据查询请求划分为至少一个子查询请求;根据所述子查询请求进行数据查询;合并所述至少一个子查询请求的查询结果,并将合并后的查询结果作为所述数据查询请求的结果。

【技术特征摘要】
1.一种数据查询方法,其特征在于,预先存储多个历史查询请求及其时间戳,以及与所述历史查询请求一一对应的历史查询结果,所述查询方法包括:接收数据查询请求;将所述数据查询请求与所述多个历史查询请求进行匹配;根据匹配结果将所述数据查询请求划分为至少一个子查询请求;根据所述子查询请求进行数据查询;合并所述至少一个子查询请求的查询结果,并将合并后的查询结果作为所述数据查询请求的结果;所述根据匹配结果将所述数据查询请求分解为至少一个子查询请求,包括:当所述数据查询请求与所述历史查询请求中的第一历史查询请求完全匹配时,将所述数据查询请求分解为历史数据子查询请求和增量数据子查询请求;所述根据所述子查询请求进行数据查询,包括:根据所述历史数据子查询请求在所述历史查询结果中查询所述第一历史查询请求对应的第一历史查询结果;根据所述增量数据子查询请求在时间戳位于所述第一历史查询请求的时间戳之后的原始数据中对所述数据查询请求所请求查询的数据进行查询;还包括:将所述第一历史查询结果更新为所述合并后的查询结果,并将所述第一历史查询请求的时间戳更新为根据所述增量数据子查询请求所查询数据的最新记录时间。2.根据权利要求1所述的方法,其特征在于,所述根据匹配结果将所述数据查询请求分解为至少一个子查询请求,包括:当所述数据查询请求与所述多个历史查询请求完全不匹配时,将所述数据查询请求分解为全新子查询请求;所述根据所述子查询请求进行数据查询,包括:根据所述全新子查询请求在所有原始数据中对所述数据查询请求所请求查询的数据进行查询。3.根据权利要求2所述的方法,其特征在于,还包括:将所述数据查询请求作为第二历史查询请求增添至所述多个历史查询请求中,将根据所述全新子查询请求所查询数据的最新记录时间作为所述第二历史查询请求的时间戳,并将所述合并后的查询结果作为与所述第二历史查询请求对应的历史查询结果。4.根据权利要求1所述的方法,其特征在于,所述根据匹配结果将所述数据查询请求分解为至少一个子查询请求,包括:当所述数据查询请求与所述多个历史查询请求中的第一历史查询请求部分匹配时,将所述数据查询请求分解为历史数据子查询请求、增量数据子查询请求和全新子查询请求;所述根据所述子查询请求进行数据查询,包括:根据所述历史数据子查询请求在所述历史查询结果中查询所述第一历史查询请求对应的第一历史查询结果;根据所述增量数据子查询请求在时间戳位于所述第一历史查询请求的时间戳之后的原始数据中对所述第一历史查询请求所请求查询的数据进行查询;根据所述全新子查询请求在所有原始数据中对所述数据查询请求中与所述第一历史查询请求不匹配部分所请求查询的数据进行查询。5.根据权利要求4所述的方法,其特征在于,还包括:将所述第一历史查询结果更新为根据所述历史数据子查询请求与所述增量数据子查询请求所查询的结果的合并结果,并将所述第一历史查询请求的时间戳更新为根据所述增量数据子查询请求所查询数据的最新记录的时间;将所述数据查询请求作为第二历史查询请求增添至所述多个历史查询请求中,将根据各所述子查询请求所查询数据的最新记录时间作为所述第二历史查询请求的时间戳,并将所述合并后的查询结果作为与所述第二历史查询请求对应的历史查询结果;将所述全新子查询请求作为第三历史查询请求增添至所述多个历史查询请求中,将根据所述全新子查询请求所查询数据的最新记录时间作为所述第三历史查询请求的时间戳,并将所述全新子查询请求的查询结果作为与所述第三历史查询请求对应的历史查询结果。6.一种数据查询装置,...

【专利技术属性】
技术研发人员:张桂刚李超邢春晓
申请(专利权)人:华为技术有限公司清华大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1