CN108009236B - 一种大数据查询方法、系统、计算机及存储介质 - Google Patents

一种大数据查询方法、系统、计算机及存储介质 Download PDF

Info

Publication number
CN108009236B
CN108009236B CN201711227303.7A CN201711227303A CN108009236B CN 108009236 B CN108009236 B CN 108009236B CN 201711227303 A CN201711227303 A CN 201711227303A CN 108009236 B CN108009236 B CN 108009236B
Authority
CN
China
Prior art keywords
query
data
instruction
request
type
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
CN201711227303.7A
Other languages
English (en)
Other versions
CN108009236A (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 Ruian Technology Co Ltd
Original Assignee
Beijing Ruian 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 Ruian Technology Co Ltd filed Critical Beijing Ruian Technology Co Ltd
Priority to CN201711227303.7A priority Critical patent/CN108009236B/zh
Publication of CN108009236A publication Critical patent/CN108009236A/zh
Application granted granted Critical
Publication of CN108009236B publication Critical patent/CN108009236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/21Design, administration or maintenance of databases
    • 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/25Integrating or interfacing systems involving database management systems

Abstract

本发明实施例公开了一种大数据查询方法、系统、计算机和存储介质。其中方法包括:获取查询请求,并解析所述查询请求,确定所述查询请求的查询类型和查询数据的存储类型;根据所述查询类型和所述存储类型确定所述查询请求的查询策略,并根据所述查询策略获取查询数据;将所述查询数据汇总处理并反馈第一个独权。本发明实施例实现了为不同的形式的查询请求提供了统一的查询接口,屏蔽底层的异构数据库,提高了数据查询效率,提升了上层业务系统的开发效率,降低了上层业务系统的学习和维护成本。

Description

一种大数据查询方法、系统、计算机及存储介质
技术领域
本发明实施例涉及数据查询技术,尤其涉及一种大数据查询方法、系统、计算机及存储介质。
背景技术
随着互联网、移动设备和云计算的快速发展,全球数据量大幅度提升,各行各业均出现了大数据的趋势,数据量可达TB(TeraByte)级,甚至PB(PetaByte)级。因此在传统数据库无法满足大数据应用的情况下,诞生了大量的非关系型数据库(Not Only SQL,NoSQL),例如HBase、MongeDB、Redis等,以及诸如Solr、ElasticSearch、Lucene等的搜索引擎。
随着数据类型的逐渐增多,在多种多样的数据之间构建一个超大规模的应用系统,底层数据按需存储在不同的存储介质中,对上层应用系统产生极大的挑战,导致大数据查询效率差,学习成本和维护成本飙升。
发明内容
本发明提供一种大数据查询方法、系统、计算机及存储介质,以实现提高数据查询效率,屏蔽底层的异构存储介质,为上层应用提供统一的数据服务入口。
第一方面,本发明实施例提供了一种大数据查询方法,该方法包括:
获取查询请求,并解析所述查询请求,确定所述查询请求的查询类型和查询数据的存储类型;
根据所述查询类型和所述存储类型确定所述查询请求的查询策略,并根据所述查询策略获取查询数据;
将所述查询数据汇总处理并反馈。
第二方面,本发明实施例还提供了一种大数据查询系统,该系统包括:中间件子系统、业务子系统和数据存储子系统;所述中间件子系统包括查询请求解析器、查询策略确定模块和查询数据处理模块;其中,
所述查询请求解析器用于接收所述业务子系统发送的查询请求,解析所述查询请求,生成所述查询请求的查询类型和查询数据存储类型;
所述查询策略确定模块,用于根据所述查询类型和所述查询数据存储类型生成查询策略,并根据所述查询策略将所述查询请求发送至对应的数据存储子系统;
所述数据存储子系统,用于根据所述查询请求确定查询数据,并发送至所述中间件子系统;
所述查询数据处理模块,用于将所述查询数据汇总处理并反馈至所述业务子系统。
第三方面,本发明实施例还提供了一种计算机设备,该计算机系统包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的大数据查询方法。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的大数据查询方法。
本发明实施例通过统一获取业务终端的查询请求,对查询请求进行解析确定每一个查询请求的查询策略,并根据查询策略获取查询数据并反馈,实现了为不同的形式的查询请求提供了统一的查询接口,屏蔽底层的异构数据库,提高了数据查询效率。
附图说明
图1是本发明实施例一提供的一种大数据查询方法的流程图;
图2是本发明实施例一提供的一种查询流程示意图;
图3是本发明实施例二提供的一种大数据查询系统的结构示意图;
图4是本发明实施例二提供的一种大数据查询系统的结构示意图;
图5是本发明实施例三提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种大数据查询方法的流程图,本实施例可适用于快速高效的实现大数据查询的情况,尤其适用于结构化数据的快速查询。该方法可以由本发明实施例提供的大数据查询系统来执行,该大数据查询系统可采用软件和/或硬件的方式实现。该方法具体包括:
S110、获取查询请求,并解析查询请求,确定查询请求的查询类型和查询数据的存储类型。
其中,查询请求是由业务终端发送的,可以是包含但不限于待查询数据的查询条件、查询类型和查询目标,在查询目标中获取查询数据,示例性的,查询条件可以是“新增人口”,查询目标可以是包含大量数据的表,相应的,查询请求中可以包含对应的表名。
本实施例中,可以是存在多种查询请求解析器,根据查询请求确定不同的解析器。示例性的,若查询请求为结构化查询语言,则可以是由SQL(StructuredQuery Language,结构化查询语言)解析器对该查询请求进行解析。
可选的,步骤S110包括:读取查询请求的第一预设字段,获取查询类型;读取查询请求的第二预设字段,获取待查询数据的查询目标,将查询目标与元数据进行匹配,确定查询数据存储类型。
本实施例中,查询请求中包含多个字段,不同的字段表征不同的含义。其中,根据第一预设字段确定查询类型,查询类型可以包括统计查询和明细查询,统计查询用于统计满足查询条件的数据的数量,明细查询用于获取满足查询条件的每一条数据。
在查询请求的第二预设字段中获取查询目标,示例性的,查询目标可以是待查询的数据表的表名,将该表名与预先缓存的元数据进行匹配,获取该表名的存储类型。其中,元数据是用于描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
查询数据的存储类型指的是查询数据所存储的数据库类型。本实施例中,查询数据的存储类型包括两种存储类型,其一为带索引数据的数据库,其二为不带索引数据的数据库。示例性的,HBase(Hadoop Database,分布式存储系统)数据库是不带索引数据的数据库,Oracle数据库(Oracle Database)是带索引数据的数据库。
可选的,根据查询目标的数量可确定查询请求是多数据查询还是单数据查询,示例性的,若查询目标的数量为1,则确定是单数据查询,若查询目标的数量为大于1,则确定是多数据查询。
可选的,对查询请求进行解析还包括将查询请求转换为存储类型对应的目标查询语句。示例性的,若查询请求为SQL查询请求,则将查询请求转换为存储类型对应的查询语句包括:根据预先定义的语法树生成规则生成SQL语法树,根据SQL查询语法和目标查询语法的映射关系,将SQL语法树转换为目标语法树,根据所述目标语法树生成目标查询语句,其中,预先定义的语法树生成规则可在sqlLexer.g文件中定义。
S120、根据查询类型和存储类型确定查询请求的查询策略,并根据查询策略获取查询数据。
本实施例中,通过接收业务终端的查询指令,并根据由查询指令解析出的查询类型和存储类型确定查询策略,根据查询策略将查询指令发送至对应的数据库以获取查询数据。其中查询策略指的是查询指令的指令流程。
可选的,步骤S120包括:若查询请求的存储类型为第一类存储类型,则将查询请求发送至对应的数据存储集群,获取查询数据;若查询请求的存储类型为第二类存储类型,则判断查询请求的查询类型;若查询类型为统计查询,则将查询请求发送至对应的数据索引集群,获取统计数据,将统计数据作为查询数据;若查询类型为明细查询,则将查询请求发送至对应的数据索引集群,获取索引数据,并根据索引数据于对应的数据存储集群中获取明细数据,将明细数据作为查询数据。
其中,第一类存储类型指的是查询目标存储于带索引数据的数据库,第二类存储类型指的是查询目标存储于不带索引数据的数据库。
本实施例中,若存储类型为第一类存储类型,则查询请求无论是统计查询还是明细查询,均可将查询请求发送至对应的数据存储集群,获取查询数据。示例性的,若存储类型为Oracle,则将转换生成的Oracle查询指令发送至Oracle集群,以使Oracle集群根据该Oracle查询指令获取查询数据。
可选的,当查询指令为多个时,可并行执行上述查询指令,提高大数据查询效率。
存储类型为第二类存储类型时,进一步判断查询请求的查询类型。若查询类型为统计查询,则将查询请求发送至对应的数据索引集群,其中,该数据索引集群是与该第二类存储类型匹配的集群。示例性的,若查询指令对应的存储类型为HBase,且与HBase相匹配的数据索引集群为Solr,其中,Solr是一个独立的企业级搜索应用集群,则将查询指令转换为Solr查询指令,并将该Solr查询指令发送至Solr集群,通过Solr集群中的索引数据获取该查询指令对应的统计数据。
若存储类型为第二类存储类型,且查询类型为明细查询,则基于数据索引集群获取索引数据后,再根据索引数据于数据存储集群中获取明细数据,将明细数据作为查询数据。可选的,根据索引数据于对应的数据存储集群中获取明细数据包括:将索引数据进行合并,形成至少一个明细查询指令;将至少一个明细查询指令发送至对应的数据存储集群,并行执行至少一个明细查询指令,获取明细数据。示例性的,若查询指令对应的存储类型为HBase,且查询类型为明细查询,则将查询指令转换为Solr查询指令,并将该Solr查询指令发送至Solr集群,获取至少一个索引数据。示例性的,每一个索引数据包括查询目标和对应的ID(Identity,身份标识)。将至少一个索引数据进行合并,形成至少一个明细查询指令,将上述至少一个明细查询指令发送至HBase集群,以获取明细数据。其中该明细查询指令为HBase查询指令。可选的,并行处理至少一个明细查询指令,提高数据查询效率。
可选的,在并行执行至少一个明细查询指令之前,还包括:设置行打断指令和超时打断指令,其中所述行打断指令携带有查询请求的目标数量,所述超时打断指令携带有超时参数;相应的,若所述明细查询指令的执行时间大于或等于所述超时参数,则执行所述超时打断指令,停止执行所述明细查询指令并将当前查询数据作为明细数据;相应的,若所述明细查询指令查询到的当前查询数据的数量大于或等于所述目标数量,则执行行打断指令,停止执行所述明细查询指令并将所述当前查询数据作为明细数据。。
其中,行打断指令和超时打断指令用于根据不同的触发阈值中断正在执行的查询指令。示例性的,当执行明细查询指令时,实时获取明细查询指令的执行时间,若该执行时间大于等于超时参数,则执行超时打断指令,停止执行明细查询指令,其中,超时参数是超时打断指令的触发阈值。超期参数可根据查询请求中目标数量确定,若目标数量较大,则超时参数可相应的增大,示例性的,超时参数可以是60s。
示例性的,当执行明细查询指令时,实时获取执行明细查询指令获取的当前查询数据的数量,若该当前查询数据的数量满足查询请求的目标数量,即当前查询数据的数量大于或等于查询请求的目标数量,则执行行打断指令,停止执行所述明细查询指令。其中,查询请求的目标数量是行打断指令的触发阈值。
本实施例中,通过设置行打断指令和超时打断指令,在满足触发阈值时,停止执行上述查询指令,避免了无限制的查询导致的时间和服务器资源浪费,查询效率低的问题。
可选的,根据查询策略获取查询数据,包括:根据查询策略在第一查询范围内进行数据查询,获取第一查询数据;检测第一查询数据的数量是否大于或等于查询请求的目标数量;若是,则将第一查询数据确定为查询数据;若否,则根据范围递增规则更新第一查询范围,并根据更新后的第一查询范围进行数据查询。
本实施例中,在执行查询指令之间,确定第一查询范围,并在第一查询范围内执行查询指令,获取第一查询数据。获取第一查询数据的数量,并与查询请求的目标数量进行比较。示例性的,查询请求的目标数量为200条,若在第一查询范围内执行查询指令获取的查询数据的数量大于或等于200条,则确定查询完成,并将第一查询数据确定为查询数据。若在第一查询范围内执行查询指令获取的查询数据的数量小于200条,则该第一查询范围不满足查询需求,需对该第一查询范围进行扩大。
范围递增规则指的是查询范围的递增规则,其中,该范围递增规则可以是每次增加固定查询范围,还可以是根据预设函数确定增加的查询范围。示例性的,若以天为数据的查询范围单元,则查询范围的变化量可以是1,查询范围的变化量还可以是1、2、3…;还可以是以2为底的指数函数确定增加的查询范围,相应的,查询范围的变化量可以是1、2、4、8…,可选的,当变化量大于等于7时,以7为变化量,例如查询范围的变化量可以是1、2、4、7、7…。可选的,在预设查询范围内未获取查询数据时,停止执行查询指令,示例性的,预设查询范围可以是半个月。可选的,在上述预设查询范围内获取的查询数据的数量小于预设值时,基于全概率公式确定并更新查询范围,并停止在查询范围之外进行查询。
本实施例中,在较小的查询范围中进行查询操作,并在查询数据数量不满足目标数量时,依次增大查询范围,实现了查询范围的精准控制,替代了一次性全范围的查询操作,避免了在高度稠密的数据中,大范围查询导致的查询时间长以及获取大量无关数据的问题,提高了数据查询效率。
S130、将查询数据汇总处理并反馈。
本实施例中,汇总处理包括对获取的多个查询数据进行汇总、截取和格式转换。
可选的,步骤S130包括:若查询数据的数量大于查询请求的目标数量,则对排序后的查询数据根据目标数量进行截取,将截取的查询数据转换为目标格式后进行反馈。
其中,当业务终端未下发排序要求时,根据查询数据获取的先后顺序对查询数据排序;当业务终端明确下发字段排序要求时,根据该字段对查询数据排序,根据目标数量,对排序后的查询数据进行截取。示例性的,若查询数据的数量为300条,目标数量为200条,则获取排序后的查询数据的前200条作为最终的查询结果。
将截取的查询数据转换为预设格式,示例性的,可以是Json格式。将转换后的查询数据反馈至业务终端。
本实施例的技术方案,通过统一获取业务终端的查询请求,对查询请求进行解析确定每一个查询请求的查询策略,并根据查询策略获取查询数据并反馈,实现了为不同的形式的查询请求提供了统一的查询接口,屏蔽底层的异构数据库,提高了数据查询效率。
在上述实施例的基础上,还包括:获取并执行至少一个预统计指令,获取预统计结果,并将预统计结果存储至第一数据库集群,其中,预统计指令包含执行时间、执行频率、统计条件和统计维度。
相应的,在根据查询类型和存储类型确定查询请求的查询策略之前,还包括:检测查询请求是否与预统计指令匹配,若是,则从第一数据库集群中读取预统计指令对应的预统计结果,将预统计结果作为查询数据并反馈;
若否,则根据查询类型和存储类型确定查询请求的查询策略。
其中,预统计指令可以是预先设置的,并依据预统计指令中的执行时间和执行频率执行,示例性的,执行频率可以是1次/天,执行时间可以是上午9:00。预统计指令可以是多个,用于获取不同统计维度和/或不同统计条件的数据,示例性的,统计维度可以是1天、一个星期或者一个月等;统计条件例如可以是新增人口、死亡人数或者新增犯罪人数等等。可选的,预统计指令的执行频率根据统计维度确定。
预统计指令根据统计条件确定数据存储集群,示例性的,数据存储集群可以是Oracle集群。可选的,第一数据库集群可以是预先设置的固定集群,例如Oracle集群;第一数据库集群还可以是执行预统计指令的数据存储集群。
本实施例中,查询请求与预统计指令匹配指的是查询请求的查询类型为统计查询,且查询请求的统计条件和统计维度与预统计指令的统计条件和统计维度相同。
本实施例中,通过多个预统计指令预先获取不同维度、不同统计条件的统计结果,使得在接收相应的查询请求时,直接读取统计结果,省略了在线统计过程,节省了统计时间,提高了查询请求的响应速度。
示例性的,参见图2,图2是本发明实施例一提供的一种查询流程示意图。其中,图2的查询流程适用于查询请求的存储类型为HBase,即第二类存储类型,且查询类型为明细查询的情况。
业务系统可以包含多个业务终端,下发查询请求,该查询请求可以是SQL查询。SQL解析器接收该查询请求,对查询指令进行解析,获取查询类型为明细查询,以及存储类型为HBase,进一步确定查询策略。同时,SQL解析器生成SQL语法树,并进一步根据SQL查询语法和Solr查询语法的映射关系,将SQL语法树转换为Solr语法树,根据Solr语法树生成Solr查询语句。当Solr查询语句为至少两个时,并行执行Solr查询语句。
检索引擎响应Solr查询语句,将Solr查询语句中的查询参数加工为Solr子集群可识别的查询参数,获取Solr查询语句的数量和Solr子集群数量,并确定每一个Solr子集群下发的Solr查询语句。
查询处理器获取Solr查询语句后,识别行分布式控制,如果行分布式控制为true,继续加工solr默认参数外的自定义请求参数,示例性的,自定义请求参数可以是solr集群中collection的每个shard上应该查询的记录数,下发分布式查询请求;如果行分布式控制为false,则直接下发查询指令。其中在下发查询指令之前获取Solr子集群的IP地址和端口号。
索引查询器在执行查询指令之前,设置行打断指令和超时打断指令,并由收集器响应查询指令,获取索引数据,并返回。
查询处理器接收到各个Solr子集群的索引数据,将索引数据进行合并组装,生成HBase查询请求。对HBase查询请求进行并行处理,获取HBase数据,即明细查询数据。在查询索引集群的过程中可首先根据第一查询范围进行查询,并比对查询得到的查询数据的数量与目标数量,在查询数据的数量小于目标数量时,增大第一查询范围,循环执行查询指令。
对明细查询数据根据需求进行排序后,根据目标数据进行截取,并转换为预设格式后返回业务系统。
实施例二
图3是本发明实施例二提供的一种大数据查询系统的结构示意图,其中该大数据查询系统包括:中间件子系统210、业务子系统220和数据存储子系统230;
中间件子系统210包括查询请求解析器211、查询策略确定模块212和查询数据处理模块213;其中,
查询请求解析器211,用于接收业务子系统220发送的查询请求,解析查询请求,生成查询请求的查询类型和查询数据存储类型;
查询策略确定模块212,用于根据查询类型和查询数据存储类型生成查询策略,并根据查询策略将查询请求发送至对应的数据存储子系统;
数据存储子系统230,用于根据查询请求确定查询数据,并发送至中间件子系统;
查询数据处理模块213,用于将查询数据汇总处理并反馈至业务子系统220。
可选的,查询请求解析器211具体用于:
读取查询请求的第一预设字段,获取查询类型;
读取查询请求的第二预设字段,获取待查询数据的查询目标,将查询目标与元数据进行匹配,确定查询数据存储类型。
可选的,数据存储子系统230包括至少一个数据存储集群和至少一个数据索引集群,查询策略确定模块212具体用于:
若查询请求的存储类型为第一类存储类型,则将查询请求发送至对应的数据存储集群,并接收数据存储集群反馈的查询数据;
若查询请求的存储类型为第二类存储类型,则判断查询请求的查询类型;
若查询类型为统计查询,则将查询请求发送至对应的数据索引集群,并接收数据索引集群反馈的统计数据,将统计数据作为查询数据;
若查询类型为明细查询,则将查询请求发送至对应的数据索引集群,接收数据索引集群反馈的索引数据,并根据索引数据于对应的数据存储集群中,接收数据存储集群反馈的明细数据,将明细数据作为查询数据。
可选的,中间件子系统210还包括打断指令设置模块和打断指令执行模块;其中,
打断指令设置模块,用于设置行打断指令和超时打断指令,行打断指令携带有查询请求的目标数量,超时打断指令携带有超时参数;
打断指令执行模块,用于若检测到数据存储子系统的明细查询指令的执行时间大于等于超时参数,则执行超时打断指令,停止执行明细查询指令,并将当前查询数据作为明细数据发送至中间件子系统;
还用于若明细查询指令查询到的当前查询数据的数量大于或等于目标数量,则执行行打断指令,停止执行明细查询指令,并将当前查询数据作为明细数据发送至中间件子系统。
可选的,中间件子系统210还包括预统计模块和预统计匹配模块;其中,
预统计模块,用于获取并执行至少一个预统计指令,获取预统计结果,并将预统计结果存储至第一数据库集群,其中,预统计指令包含执行时间、执行频率、统计条件和统计维度;
预统计匹配模块,用于检测查询请求是否与预统计指令匹配,若是,则从第一数据库集群中读取预统计指令对应的预统计结果,将预统计结果作为查询数据并反馈。
本实施例中,预统计模块对于周期存储的数据每日按数据维度统计前一日的数据,并按存储周期定期老化,即删除存储周期之外的统计数据;对于长期存储的数据每日按数据维度统计表内所有数据。本实施例中,通过运用预统计,预先统计各类数据不同维度的统计分析结果,省去业务子系时统查询时的在线统计时间,以提高中间件系统的响应时间。
可选的,中间件子系统210还包括查询范围确定模块和查询数据统计模块;其中;
查询数据统计模块,用于统计获取的查询数据的数量;
查询范围确定模块,用于在查询数据的数量小于查询请求的目标数量时,根据范围递增规则更新查询范围。
可选的,中间件子系统210缓存管理器,用于缓存管理平台上的元数据信息,并监控管理平台上元数据的变化,当元数据发生变化时,中间件系统同步更新。
可选的,中间件子系统210还包括检索引擎,用于响应查询请求,通过参数实现查询请求的分发,将查询请求下发给对应的数据集群。
可选的,中间件子系统210还包括线程池,线程池包含多线程,用于对查询请求进行并行处理,从而快速响应业务系统的查询请求。
可选的,中间件子系统210还包括连接池,用于与底层数据集群连接,提供底层数据集群连接的地址信息。本实施例中,连接池负责分配、管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个,释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,从而能明显提高系统的运行速度,提高了系统的并发访问能力和响应效率。
示例性的,参见图4,图4是本发明实施例二提供的一种大数据查询系统的结构示意图。图4中大数据查询系统包括中间件子系统、业务子系统、数据存储子系统、管理平台子系统和运维平台。其中业务子系统可以是包含多个业务终端,向中间件子系统发送查询请求。中间件子系统包括查询与维护服务模块、任务处理器、缓存管理器、对象维护模块以及数据库访问层。其中查询与维护服务模块用于接收业务子系统的查询请求,任务处理器包含查询请求解析器、查询策略确定模块、查询数据处理模块、打断指令设置模块、打断指令执行模块、预统计模块、预统计匹配模块、查询范围确定模块、查询数据统计模块以及检索引擎,用于对查询请求进行解析,根据解析后的查询请求确定查询策略,并进一步获取查询数据。
数据存储子系统中的每一个数据库均对应一个数据库访问层,数据库访问层包括线程池和连接池。示例性的,数据存储子系统包括但不限于HDFS集群、Solr集群、HBase集群和Oracle集群,相应的,中间件子系统包括但不限于HDFS访问层、Solr访问层、HBase访问层和Oracle访问层。数据库访问层用于连接任务处理器和对应的数据库集群,为任务处理器提供对应的数据库集群的IP地址。
对象维护模块用于对Oracle集群数据的管理维护,其中,管理维护包括数据删除、修改和添加等。
查询与维护服务模块用于记录业务子系统的查询请求和维护信息,并将查询请求和维护信息发生至运维平台,以使运维平台对维护信息和查询请求进行统计。
本实施例的技术方案,通过对上层业务子系统提供统一的查询接口,降低开发人员的学习成本及开发效率,通过屏蔽底层的异构数据库,降低了上层业务系统对各类数据库配置的维护成本。
实施例三
图5是本发明实施例三提供的一种计算机设备的结构示意图,该计算机设备包括:
一个或多个处理器310;
存储器320,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器310执行,使得所述一个或多个处理器310实现如本发明任意实施例一至二提出的大数据查询方法。
图5中以一个处理器310为例;处理器310和存储器320可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的大数据查询方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的大数据查询方法。
存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
另外,根据计算机设备的不同形式,除了处理器310和存储器320,终端还可以包括其他模块或结构。
本实施例提出的计算机设备与本发明任意实施例提出的大数据查询方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见本发明实施例,并且本实施例与其具有相同的有益效果。
实施例四
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例一至二提出的大数据查询方法。
本实施例提出的计算机可读存储介质与本发明任意实施例提出的大数据查询方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见本发明实施例,并且本实施例与其具有相同的有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (12)

1.一种大数据查询方法,其特征在于,包括:
获取查询请求,并解析所述查询请求,确定所述查询请求的查询类型和查询数据的存储类型;其中,所述查询类型包括统计查询和明细查询,所述统计查询用于统计满足查询条件的数据的数量,所述明细查询用于获取满足查询条件的每一条数据;
根据所述查询类型和所述存储类型确定所述查询请求的查询策略,并根据所述查询策略获取查询数据;
将所述查询数据汇总处理并反馈;
解析所述查询请求,确定所述查询请求的查询类型和查询数据的存储类型,包括:
读取所述查询请求的第一预设字段,获取所述查询类型;
读取所述查询请求的第二预设字段,获取待查询数据的查询目标,将所述查询目标与元数据进行匹配,确定所述查询数据存储类型;
根据所述查询类型和所述存储类型确定所述查询请求的查询策略,并根据所述查询策略获取查询数据,包括:
若所述查询请求的存储类型为第一类存储类型,则将所述查询请求发送至对应的数据存储集群,获取所述查询数据;所述第一类存储类型是指查询目标存储于带索引数据的数据库;
若所述查询请求的存储类型为第二类存储类型,则判断所述查询请求的查询类型;所述第二类存储类型是指查询目标存储于不带索引数据的数据库;
若所述查询类型为统计查询,则将所述查询请求发送至所述对应的数据索引集群,获取统计数据,将所述统计数据作为所述查询数据;
若所述查询类型为明细查询,则将所述查询请求发送至所述对应的数据索引集群,获取索引数据,并根据所述索引数据于对应的数据存储集群中获取明细数据,将所述明细数据作为所述查询数据。
2.根据权利要求1所述方法,其特征在于,根据所述索引数据于对应的数据存储集群中获取明细数据包括:
将所述索引数据进行合并,形成至少一个明细查询指令;
将所述至少一个明细查询指令发送至所述对应的数据存储集群,并行执行所述至少一个明细查询指令,获取所述明细数据。
3.根据权利要求2所述的方法,其特征在于,在并行执行所述至少一个明细查询指令之前,还包括:
设置行打断指令和超时打断指令,其中所述行打断指令携带有查询请求的目标数量,所述超时打断指令携带有超时参数;
相应的,若所述明细查询指令的执行时间大于或等于所述超时参数,则执行所述超时打断指令,停止执行所述明细查询指令并将当前查询数据作为明细数据;
相应的,若所述明细查询指令查询到的当前查询数据的数量大于或等于所述目标数量,则执行行打断指令,停止执行所述明细查询指令并将所述当前查询数据作为明细数据。
4.根据权利要求1-3任一所述的方法,其特征在于,根据所述查询策略获取查询数据,包括:
根据所述查询策略在第一查询范围内进行数据查询,获取第一查询数据;
检测所述第一查询数据的数量是否大于或等于所述查询请求的目标数量;
若是,则将所述第一查询数据确定为所述查询数据;
若否,则根据范围递增规则更新所述第一查询范围,并根据更新后的第一查询范围进行数据查询。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取并执行至少一个预统计指令,获取预统计结果,并将所述预统计结果存储至第一数据库集群,其中,所述预统计指令包含执行时间、执行频率、统计条件和统计维度;
相应的,在根据所述查询类型和所述存储类型确定所述查询请求的查询策略之前,还包括:
检测所述查询请求是否与所述预统计指令匹配,若是,则从所述第一数据库集群中读取所述预统计指令对应的预统计结果,将所述预统计结果作为查询数据并反馈。
6.根据权利要求4所述的方法,其特征在于,将所述查询数据汇总处理并反馈,包括:
若所述查询数据的数量大于所述查询请求的目标数量,则对排序后的查询数据根据所述目标数量进行截取,将截取的查询数据转换为目标格式后进行反馈。
7.一种大数据查询系统,其特征在于,包括中间件子系统、业务子系统和数据存储子系统;所述中间件子系统包括查询请求解析器、查询策略确定模块和查询数据处理模块;其中,
所述查询请求解析器,用于接收所述业务子系统发送的查询请求,解析所述查询请求,生成所述查询请求的查询类型和查询数据存储类型;其中,所述查询类型包括统计查询和明细查询,所述统计查询用于统计满足查询条件的数据的数量,所述明细查询用于获取满足查询条件的每一条数据;
所述查询策略确定模块,用于根据所述查询类型和所述查询数据存储类型生成查询策略,并根据所述查询策略将所述查询请求发送至对应的数据存储子系统;
所述数据存储子系统,用于根据所述查询请求确定查询数据,并发送至所述中间件子系统;
所述查询数据处理模块,用于将所述查询数据汇总处理并反馈至所述业务子系统;
所述查询请求解析器具体用于:
读取所述查询请求的第一预设字段,获取所述查询类型;
读取所述查询请求的第二预设字段,获取待查询数据的查询目标,将所述查询目标与元数据进行匹配,确定所述查询数据存储类型;
所述数据存储子系统包括至少一个数据存储集群和至少一个数据索引集群,所述查询策略确定模块具体用于:
若所述查询请求的存储类型为第一类存储类型,则将所述查询请求发送至对应的数据存储集群,并接收所述数据存储集群反馈的查询数据;所述第一类存储类型是指查询目标存储于带索引数据的数据库;
若所述查询请求的存储类型为第二类存储类型,则判断所述查询请求的查询类型;所述第二类存储类型是指查询目标存储于不带索引数据的数据库;
若所述查询类型为统计查询,则将所述查询请求发送至所述对应的数据索引集群,并接收所述数据索引集群反馈的统计数据,将所述统计数据作为所述查询数据;
若所述查询类型为明细查询,则将所述查询请求发送至所述对应的数据索引集群,接收所述数据索引集群反馈的索引数据,并根据所述索引数据于对应的数据存储集群中,接收所述数据存储集群反馈的明细数据,将所述明细数据作为所述查询数据。
8.根据权利要求7所述的系统,其特征在于,所述中间件子系统还包括打断指令设置模块和打断指令执行模块;其中,
所述打断指令设置模块,用于设置行打断指令和超时打断指令,所述行打断指令携带有查询请求的目标数量,所述超时打断指令携带有超时参数;
所述打断指令执行模块,用于若检测到数据存储子系统的明细查询指令的执行时间大于等于所述超时参数,则执行所述超时打断指令,停止执行所述明细查询指令,并将当前查询数据作为明细数据发送至所述中间件子系统;
还用于若所述明细查询指令查询到的当前查询数据的数量大于或等于所述目标数量,则执行行打断指令,停止执行所述明细查询指令,并将所述当前查询数据作为明细数据发送至所述中间件子系统。
9.根据权利要求7所述的系统,其特征在于,所述中间件子系统还包括预统计模块和预统计匹配模块;其中,
所述预统计模块,用于获取并执行至少一个预统计指令,获取预统计结果,并将所述预统计结果存储至第一数据库集群,其中,所述预统计指令包含执行时间、执行频率、统计条件和统计维度;
所述预统计匹配模块,用于检测所述查询请求是否与所述预统计指令匹配,若是,则从所述第一数据库集群中读取所述预统计指令对应的预统计结果,将所述预统计结果作为查询数据并反馈。
10.根据权利要求7所述的系统,其特征在于,所述中间件子系统还包括查询范围确定模块和查询数据统计模块;其中;
所述查询数据统计模块,用于统计获取的查询数据的数量;
所述查询范围确定模块,用于在所述查询数据的数量小于所述查询请求的目标数量时,根据范围递增规则更新查询范围。
11.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的大数据查询方法。
12.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的大数据查询方法。
CN201711227303.7A 2017-11-29 2017-11-29 一种大数据查询方法、系统、计算机及存储介质 Active CN108009236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711227303.7A CN108009236B (zh) 2017-11-29 2017-11-29 一种大数据查询方法、系统、计算机及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711227303.7A CN108009236B (zh) 2017-11-29 2017-11-29 一种大数据查询方法、系统、计算机及存储介质

Publications (2)

Publication Number Publication Date
CN108009236A CN108009236A (zh) 2018-05-08
CN108009236B true CN108009236B (zh) 2020-11-03

Family

ID=62054811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711227303.7A Active CN108009236B (zh) 2017-11-29 2017-11-29 一种大数据查询方法、系统、计算机及存储介质

Country Status (1)

Country Link
CN (1) CN108009236B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189800A (zh) * 2018-08-16 2019-01-11 北京中科梧桐网络科技有限公司 一种数据层分页查询模型以及查询方法
CN109446253B (zh) * 2018-09-25 2024-05-07 平安科技(深圳)有限公司 数据查询控制方法、装置、计算机设备及存储介质
CN109543079B (zh) * 2018-11-27 2021-02-02 北京锐安科技有限公司 数据查询方法、装置、计算设备及存储介质
CN109766354A (zh) * 2018-12-04 2019-05-17 北京辰森世纪科技股份有限公司 业务数据查询的优化方法、装置及设备
CN111400342A (zh) * 2019-01-03 2020-07-10 百度在线网络技术(北京)有限公司 数据库更新方法、装置、设备及存储介质
CN109992594A (zh) * 2019-03-22 2019-07-09 跬云(上海)信息科技有限公司 基于预计算优化的分布式执行优化方法及系统
CN110347754B (zh) * 2019-06-05 2023-03-24 创新先进技术有限公司 一种数据查询方法及装置
CN110533450A (zh) * 2019-07-17 2019-12-03 上海数据交易中心有限公司 数据流通方法及装置、存储介质、服务器
CN110837515A (zh) * 2019-11-06 2020-02-25 北京天融信网络安全技术有限公司 一种基于数据库的数据处理方法及电子设备
CN110837585B (zh) * 2019-11-07 2022-12-20 中盈优创资讯科技有限公司 多源异构的数据关联查询方法及系统
CN111061766A (zh) * 2019-11-27 2020-04-24 上海钧正网络科技有限公司 一种业务数据的处理方法、装置、计算机设备及存储介质
CN111414403B (zh) * 2020-03-20 2023-04-14 腾讯科技(深圳)有限公司 数据访问方法和装置、数据存储方法和装置
CN111782688B (zh) * 2020-06-29 2024-02-06 中国平安财产保险股份有限公司 基于大数据分析的请求处理方法、装置、设备及存储介质
CN111949705A (zh) * 2020-07-31 2020-11-17 上海中通吉网络技术有限公司 慢查询统计分析方法、装置和系统
CN112434057A (zh) * 2020-10-12 2021-03-02 南京江北新区生物医药公共服务平台有限公司 一种数据查询方法及装置
CN112207833B (zh) * 2020-10-16 2021-08-17 深圳市华成工业控制股份有限公司 一种运动路径的规划方法、系统、主机及存储介质
CN112328596A (zh) * 2020-11-05 2021-02-05 平安消费金融有限公司 数据查询方法、装置、电子设备及存储介质
CN112202822B (zh) * 2020-12-07 2021-02-23 中国人民解放军国防科技大学 数据库注入检测方法、装置、电子设备及存储介质
CN113297181A (zh) * 2021-06-11 2021-08-24 建信金融科技有限责任公司 配置项管理数据库、数据处理方法和装置
CN113703995B (zh) * 2021-08-13 2024-04-16 深圳市中博科创信息技术有限公司 前后端数据交互方法、装置、电子设备及存储介质
CN113901083B (zh) * 2021-09-14 2023-05-12 北京柏睿数据技术股份有限公司 基于多解析器的异构数据源操作资源解析定位方法和设备
CN113961581B (zh) * 2021-09-27 2023-09-08 北京百度网讯科技有限公司 查询处理方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521254B (zh) * 2011-11-17 2013-04-10 广东电网公司电力科学研究院 异构数据库的统一访问方法
CN103077453A (zh) * 2012-12-31 2013-05-01 南京烽火星空通信发展有限公司 一种多人协同工作的数据分析方法及系统
CN105989150B (zh) * 2015-03-02 2019-11-26 中国移动通信集团四川有限公司 一种基于大数据环境的数据查询方法及装置
CN106156135A (zh) * 2015-04-10 2016-11-23 华为技术有限公司 查询数据的方法及装置
US10121216B2 (en) * 2015-04-22 2018-11-06 Lex Machina, Inc. Analyzing and characterizing legal case outcomes
CN107302444B (zh) * 2016-04-15 2022-03-25 中兴通讯股份有限公司 企业级搜索应用服务器集群自动扩容方法及装置
CN106649630A (zh) * 2016-12-07 2017-05-10 乐视控股(北京)有限公司 数据查询方法及装置
CN107291964B (zh) * 2017-08-16 2019-11-15 南京华飞数据技术有限公司 一种基于HBase实现模糊查询的方法

Also Published As

Publication number Publication date
CN108009236A (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
CN108009236B (zh) 一种大数据查询方法、系统、计算机及存储介质
US20220078097A1 (en) Distribution of data packets with non-linear delay
CN107145489B (zh) 一种基于云平台的客户端应用的信息统计方法和装置
US10430332B2 (en) System and method for performance tuning of garbage collection algorithms
US20120330915A1 (en) Streaming transaction notifications
US9992269B1 (en) Distributed complex event processing
CN108228322B (zh) 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN110912757B (zh) 业务的监控方法和服务器
CN110147470B (zh) 一种跨机房数据比对系统及方法
CN111740884A (zh) 一种日志处理方法及电子设备、服务器、存储介质
CN111338888B (zh) 一种数据统计方法、装置、电子设备及存储介质
CN111104419A (zh) 一种数据查询方法及装置
CN111488377A (zh) 数据查询方法、装置、电子设备及存储介质
CN113760677A (zh) 异常链路分析方法、装置、设备及存储介质
CN111694793A (zh) 一种日志存储方法、装置及日志查询方法、装置
CN113297253A (zh) 一种设备识别方法、装置、设备及可读存储介质
CN112612832A (zh) 节点分析方法、装置、设备及存储介质
CN110716938A (zh) 数据的汇聚方法及装置、存储介质和电子装置
EP4209933A1 (en) Data processing method and apparatus, and electronic device and storage medium
CN115964418A (zh) 一种面向物联网的多源异构数据接入系统及方法
CN111475505B (zh) 一种数据采集的方法及设备
CN111159229B (zh) 一种数据查询方法及装置
CN113297245A (zh) 获取执行信息的方法及装置
CN110851249A (zh) 一种数据导出的方法及设备
CN112231292A (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
GR01 Patent grant
GR01 Patent grant