基于大数据的查询方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:19821841 阅读:17 留言:0更新日期:2018-12-19 14:43
本申请涉及一种基于大数据的查询方法、装置、计算机设备和存储介质。所述方法包括:接收终端上传的查询请求;查询请求携带了查询条件,查询条件所针对的查询数据存储于计算机节点集群;响应于查询请求,确定查询条件的复杂度;当复杂度低于预设阈值时,调用查询引擎Presto,根据查询条件在计算机节点集群中查询相应的目标数据;当复杂度高于预设阈值时,调用查询引擎Hive,根据查询条件在计算机节点集群中查询相应的目标数据;获取查询到的目标数据,将目标数据发送至终端进行展示。采用本方法能够在大数据查询过程中自适应选择相应查询引擎。

【技术实现步骤摘要】
基于大数据的查询方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种基于大数据的查询方法、装置、计算机设备和存储介质。
技术介绍
随着大数据技术的发展,出现了多种基于大数据的查询引擎。比如,查询引擎Hive和查询引擎Presto。在传统方式中,只采用单一的查询引擎。而单一的查询引擎存在各自的弊端。查询引擎Hive在查询过程中需要执行多次磁盘的读写,每次对磁盘的读写都会产生延时。而查询引擎Presto是基于内存的分布式实时查询引擎,无法执行需要对多个数据表进行连接操作的查询。由此使得大数据查询的过程中存在查询延时长或查询数据量受限的问题。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够在大数据查询过程中能够自适应选择相应查询引擎的基于大数据的查询方法、装置、计算机设备和存储介质。一种基于大数据的查询方法,所述方法包括:接收终端上传的查询请求;所述查询请求携带了查询条件,所述查询条件所针对的查询数据存储于计算机节点集群;响应于所述查询请求,确定所述查询条件的复杂度;当所述复杂度低于预设阈值时,调用查询引擎Presto,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;当所述复杂度高于预设阈值时,调用查询引擎Hive,根据所述查询条件在所述计算机节点集群中查询到所述相应的目标数据;获取查询到的所述目标数据,将所述目标数据发送至所述终端进行展示。在其中一个实施例中,所述查询请求还携带了用户账号,在所述确定所述查询条件的复杂度之前,还包括:确定所述用户账号在分布式文件系统中所属的集群账号;所述分布式文件系统与所述计算机节点集群相对应;确定与所述集群账号对应的用户角色;获取与所述用户角色对应的角色权限;所述角色权限与可访问数据相对应;当检测到所述可访问数据包含所述查询数据时,执行所述确定所述查询条件的复杂度的步骤。在其中一个实施例中,所述确定所述查询条件的复杂度,包括:统计所述查询条件所针对的查询数据的数据量;提取所述查询条件中的起始时间和截止时间;根据所述起始时间和所述截止时间进行计算,得到所述查询条件所针对的查询数据对应的时间区间;根据所述数据量和所述时间区间,计算所述查询条件的复杂度。在其中一个实施例中,在所述响应于所述查询请求,确定所述查询条件的复杂度之前,所述方法还包括:检测所述查询条件中是否包含用户自定义函数;当所述查询条件中包含用户自定义函数时,提取所述用户自定义函数的自定义函数名;拉取所述查询引擎Presto支持的第一函数名列表,和所述查询引擎Hive支持的第二函数名列表;将所述自定义函数名分别与所述第一函数名列表和所述第二函数名列表进行匹配;当所述自定义函数名仅与第二函数名列表匹配时,调用查询引擎Hive,根据所述查询条件在所述计算机节点集群中查询相应的目标数据。在其中一个实施例中,所述调用查询引擎Presto,根据所述查询条件在所述计算机节点集群中查询相应的目标数据,包括:调用查询引擎Presto将所述查询条件进行解析,得到逻辑查询计划;将所述逻辑查询计划进行分布式处理,得到分布式逻辑查询计划;将分布式逻辑查询计划转化为多个查询子任务,并将所述多个查询子任务分发至多个工作线程;通过所述多个工作线程在所述计算机节点集群中执行相应的查询子任务,分别得到相应的目标子数据;汇总多个所述目标子数据,得到所述查询数据中的目标数据。在其中一个实施例中,在所述获取查询到的所述目标数据之后,还包括:将所述目标数据存储至所述计算机节点集群;根据所述用户账号和所述查询条件生成历史查询记录,并构建所述历史查询记录与所述目标数据的关联关系;接收终端上传的针对所述历史查询记录的查看请求;响应于所述查看请求,根据所述关联关系从所述计算机节点集群中获取所述目标数据,将所述目标数据发送至所述终端进行展示。一种基于大数据的查询装置,所述装置包括:接收模块,用于接收终端上传的查询请求;所述查询请求携带了查询条件,所述查询条件所针对的查询数据存储于计算机节点集群;确定模块,用于响应于所述查询请求,确定所述查询条件的复杂度;查询模块,用于当所述复杂度低于预设阈值时,调用查询引擎Presto,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;当所述复杂度高于预设阈值时,调用查询引擎Hive,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;获取模块,用于获取查询到的所述目标数据,将所述目标数据发送至所述终端进行展示。在其中一个实施例中,所述装置还包括校验模块,用于确定所述用户账号在分布式文件系统中所属的集群账号;所述分布式文件系统与所述计算机节点集群相对应;确定与所述集群账号对应的用户角色;获取与所述用户角色对应的角色权限;所述角色权限与可访问数据相对应;所述确定模块还用于当检测到所述可访问数据包含所述查询数据时,执行所述确定所述查询条件的复杂度的步骤。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的基于大数据的查询方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的基于大数据的查询方法的步骤。上述基于大数据的查询方法、装置、计算机设备和存储介质,服务器在接收到终端上传的基于大数据的查询请求之后,根据查询请求携带的查询条件确定其复杂度。根据查询条件的复杂度,自适应调用合适的查询引擎进行查询。当复杂度低于预设阈值时,调用查询引擎Presto;当复杂度高于预设阈值时,调用查询引擎Hive。查询引擎根据查询条件在计算机节点集群中查询到查询数据中的目标数据之后,可获取查询到的目标数据并发送至终端进行展示。通过根据查询条件的复杂度调用合适的查询引擎进行查询,能够避免单一查询引擎的弊端,综合利用查询引擎Hive查询数据量不受限制的优势及查询引擎Presto查询延时短的优势。从而实现了通过自适应选择相应查询引擎的方式进行大数据查询。附图说明图1为一个实施例中基于大数据的查询方法的应用场景图;图2为一个实施例中基于大数据的查询方法的流程示意图;图3为一个实施例中查询引擎Presto的工作原理示意图;图4为另一个实施例中基于大数据的查询方法的流程示意图;图5为一个实施例中基于大数据的查询装置的结构框图;图6为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的基于大数据的查询方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104与计算机节点集群106通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,计算机节点集群106中的计算机节点可为终端也可为服务器。终端102在获取到用户触发的查询指令之后,可生成查询请求,并将查询请求上传至服务器104。服务器104响应于查询请求,确定查询请求携带的查询条件的复杂本文档来自技高网...

