CN109656958B - 数据查询方法以及系统 - Google Patents

数据查询方法以及系统 Download PDF

Info

Publication number
CN109656958B
CN109656958B CN201811548647.2A CN201811548647A CN109656958B CN 109656958 B CN109656958 B CN 109656958B CN 201811548647 A CN201811548647 A CN 201811548647A CN 109656958 B CN109656958 B CN 109656958B
Authority
CN
China
Prior art keywords
data
query
engine
data processing
result
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.)
Active
Application number
CN201811548647.2A
Other languages
English (en)
Other versions
CN109656958A (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 Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201811548647.2A priority Critical patent/CN109656958B/zh
Publication of CN109656958A publication Critical patent/CN109656958A/zh
Application granted granted Critical
Publication of CN109656958B publication Critical patent/CN109656958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本公开是关于一种数据查询方法以及系统,属于数据库技术领域。数据查询系统包括数据处理引擎、查询引擎和存储引擎,查询引擎中包括缓存;数据处理引擎用于接收异构数据源的数据,并基于预先构建的数据字典对接收到的数据进行过滤;数据处理引擎还用于对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至缓存或存储引擎;查询引擎用于当接收到终端的数据查询请求时,判断数据查询请求是否命中缓存,若数据查询请求命中缓存,则从缓存中获取与数据查询请求匹配的查询结果并返回给终端,若数据查询请求未命中缓存,则从存储引擎中获取查询结果并返回给终端。本公开实现了在多源异构海量数据的复杂业务场景下的快速数据查询。

Description

数据查询方法以及系统
技术领域
本公开涉及数据库技术领域,特别涉及一种数据查询方法以及系统。
背景技术
信息时代的到来使得数据呈爆炸式增长,比如出现了TB(太字节)级甚至PB(拍字节)级大数据的查询诉求,这已远远超出了传统计算技术和信息系统的查询能力,造成了在面对海量数据查询时,数据查询系统难以在用户可接受的时间内返回匹配的查询结果,即数据查询系统难以满足用户对查询响应时间的要求。基于此,在海量数据环境下,如何实现数据查询,以减少查询响应时间,提升查询性能,成为了本领域技术人员目前亟待解决的一个问题。
发明内容
本公开提供了一种数据查询方法以及系统,能够克服相关技术中存在的查询响应时间长的问题。
根据本公开实施例的第一方面,提供一种数据查询系统,所述数据查询系统包括数据处理引擎、查询引擎和存储引擎,所述查询引擎中包括缓存;
所述数据处理引擎用于接收异构数据源的数据,并基于预先构建的数据字典对接收到的数据进行过滤;
所述数据处理引擎还用于对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至所述缓存或所述存储引擎;
所述查询引擎用于当接收到终端的数据查询请求时,判断所述数据查询请求是否命中所述缓存,若所述数据查询请求命中所述缓存,则从所述缓存中获取与所述数据查询请求匹配的查询结果并返回给所述终端,若所述数据查询请求未命中所述缓存,则从所述存储引擎中获取所述查询结果并返回给所述终端。
在一种可能的实现方式中,所述数据处理引擎还用于当所述数据处理结果为指标趋势展示数据时,将所述数据处理结果存储至所述查询引擎的缓存;
所述数据处理引擎还用于当所述数据处理结果为热点访问数据时,将所述数据处理结果存储至所述查询引擎的缓存;
所述数据处理引擎还用于当所述数据处理结果为除了所述指标趋势展示数据和所述热点访问数据之外的其他数据时,将所述数据处理结果存储至所述存储引擎。
在一种可能的实现方式中,所述查询引擎还用于将存储在所述存储引擎中的数据处理结果预加载至所述缓存。
在一种可能的实现方式中,所述数据查询系统还包括公共服务引擎;
所述公共服务引擎用于对所述查询引擎接收到的数据查询请求进行分析处理,当确定对目标数据的访问量大于第一阈值,且所述查询引擎返回所述目标数据的响应时间大于第二阈值时,将所述目标数据确定为热点访问数据,并将所述目标数据由所述存储引擎加载至所述查询引擎的缓存。
在一种可能的实现方式中,所述公共服务引擎还用于当所述数据处理引擎或所述查询引擎出现异常时,执行报警操作。
在一种可能的实现方式中,所述数据处理引擎还用于在进行聚合运算得到所述数据处理结果后,确定与不同数目维度匹配的数据处理结果,并建立不同数目维度与相应的数据处理结果之间的映射关系。
在一种可能的实现方式中,所述查询引擎还用于在所述数据查询请求未命中所述缓存时,将所述数据查询请求转换为所述存储引擎识别的查询语句;
所述查询引擎还用于基于所述查询语句从所述存储引擎中获取所述查询结果并返回给所述终端。
在一种可能的实现方式中,所述数据处理引擎还用于确定与得到的数据处理结果匹配的业务场景,并将所述数据处理结果存储至所述存储引擎中与所述业务场景匹配存储位置。
在一种可能的实现方式中,所述数据处理引擎还用于周期性地进行数据处理结果更新,并删除过期的数据处理结果。
在一种可能的实现方式中,所述查询引擎还用于接收所述存储引擎返回的与所述数据查询请求关联的至少两个搜索结果,将所述至少两个搜索结果融合成与所述数据查询请求匹配的查询结果,并将所述查询结果返回给所述终端。
根据本公开实施例的第二方面,提供一种数据查询方法,所述方法应用于上述第一方面所述的数据查询系统,所述方法包括:
数据处理引擎接收异构数据源的数据,并基于预先构建的数据字典对接收到的数据进行过滤;
所述数据处理引擎对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至查询引擎的缓存或存储引擎;
当接收到终端的数据查询请求时,查询引擎判断所述数据查询请求是否命中所述缓存,若所述数据查询请求命中所述缓存,则从所述缓存中获取与所述数据查询请求匹配的查询结果并返回给所述终端;
若所述数据查询请求未命中所述缓存,则所述查询引擎从所述存储引擎中获取所述查询结果并返回给所述终端。
在一种可能的实现方式中,所述将得到的数据处理结果存储至查询引擎的缓存或存储引擎,包括:
当所述数据处理结果为指标趋势展示数据时,所述数据处理引擎将所述数据处理结果存储至所述查询引擎的缓存;
当所述数据处理结果为热点访问数据时,所述数据处理引擎将所述数据处理结果存储至所述查询引擎的缓存;
当所述数据处理结果为除了所述指标趋势展示数据和所述热点访问数据之外的其他数据时,所述数据处理引擎将所述数据处理结果存储至所述存储引擎。
在一种可能的实现方式中,所述方法还包括:
所述查询引擎将存储在所述存储引擎中的数据处理结果预加载至所述缓存。
在一种可能的实现方式中,所述方法还包括:
公共服务引擎对接收到的数据查询请求进行分析处理;
当确定对目标数据的访问量大于第一阈值,且所述查询引擎返回所述目标数据的响应时间大于第二阈值时,所述公共服务引擎将所述目标数据确定为热点访问数据,并将所述目标数据由所述存储引擎加载至所述查询引擎的缓存。
在一种可能的实现方式中,所述方法还包括:
当所述数据处理引擎或所述查询引擎出现异常时,所述公共服务引擎执行报警操作。
在一种可能的实现方式中,所述方法还包括:
所述数据处理引擎在进行聚合运算得到所述数据处理结果后,确定与不同数目维度匹配的数据处理结果,并建立不同数目维度与相应的数据处理结果之间的映射关系。
在一种可能的实现方式中,所述从所述存储引擎中获取所述查询结果并返回给所述终端,包括:
在所述数据查询请求未命中所述缓存时,所述查询引擎将所述数据查询请求转换为所述存储引擎识别的查询语句;
所述查询引擎基于所述查询语句从所述存储引擎中获取所述查询结果,并将所述查询结果返回给所述终端。
在一种可能的实现方式中,所述方法还包括:
所述数据处理引擎确定与得到的数据处理结果匹配的业务场景,并将所述数据处理结果存储至所述存储引擎中与所述业务场景匹配存储位置。
在一种可能的实现方式中,所述方法还包括:
所述数据处理引擎周期性地进行数据处理结果更新,并删除过期的数据处理结果。
在一种可能的实现方式中,所述从所述存储引擎中获取所述查询结果并返回给所述终端,包括:
所述查询引擎接收所述存储引擎返回的与所述数据查询请求关联的至少两个搜索结果,将所述至少两个搜索结果融合成与所述数据查询请求匹配的查询结果,并将所述查询结果返回给所述终端。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例提供的数据查询系统,除了包括查询引擎之外还包括数据处理引擎,其中,数据查询引擎负责预先进行数据处理并将得到的数据处理结果存储在存储引擎或查询引擎的缓存中,而查询引擎负责处理用户的数据查询请求,由于本公开实施例实现了数据处理与查询的异步机制,因此即便在海量数据环境下,数据查询系统也能够对数据查询请求,甚至是多维度组合查询进行快速响应,解决了海量数据环境下查询响应速度慢的问题。另外,本公开实施例还支持异构数据源的聚合查询,即本公开实施例不但支持海量数据存储,还支持关系型以及非关系型数据的存储,实现了在多源异构海量数据的复杂业务场景下的数据查询。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的第一种数据查询系统的结构示意图。
图2是根据一示例性实施例示出的第二种数据查询系统的结构示意图。
图3是根据一示例性实施例示出的一种数据查询方法的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据查询系统的结构示意图。基于图1所示的数据查询系统,本公开实施例实现了在异构数据源以及海量数据环境下的一种高性能且毫秒级别响应速度的数据查询方案。即本公开实施例实现了一种在复杂业务场景下的高响应速度的数据查询方法。参见图1,该数据查询系统包括数据处理引擎101、查询引擎102和存储引擎103,其中,查询引擎102中包括缓存1021。
其中,数据处理引擎101用于当接收到异构数据源的数据时,基于预先构建的数据字典对接收到的数据进行过滤,对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至缓存1021或存储引擎103。
查询引擎102用于当接收到终端的数据查询请求时,判断该数据查询请求是否命中缓存1021,若该数据查询请求命中缓存1021,则查询引擎102从缓存1021中获取与该数据查询请求匹配的查询结果并将该查询结果返回给终端;若该数据查询请求未命中缓存1021,则查询引擎102从存储引擎103中获取与该数据查询请求匹配的查询结果并将该查询结果返回给终端。
在本公开实施例中,上述数据查询请求可为多维度组合数据查询请求,其中,维度提供了分类描述,表示一类分析角度,即观察数据的一种角度。多维组合查询通常指代存在多组需要进行查询的查询条件,返回每组查询条件对应的查询结果的并集。
其中,异构数据源是指不同数据库管理系统之间的数据。示例性地,在企业信息化建设过程中,受各种因素影响,导致企业在发展过程中积累了大量采用不同存储方式的业务数据,包括采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们便构成了企业的异构数据源。
其中,企业数据源异构性主要表现在系统异构和模式异构。其中,系统异构即数据源所依赖的业务应用系统、数据库管理系统乃至操作系统之间的不同构成了系统异构。模式异构即数据源在存储模式上的不同,而存储模式包括但不限于关系模式、对象模式、对象关系模式和文档嵌套模式等几种,其中,关系模式(关系数据库)为主流存储模式。
需要说明的是,即便是同一类存储模式,它们的模式结构可能也存在着差异。比如,不同的关系数据管理系统的数据类型等方面并非完全一致,如DB2、Oracle、Sybase、Informix、SQL Server、Foxpro等。
在本公开实施例中,多源异构海量数据中每个数据源的来源不同,存储格式不同,且数据海量,即各个数据源的数据字段各不一样、存储格式各不相同,且数据量巨大,可达到百亿级规模,本公开实施例为了实现查询加速,数据查询系统会先对多源异构海量数据进行过滤。换一种表达方式,本公开实施例针对多源异构海量数据这种复杂业务场景下的数据查询,主要基于数据处理引擎101与查询引擎102来解决因数据量过大而导致的查询响应速度过慢的问题。
其中,数据查询系统中的数据处理引擎101用于预先对多源异构海量数据进行运算处理,而查询引擎用于处理接收到的数据查询请求并返回查询结果,换一种表达方式,本公开实施例通过数据处理与数据查询的异步机制,来提升查询响应时间。下面分别对数据处理引擎101和查询引擎102进行详细介绍。
在一种可能的实现方式中,参见图2,数据处理引擎101包括过滤组件1011、聚合组件1012、索引组件1013以及分片组件1014。
针对过滤组件1011,当接收到异构数据源的数据时,过滤组件1011通过预先构建的数据字典对其进行过滤。其中,该数据字典在本文中也称之为基础数据字典,用于从海量数据中过滤出关键数据,其中,该数据字典由人工预先构建并维护,本公开实施例对此不进行具体限定。换一种表达方式,本公开实施例从异构数据源的多种存储格式中抽取关键字段并定义一个通用存储格式,即本公开实施例利用基础数据字典从异构数据源中抽取一些关键字段,并将抽取到的格式杂乱的关键字段置于一个通用存储格式中。
针对聚合组件1012,其用于对过滤组件1011过滤后的数据进行多个维度的聚合运算处理。举例来说,针对终端可能会涉及到终端功耗、终端卡顿等维度,而终端功耗可能会涉及到机型、电池型号、电池容量等维度,而终端卡顿可能会涉及到机型、CPU等维度。
针对索引组件1013,其用于建立起查询维度与查询结果之间的映射关系。换一种表达方式,聚合组件1012在进行多个维度的聚合运算得到数据处理结果后,索引组件1013用于确定与不同数目维度匹配的数据处理结果,并建立不同数目维度与相应的数据处理结果之间的映射关系。其中,索引组件1013建立的映射关系可存储在存储引擎103中,而索引组件1013可建立正排索引和/或倒排索引形式的上述映射关系,以提升查询响应速度。
举例来说,假设聚合运算出的数据处理结果涉及5个维度数据,但是实际查询时可能用户仅对这5个维度的部分维度感兴趣,因此本公开实施例还会设置部分维度与相应数据处理结果之间的映射关系。比如,设置2个维度与相应数据处理结果之间的映射关系,这样在查询时,便可返回与请求的2个维度相匹配的查询结果,而无需查询5个维度的全部数据,能够显著提高查询响应速度,缩短查询响应时间。
针对分片组件1014,其用于对得到的数据处理结果进行分片存储。由于异构数据源的数据海量,因此在存储时采取分片存储机制。其中,分片指代将一份完整数据按一定的条件划分成不同的几份,将划分之后的内容存储在不同位置,每一份内容便称之为一个片。
另外,分片组件1014还用于根据不同业务场景,调用存储引擎103实现不同的数据存储。换一种表达方式,聚合组件1012在进行多个维度的聚合运算得到数据处理结果后,分片组件1014还用于确定该数据处理结果对应的业务场景,并将该数据处理结果存储至存储引擎103中与该业务场景匹配存储位置。即,在存储引擎103中的存储位置不同,对应不同的业务场景。
在一种可能的实现方式中,参见图2,存储引擎103包含关系型存储介质1031和非关系型存储介质1032,用以满足复杂业务场景需求的存储需求。其中,存储引擎103会屏蔽底层存储差异,向数据处理引擎101和查询引擎102提供无差别透明化读写数据。即,存储引擎103在接收到来自查询引擎102的数据查询请求或接收到来自数据处理引擎101的数据处理结果时,存储引擎103的数据读写过程对于查询引擎102和数据处理引擎101来说是透明的,存储引擎103向查询引擎102提供对关系型数据或非关系型数据的透明查询。在本公开实施例中,存储引擎可能包括ES、Hbase或mySQL等,但存储引擎103对外会统一接口,以对查询引擎102和数据处理引擎101透明。
示例性地,针对关系型数据且该关系型数据的数据量不大时,比如未超过一个数据量上限时,可选择存储引擎103中的mySQL。其中,mySQL是一种关系型数据库,归属于存储引擎103中的关系型存储介质;针对上述维度和数据处理结果之间的映射关系,可选择存储引擎103中的Hbase。其中,Hbase是一种非关系型数据库,归属于存储引擎103中的非关系型存储介质;针对用于模糊查询的数据,可选择存储引擎103中的ES(ElasticSearch)。
在一种可能的实现方式中,本公开实施例还采取了服务分级响应策略,对于部分查询来说,其对响应时间要求较为苛刻,而对于另一些查询来说,对响应时间要求便没有很严格,由于缓存1021的数据读取速度要远大于存储引擎103的数据读取速度,因此本公开实施例的服务分级响应策略旨在将对响应时间要求苛刻的查询所对应的数据存储在缓存1021中,而将对响应时间要求不严格的查询所对应的数据存储在存储引擎103中。需要说明的是,对于不同数据类型数据或不同业务数据,本公开实施例还可提供分库分表机制来实现存储,本公开实施例对此不进行具体限定。
在本公开实施例中,数据处理引擎101用于当数据处理结果为指标趋势展示数据时,将该数据处理结果存储至缓存1021,即采取cache存储数据方式;其中,指标趋势展示数据覆盖的时长可能会达到几个月或几年,为了能够实现快速响应,提升用户体验,数据处理引擎101选择将这类数据存储在查询引擎102的缓存1021中。
当数据处理结果为热点访问数据时,将该数据处理结果同样存储至缓存1021,即同样采取cache存储数据方式。其中,热点访问数据指代存在大量用户访问,即热点访问数据指代热门数据,其访问量通常较大,为了提高查询影响速度,提升用户体验,数据处理引擎101选择将这类数据存储在查询引擎102的缓存1021中。需要说明的是,对与热点数据匹配的数据查询请求,查询引擎102也可在接收到数据查询请求后,实时进行数据运算处理,然后返回查询结果,本公开实施例对此不进行具体限定。
当数据处理结果为除了指标趋势展示数据和热点访问数据之外的其他数据时,数据处理引擎101会将该数据处理结果存储至存储引擎103。该种情形即为对响应速度要求不高的情形,因此可将数据存储在存储引擎103中,在有需求时,查询引擎102再到存储引擎103中进行读取。需要说明的是,为了提升查询响应速度,本公开实施例还设置了预加载机制。即查询引擎102还可以将存储在存储引擎103中的部分数据处理结果预加载至缓存1021,以实现加速查询。
在一种可能的实现方式中,参见图2,查询引擎102除了包括缓存1021外,还包括路由组件1022、mapper组件1023和策略组件1024。
如前文所述,当接收到来自终端的数据查询请求时,查询引擎102首先会从缓存1021中进行查询,以确定缓存1021中是否存储有该数据查询请求所请求的数据;若缓存1021中存储有该数据查询请求所请求的数据,则查询引擎102直接返回与该数据查询请求匹配的数据。
在一种可能的实现方式中,如果缓存1021中未存储该数据查询请求所请求的数据,则调用路由组件1022和mapper组件1023,由策略组件1024根据查询策略,将该数据查询请求拼接成存储引擎103能够理解的语句,从而完成数据查询。在本公开实施例中,路由组件1022负责告知数据存储位置,即路由组件1022负责告知数据存储位置。而mapper组件1023负责告知究竟哪些数据与该数据查询请求匹配,比如哪些维度数据与该数据查询请求匹配,这可基于前述建立的映射关系获知,进而基于从路由组件1022以及mapper组件1023获取到的信息,策略组件1024将该数据查询请求拼接成存储引擎103能够理解的查询语句。换一种表达方式,查询引擎102还用于在数据查询请求未命中缓存1021时,查询引擎102会将该数据查询请求转换为存储引擎103能够识别的查询语句,基于该查询语句从存储引擎103中获取与该数据查询请求匹配的查询结果。
在一种可能的实现方式中,参见图2,数据查询系统还包括公共服务引擎104,其中,公共服务引擎104包括监控组件1041和报警组件1042。
在本公开实施例中,监控组件1041用于进行热点访问识别,能够实时分析计算系统对数据查询请求的响应时间及请求分布,并自动加载热点访问数据。换一种表达方式,监控组件1041能够对数据查询请求进行实时计算,根据请求分布识别热门访问数据,并将热门访问数据由存储引擎103加载到查询引擎102的缓存1021中,以提高对热门访问的响应速度。该种情形对应初始数据处理引擎101将一部分数据存储在存储引擎103中,但是后续监控组件1041通过对接收到的数据查询请求进行分析确定出用户在集中对该部分数据进行查询,即接收到的数据查询请求中大部分数据查询请求均是用于请求这部分数据,由于存储引擎103的数据读取速度要远低于缓存,响应速度较慢,为此,监控组件1041会及时执行转移策略,将这部分数据加载到查询引擎102的缓存1021中,以实现查询加速。其中,热门访问数据可为在一定时间内访问量超过一定数值的数据,本公开实施例对此不进行具体限定。相应地,热门访问数据对应的数据查询请求也可称之为热门数据查询请求。
综上所述,监控组件1041用于对查询引擎102接收到的数据查询请求进行分析处理,当确定用户对目标数据的访问量大于第一阈值,且查询引擎102返回目标数据的响应时间大于第二阈值时,将目标数据确定为热点访问数据,并将目标数据由存储引擎103加载至查询引擎的缓存1021中。
在一种可能的实现方式中,监控组件1041还用于对数据处理引擎101或查询引擎102进行异常监控,当监测到当数据处理引擎101或查询引擎102出现异常时,监控组件1041会触发报警组件1042执行报警操作,以对相关人员进行提醒,从而提升数据查询系统的稳定性。
在一种可能的实现方式中,数据处理引擎101还用于周期性地进行数据处理结果更新,其中,更新方式既可为全量更新也可为增量更新,增量更新也可称之为叠加更新,本公开实施例对此不进行具体限定。另外,更新周期可为一天或一周等,本公开实施例对此同样不进行具体限定。在另一种可能的实现方式中,数据处理引擎101还用于删除过期的数据处理结果,即数据处理引擎101还能够动态删除过期数据处理结果。
在一种可能的实现方式中,本公开实施例还提出了一种多源目标数据聚合机制,即从多个数据源执行并发搜索,然后merge(融合)成最终结果。之所以这样做是因为不同数据源的数据虽然可能形式不同,但是可能在表达同一含义,因此可预先通过诸如MD5(Message-Digest Algorithm,消息摘要算法第五版)值计算来确定表达同一含义的数据,当在接收到相应的数据查询请求后,即对表达同一含义的所有数据进行融合,形成与接收到的数据查询请求匹配的查询结果。换一种表达方式,查询引擎102还用于接收存储引擎103返回的与该数据查询请求关联的至少两个搜索结果,并将至少两个初步搜索结果融合成与该数据查询请求匹配的查询结果。
综上所述,本公开实施例提供的数据查询系统,除了包括查询引擎之外还包括数据处理引擎,其中,数据查询引擎负责预先进行数据处理并将得到的数据处理结果存储在存储引擎或查询引擎的缓存中,而查询引擎负责处理用户的数据查询请求,由于本公开实施例实现了数据处理与查询的异步机制,因此即便在海量数据环境下,数据查询系统也能够对数据查询请求,甚至是多维度组合查询进行快速响应,解决了海量数据环境下查询响应速度慢的问题。
另外,本公开实施例提供的数据查询系统还支持异构数据源的聚合查询,即本公开实施例不但支持海量数据存储,还支持关系型以及非关系型数据的存储,实现了在多源异构海量数据的复杂业务场景下的数据查询。
另外,本公开实施例提供的数据查询系统还实现了服务分级策略,会将对响应时间要求苛刻的查询请求所请求的数据存储在查询引擎的缓存中,以提升查询响应速度。
另外,本公开实施例提供的数据查询系统还能够自动识别热门访问,并将热门访问数据加载到查询引擎的缓存中,能够显著提升查询响应速度。
另外,本公开实施例提供的数据查询系统还能够自动维稳,能够自动对各部分的异常状况进行报警,提升了系统稳定性。
另外,本公开实施例提供的数据查询系统还支持根据业务状况,进行插拔组件处理以及新增组件处理等,本公开实施例对此不进行具体限定。
图3是根据一示例性实施例示出的一种数据查询方法的流程图,如图3所示,该方法应用于图1和图2所述的数据查询系统,该方法包括以下步骤。
在步骤301中,数据处理引擎接收异构数据源的数据,并基于预先构建的数据字典对接收到的数据进行过滤。
在步骤302中,数据处理引擎对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至查询引擎的缓存或存储引擎。
在步骤303中,当接收到终端的数据查询请求时,查询引擎判断该数据查询请求是否命中缓存;若该数据查询请求命中缓存,则执行下述步骤304;若该数据查询请求未命中缓存,则执行下述步骤305。
在步骤304中,查询引擎从缓存中获取与该数据查询请求匹配的查询结果并返回给终端。
在步骤305中,查询引擎从存储引擎中获取查询结果并返回给终端。
本公开实施例提供的方法,数据查询系统除了包括查询引擎之外还包括数据处理引擎,其中,数据查询引擎负责预先进行数据处理并将得到的数据处理结果存储在存储引擎或查询引擎的缓存中,而查询引擎负责处理用户的数据查询请求,由于本公开实施例实现了数据处理与查询的异步机制,因此即便在海量数据环境下,数据查询系统也能够对数据查询请求,甚至是多维度组合查询进行快速响应,解决了海量数据环境下查询响应速度慢的问题。另外,本公开实施例还支持异构数据源的聚合查询,即本公开实施例不但支持海量数据存储,还支持关系型以及非关系型数据的存储,实现了在多源异构海量数据的复杂业务场景下的数据查询。
在一种可能的实现方式中,所述将得到的数据处理结果存储至查询引擎的缓存或存储引擎,包括:
当所述数据处理结果为指标趋势展示数据时,所述数据处理引擎将所述数据处理结果存储至所述查询引擎的缓存;
当所述数据处理结果为热点访问数据时,所述数据处理引擎将所述数据处理结果存储至所述查询引擎的缓存;
当所述数据处理结果为除了所述指标趋势展示数据和所述热点访问数据之外的其他数据时,所述数据处理引擎将所述数据处理结果存储至所述存储引擎。
在一种可能的实现方式中,该方法还包括:所述查询引擎将存储在所述存储引擎中的数据处理结果预加载至所述缓存。
在一种可能的实现方式中,该方法还包括:
公共服务引擎对接收到的数据查询请求进行分析处理;
当确定对目标数据的访问量大于第一阈值,且所述查询引擎返回所述目标数据的响应时间大于第二阈值时,所述公共服务引擎将所述目标数据确定为热点访问数据,并将所述目标数据由所述存储引擎加载至所述查询引擎的缓存。
在一种可能的实现方式中,该方法还包括:
当所述数据处理引擎或所述查询引擎出现异常时,所述公共服务引擎执行报警操作。
在一种可能的实现方式中,该方法还包括:
所述数据处理引擎在进行聚合运算得到所述数据处理结果后,确定与不同数目维度匹配的数据处理结果,并建立不同数目维度与相应的数据处理结果之间的映射关系。
在一种可能的实现方式中,所述从所述存储引擎中获取所述查询结果并返回给所述终端,包括:
在所述数据查询请求未命中所述缓存时,所述查询引擎将所述数据查询请求转换为所述存储引擎识别的查询语句;
所述查询引擎基于所述查询语句从所述存储引擎中获取所述查询结果,并将所述查询结果返回给所述终端。
在一种可能的实现方式中,该方法还包括:
所述数据处理引擎确定与得到的数据处理结果匹配的业务场景,并将所述数据处理结果存储至所述存储引擎中与所述业务场景匹配存储位置。
在一种可能的实现方式中,该方法还包括:
所述数据处理引擎周期性地进行数据处理结果更新,并删除过期的数据处理结果。
在一种可能的实现方式中,所述从所述存储引擎中获取所述查询结果并返回给所述终端,包括:
所述查询引擎接收所述存储引擎返回的与所述数据查询请求关联的至少两个搜索结果,将所述至少两个搜索结果融合成与所述数据查询请求匹配的查询结果,并将所述查询结果返回给所述终端。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种数据查询系统,其特征在于,所述数据查询系统包括数据处理引擎、查询引擎和存储引擎,所述查询引擎中包括缓存;
所述数据处理引擎用于接收异构数据源的数据,并基于预先构建的数据字典对接收到的数据进行过滤,所述数据字典用于从所述接收到的数据中过滤出关键数据;
所述数据处理引擎还用于对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至所述缓存或所述存储引擎;
所述查询引擎用于当接收到终端的数据查询请求时,判断所述数据查询请求是否命中所述缓存,若所述数据查询请求命中所述缓存,则从所述缓存中获取与所述数据查询请求匹配的查询结果并返回给所述终端,若所述数据查询请求未命中所述缓存,则从所述存储引擎中获取所述查询结果并返回给所述终端,所述数据查询请求为多维度组合数据查询请求,所述多维度组合数据查询是基于多组查询条件,返回每组查询条件对应的查询结果的并集的数据查询方式,所述查询引擎还用于将存储在所述存储引擎中的部分数据处理结果预加载至所述缓存;
所述数据处理引擎还用于当所述数据处理结果为指标趋势展示数据时,将所述数据处理结果存储至所述查询引擎的缓存;
所述数据处理引擎还用于当所述数据处理结果为热点访问数据时,将所述数据处理结果存储至所述查询引擎的缓存;
所述数据处理引擎还用于当所述数据处理结果为除了所述指标趋势展示数据和所述热点访问数据之外的其他数据时,将所述数据处理结果存储至所述存储引擎;
所述数据处理引擎还用于在进行聚合运算得到所述数据处理结果后,确定与不同数目维度匹配的数据处理结果,并建立不同数目维度与相应的数据处理结果之间的映射关系。
2.根据权利要求1所述的数据查询系统,其特征在于,所述数据查询系统还包括公共服务引擎;
所述公共服务引擎用于对所述查询引擎接收到的数据查询请求进行分析处理,当确定对目标数据的访问量大于第一阈值,且所述查询引擎返回所述目标数据的响应时间大于第二阈值时,将所述目标数据确定为热点访问数据,并将所述目标数据由所述存储引擎加载至所述查询引擎的缓存。
3.根据权利要求2所述的数据查询系统,其特征在于,所述公共服务引擎还用于当所述数据处理引擎或所述查询引擎出现异常时,执行报警操作。
4.根据权利要求1所述的数据查询系统,其特征在于,所述查询引擎还用于在所述数据查询请求未命中所述缓存时,将所述数据查询请求转换为所述存储引擎识别的查询语句;
所述查询引擎还用于基于所述查询语句从所述存储引擎中获取所述查询结果并返回给所述终端。
5.根据权利要求1所述的数据查询系统,其特征在于,所述数据处理引擎还用于确定与得到的数据处理结果匹配的业务场景,并将所述数据处理结果存储至所述存储引擎中与所述业务场景匹配存储位置。
6.根据权利要求1所述的数据查询系统,其特征在于,所述数据处理引擎还用于周期性地进行数据处理结果更新,并删除过期的数据处理结果。
7.根据权利要求1所述的数据查询系统,其特征在于,所述查询引擎还用于接收所述存储引擎返回的与所述数据查询请求关联的至少两个搜索结果,将所述至少两个搜索结果融合成与所述数据查询请求匹配的查询结果,并将所述查询结果返回给所述终端。
8.一种数据查询方法,其特征在于,所述方法应用于权利要求1至7 中任一权利要求所述的数据查询系统,所述方法包括:
数据处理引擎接收异构数据源的数据,并基于预先构建的数据字典对接收到的数据进行过滤,所述数据字典用于从所述接收到的数据中过滤出关键数据;
所述数据处理引擎对过滤后的数据进行多个维度的聚合运算处理,并将得到的数据处理结果存储至查询引擎的缓存或存储引擎;在进行聚合运算得到所述数据处理结果后,确定与不同数目维度匹配的数据处理结果,并建立不同数目维度与相应的数据处理结果之间的映射关系
当接收到终端的数据查询请求时,查询引擎判断所述数据查询请求是否命中所述缓存,若所述数据查询请求命中所述缓存,则从所述缓存中获取与所述数据查询请求匹配的查询结果并返回给所述终端,所述数据查询请求为多维度组合数据查询请求,所述多维度组合数据查询是基于多组查询条件,返回每组查询条件对应的查询结果的并集的数据查询方式,所述查询引擎将存储在所述存储引擎中的数据处理结果预加载至所述缓存;
若所述数据查询请求未命中所述缓存,则所述查询引擎从所述存储引擎中获取所述查询结果并返回给所述终端;
所述将得到的数据处理结果存储至查询引擎的缓存或存储引擎,包括:
当所述数据处理结果为指标趋势展示数据时,所述数据处理引擎将所述数据处理结果存储至所述查询引擎的缓存;
当所述数据处理结果为热点访问数据时,所述数据处理引擎将所述数据处理结果存储至所述查询引擎的缓存;
当所述数据处理结果为除了所述指标趋势展示数据和所述热点访问数据之外的其他数据时,所述数据处理引擎将所述数据处理结果存储至所述存储引擎。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
公共服务引擎对接收到的数据查询请求进行分析处理;
当确定对目标数据的访问量大于第一阈值,且所述查询引擎返回所述目标数据的响应时间大于第二阈值时,所述公共服务引擎将所述目标数据确定为热点访问数据,并将所述目标数据由所述存储引擎加载至所述查询引擎的缓存。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述数据处理引擎或所述查询引擎出现异常时,所述公共服务引擎执行报警操作。
11.根据权利要求8所述的方法,其特征在于,所述从所述存储引擎中获取所述查询结果并返回给所述终端,包括:
在所述数据查询请求未命中所述缓存时,所述查询引擎将所述数据查询请求转换为所述存储引擎识别的查询语句;
所述查询引擎基于所述查询语句从所述存储引擎中获取所述查询结果,并将所述查询结果返回给所述终端。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述数据处理引擎确定与得到的数据处理结果匹配的业务场景,并将所述数据处理结果存储至所述存储引擎中与所述业务场景匹配存储位置。
13.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述数据处理引擎周期性地进行数据处理结果更新,并删除过期的数据处理结果。
14.根据权利要求8所述的方法,其特征在于,所述从所述存储引擎中获取所述查询结果并返回给所述终端,包括:
所述查询引擎接收所述存储引擎返回的与所述数据查询请求关联的至少两个搜索结果,将所述至少两个搜索结果融合成与所述数据查询请求匹配的查询结果,并将所述查询结果返回给所述终端。
CN201811548647.2A 2018-12-18 2018-12-18 数据查询方法以及系统 Active CN109656958B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811548647.2A CN109656958B (zh) 2018-12-18 2018-12-18 数据查询方法以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811548647.2A CN109656958B (zh) 2018-12-18 2018-12-18 数据查询方法以及系统

Publications (2)

Publication Number Publication Date
CN109656958A CN109656958A (zh) 2019-04-19
CN109656958B true CN109656958B (zh) 2021-11-16

Family

ID=66114583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811548647.2A Active CN109656958B (zh) 2018-12-18 2018-12-18 数据查询方法以及系统

Country Status (1)

Country Link
CN (1) CN109656958B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309180B (zh) * 2019-06-11 2021-06-11 暨南大学 一种基于数据资源转化效率模型的缓存方法
CN110837511B (zh) * 2019-11-15 2022-08-23 金蝶软件(中国)有限公司 一种数据处理方法、系统及相关设备
CN111309251A (zh) * 2020-01-21 2020-06-19 青梧桐有限责任公司 数据存储方法、系统、电子设备及可读存储介质
CN111581054B (zh) * 2020-04-30 2024-04-09 重庆富民银行股份有限公司 一种基于elk的日志埋点的业务分析告警系统及方法
CN111897840A (zh) * 2020-08-14 2020-11-06 北京字节跳动网络技术有限公司 一种数据搜索方法、装置、电子设备及存储介质
CN113051332B (zh) * 2021-04-20 2023-04-28 东莞盟大集团有限公司 一种基于大数据技术的多源数据集成方法及其系统
CN113220718B (zh) * 2021-05-19 2023-01-20 北京达佳互联信息技术有限公司 数据查询方法、装置、电子设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296232B1 (en) * 2002-04-01 2007-11-13 Microsoft Corporation Calendar control for selection of time periods to filter data
CN102479223A (zh) * 2010-11-25 2012-05-30 中国移动通信集团浙江有限公司 数据查询方法及系统
CN103309928A (zh) * 2012-03-13 2013-09-18 株式会社理光 存储和检索数据的方法和系统
CN106528847A (zh) * 2016-11-24 2017-03-22 北京集奥聚合科技有限公司 一种海量数据的多维度处理方法及系统
CN107256265A (zh) * 2017-06-14 2017-10-17 成都四方伟业软件股份有限公司 一种搜索引擎结果数据可视化展示方法及系统
CN107301206A (zh) * 2017-06-01 2017-10-27 华南理工大学 一种基于预运算的分布式olap分析方法及系统
CN107644050A (zh) * 2016-12-22 2018-01-30 北京锐安科技有限公司 一种基于solr的Hbase的查询方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814080B1 (en) * 2003-10-27 2010-10-12 Teradata Us, Inc. Grouping database queries and/or transactions
US8396999B2 (en) * 2011-05-02 2013-03-12 Hewlett-Packard Development Company, L.P. Input/output hot spot tracking
CN105512222A (zh) * 2015-11-30 2016-04-20 中国建设银行股份有限公司 数据查询方法及系统和数据读取方法及系统
CN107346307B (zh) * 2016-05-04 2021-02-26 北京京东尚科信息技术有限公司 分布式缓存系统及方法
CN106095863B (zh) * 2016-06-03 2019-09-10 众安在线财产保险股份有限公司 一种多维度数据查询和存储系统和方法
CN108241627A (zh) * 2016-12-23 2018-07-03 北京神州泰岳软件股份有限公司 一种异构数据存储查询方法和系统
CN108241691A (zh) * 2016-12-26 2018-07-03 北京国双科技有限公司 热点查询数据的搜集方法和装置
CN108595505B (zh) * 2018-03-20 2022-06-24 创新先进技术有限公司 数据查询的方法和装置
CN108804566B (zh) * 2018-05-22 2019-11-29 广东技术师范大学 一种基于Hadoop的海量小文件读取方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296232B1 (en) * 2002-04-01 2007-11-13 Microsoft Corporation Calendar control for selection of time periods to filter data
CN102479223A (zh) * 2010-11-25 2012-05-30 中国移动通信集团浙江有限公司 数据查询方法及系统
CN103309928A (zh) * 2012-03-13 2013-09-18 株式会社理光 存储和检索数据的方法和系统
CN106528847A (zh) * 2016-11-24 2017-03-22 北京集奥聚合科技有限公司 一种海量数据的多维度处理方法及系统
CN107644050A (zh) * 2016-12-22 2018-01-30 北京锐安科技有限公司 一种基于solr的Hbase的查询方法及装置
CN107301206A (zh) * 2017-06-01 2017-10-27 华南理工大学 一种基于预运算的分布式olap分析方法及系统
CN107256265A (zh) * 2017-06-14 2017-10-17 成都四方伟业软件股份有限公司 一种搜索引擎结果数据可视化展示方法及系统

Also Published As

Publication number Publication date
CN109656958A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109656958B (zh) 数据查询方法以及系统
US10657116B2 (en) Create table for exchange
US9928281B2 (en) Lightweight table comparison
EP1222569B1 (en) Method and systems for making olap hierarchies summarisable
CN103177058B (zh) 存储为行存储和列存储二者的混合数据库表
US7756889B2 (en) Partitioning of nested tables
US9535956B2 (en) Efficient set operation execution using a single group-by operation
CN102214176B (zh) 超大维表的切分与表连接方法
US20110137875A1 (en) Incremental materialized view refresh with enhanced dml compression
US8843436B2 (en) Systems and methods for performing direct reporting access to transaction databases
US20100235344A1 (en) Mechanism for utilizing partitioning pruning techniques for xml indexes
US20120117105A1 (en) Collaborative Database Operations
US11777983B2 (en) Systems and methods for rapidly generating security ratings
US20140019454A1 (en) Systems and Methods for Caching Data Object Identifiers
CN114116716A (zh) 一种层次数据检索方法、装置和设备
CN110637292A (zh) 用于查询资源高速缓存的系统和方法
US10628421B2 (en) Managing a single database management system
CN103365987A (zh) 一种基于共享磁盘架构的集群数据库系统及数据处理方法
CN109213760A (zh) 非关系数据存储的高负载业务存储及检索方法
CN115905313A (zh) 一种MySQL大表关联查询系统及方法
US11734308B2 (en) Autonomous caching for views
CN110678854B (zh) 数据查询的方法和装置
Xu et al. Skia: Scalable and efficient in-memory analytics for big spatial-textual data
CN111259082A (zh) 大数据环境下实现全量数据同步的方法
Lee et al. Design and implementation of a system for environmental monitoring sensor network

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
GR01 Patent grant
GR01 Patent grant