【技术保护点】
1.一种基于大数据的查询方法,所述方法包括:接收终端上传的查询请求;所述查询请求携带了查询条件,所述查询条件所针对的查询数据存储于计算机节点集群;响应于所述查询请求,确定所述查询条件的复杂度;当所述复杂度低于预设阈值时,调用查询引擎Presto,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;当所述复杂度高于预设阈值时,调用查询引擎Hive,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;获取查询到的所述目标数据,将所述目标数据发送至所述终端进行展示。

【技术特征摘要】
1.一种基于大数据的查询方法,所述方法包括:接收终端上传的查询请求;所述查询请求携带了查询条件,所述查询条件所针对的查询数据存储于计算机节点集群;响应于所述查询请求,确定所述查询条件的复杂度;当所述复杂度低于预设阈值时,调用查询引擎Presto,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;当所述复杂度高于预设阈值时,调用查询引擎Hive,根据所述查询条件在所述计算机节点集群中查询相应的目标数据;获取查询到的所述目标数据,将所述目标数据发送至所述终端进行展示。2.根据权利要求1所述的方法,其特征在于,所述查询请求还携带了用户账号,在所述确定所述查询条件的复杂度之前,还包括:确定所述用户账号在分布式文件系统中所属的集群账号;所述分布式文件系统与所述计算机节点集群相对应;确定与所述集群账号对应的用户角色;获取与所述用户角色对应的角色权限;所述角色权限与可访问数据相对应;当检测到所述可访问数据包含所述查询数据时,执行所述确定所述查询条件的复杂度的步骤。3.根据权利要求1所述的方法,其特征在于,所述确定所述查询条件的复杂度,包括:统计所述查询条件所针对的查询数据的数据量;提取所述查询条件中的起始时间和截止时间;根据所述起始时间和所述截止时间进行计算,得到所述查询条件所针对的查询数据对应的时间区间;根据所述数据量和所述时间区间,计算所述查询条件的复杂度。4.根据权利要求1所述的方法,其特征在于,在所述响应于所述查询请求,确定所述查询条件的复杂度之前,所述方法还包括:检测所述查询条件中是否包含用户自定义函数;当所述查询条件中包含用户自定义函数时,提取所述用户自定义函数的自定义函数名;拉取所述查询引擎Presto支持的第一函数名列表,和所述查询引擎Hive支持的第二函数名列表;将所述自定义函数名分别与所述第一函数名列表和所述第二函数名列表进行匹配;当所述自定义函数名仅与第二函数名列表匹配时,调用查询引擎Hive,根据所述查询条件在所述计算机节点集群中查询相应的目标数据。5.根据权利要求1至4任意一项所述的方法,其特征在于,所述调用查询引擎Presto,根据所述查询条件在所述计算机节点集群中查询相应的目标数据,包括:调用查询引擎Presto将所述查询条件进行解析,得...

【专利技术属性】
技术研发人员:王玉黄奉线
申请(专利权)人:康键信息技术深圳有限公司
类型:发明
国别省市:广东,44

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

1