数据的查询方法及装置、存储介质和电子设备制造方法及图纸

技术编号:38617338 阅读:10 留言:0更新日期:2023-08-26 23:44
本申请公开了一种数据的查询方法及装置、存储介质和电子设备,涉及大数据技术领域。该方法包括:接收目标对象发送的第一语句,其中,第一语句用于在数据库中用时间字段查询目标数据;对第一语句进行解析,得到解析结果;依据解析结果检查第一语句中是否存在目标函数,得到检查结果,其中,目标函数为数据库中获取时间戳的函数;基于检查结果在数据库中用时间字段查询目标数据。通过本申请,解决了相关技术中在数据库中以时间字段查询数据时,会导致出现全表扫描的情况,从而导致数据库资源占用率过高,进而会导致查询数据的效率较低的问题。进而会导致查询数据的效率较低的问题。进而会导致查询数据的效率较低的问题。

【技术实现步骤摘要】
数据的查询方法及装置、存储介质和电子设备


[0001]本申请涉及大数据
,具体而言,涉及一种数据的查询方法及装置、存储介质和电子设备。

技术介绍

[0002]在编写SQL(结构化查询语言)进行数据查询的过程中,有时会涉及用时间字段去查询数据。相关技术中,若在查询过程中,筛选条件使用到unix_timestamp()函数(数据库中获取时间戳的函数),且如果扫描的分区字段与unix_timestamp()函数没有匹配的时间戳便会全表扫描,因为这个函数是不确定函数会扫描全表才能得出数据。而且,全表扫描是一个全量的过程,过程中会涉及到大量和结果完全无关的数据。另外,无论在MySQL数据库中或者是Hive数据库中,使用到unix_timestamp()不确定函数都会导致全表扫描。因此,若在SQL(结构化查询语言)中使用unix_timestamp()函数,会消耗数据库资源,导致数据库资源占用率过高,从而会影响数据库的响应速度,严重的会导致使用数据库的所用应用程序的卡顿。
[0003]另外,当今是数据的时代,大数据领域正在蓬勃发展,越来越多企业,特别是中大型企业,出于对数据产出时间的考虑,往往会建设一个优化SQL(结构化查询语言)查询时间的比较完善的方法。而且,许多企业每天都有大量的基于数据库的数据分析需求,若有大量的SQL(结构化查询语言)触发了unix_timestamp()函数的使用场景,则必然会影响查询数据的效率和整个分析数据的效率。
[0004]针对相关技术中在数据库中以时间字段查询数据时,会导致出现全表扫描的情况,从而导致数据库资源占用率过高,进而会导致查询数据的效率较低的问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]本申请的主要目的在于提供一种数据的查询方法及装置、存储介质和电子设备,以解决相关技术中在数据库中以时间字段查询数据时,会导致出现全表扫描的情况,从而导致数据库资源占用率过高,进而会导致查询数据的效率较低的问题。
[0006]为了实现上述目的,根据本申请的一个方面,提供了一种数据的查询方法。该方法包括:接收目标对象发送的第一语句,其中,所述第一语句用于在数据库中用时间字段查询目标数据;对所述第一语句进行解析,得到解析结果;依据所述解析结果检查所述第一语句中是否存在目标函数,得到检查结果,其中,所述目标函数为所述数据库中获取时间戳的函数;基于所述检查结果在所述数据库中用时间字段查询所述目标数据。
[0007]进一步地,依据所述解析结果检查所述第一语句中是否存在目标函数,得到检查结果包括:依据所述解析结果,得到所述第一语句对应的抽象语法树;遍历所述抽象语法树的节点,得到遍历结果;依据所述遍历结果检查所述第一语句,得到所述检查结果,其中,所述检查结果用于表示所述第一语句中是否存在所述目标函数。
[0008]进一步地,依据所述遍历结果检查所述第一语句,得到所述检查结果包括:依据所述遍历结果,确定所述抽象语法树中是否存在目标节点,其中,所述目标节点为在所述数据库中用于查询数据的节点;若所述抽象语法树中不存在所述目标节点,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据;若所述抽象语法树中存在所述目标节点,则获取所述目标节点中的N个函数,其中,N为正整数;基于所述N个函数检查所述第一语句,得到所述检查结果。
[0009]进一步地,基于所述N个函数检查所述第一语句,得到所述检查结果包括:判断所述N个函数中是否存在所述目标函数;若所述N个函数中存在所述目标函数,则表示所述第一语句中存在所述目标函数;若所述N个函数中不存在所述目标函数,则表示所述第一语句中不存在所述目标函数。
[0010]进一步地,基于所述检查结果在所述数据库中用时间字段查询所述目标数据包括:若所述检查结果表示所述第一语句中不存在所述目标函数,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据;若所述检查结果表示所述第一语句中存在所述目标函数,则判断所述目标函数中是否有参数,得到判断结果;依据所述判断结果在所述数据库中用时间字段查询所述目标数据。
[0011]进一步地,依据所述判断结果在所述数据库中用时间字段查询所述目标数据包括:若所述判断结果表示所述目标函数中有所述参数,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据;若所述判断结果表示所述目标函数中没有所述参数,则向所述目标对象发送提醒信息,其中,所述提醒信息用于提醒所述目标对象在所述目标函数中添加所述参数;获取所述目标对象在所述目标函数中添加所述参数之后的第二语句;执行所述第二语句,并在所述数据库中用时间字段查询所述目标数据。
[0012]进一步地,在对所述第一语句进行解析,得到解析结果之后,所述方法还包括:依据所述解析结果,确定对所述第一语句是否解析成功;若对所述第一语句解析成功,则得到所述第一语句对应的抽象语法树;若对所述第一语句解析失败,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据。
[0013]为了实现上述目的,根据本申请的另一方面,提供了一种数据的查询装置。该装置包括:第一接收单元,用于接收目标对象发送的第一语句,其中,所述第一语句用于在数据库中用时间字段查询目标数据;第一解析单元,用于对所述第一语句进行解析,得到解析结果;第一检查单元,用于依据所述解析结果检查所述第一语句中是否存在目标函数,得到检查结果,其中,所述目标函数为所述数据库中获取时间戳的函数;第一查询单元,用于基于所述检查结果在所述数据库中用时间字段查询所述目标数据。
[0014]进一步地,所述第一检查单元包括:第一确定子单元,用于依据所述解析结果,得到所述第一语句对应的抽象语法树;第一遍历子单元,用于遍历所述抽象语法树的节点,得到遍历结果;第一检查子单元,用于依据所述遍历结果检查所述第一语句,得到所述检查结果,其中,所述检查结果用于表示所述第一语句中是否存在所述目标函数。
[0015]进一步地,所述第一检查子单元包括:第一确定模块,用于依据所述遍历结果,确定所述抽象语法树中是否存在目标节点,其中,所述目标节点为在所述数据库中用于查询数据的节点;第一执行模块,用于若所述抽象语法树中不存在所述目标节点,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据;第一获取模块,用于若所述抽象
语法树中存在所述目标节点,则获取所述目标节点中的N个函数,其中,N为正整数;第一检查模块,用于基于所述N个函数检查所述第一语句,得到所述检查结果。
[0016]进一步地,所述第一检查模块包括:第一判断子模块,用于判断所述N个函数中是否存在所述目标函数;第一确定子模块,用于若所述N个函数中存在所述目标函数,则表示所述第一语句中存在所述目标函数;第二确定子模块,用于若所述N个函数中不存在所述目标函数,则表示所述第一语句中不存在所述目标函数。
[0017]进一步地,所述第一查询单元包括:第一执行子单元,用于若所述检查结果表示所述第一语句中不存在所述目标函数,则执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据的查询方法,其特征在于,包括:接收目标对象发送的第一语句,其中,所述第一语句用于在数据库中用时间字段查询目标数据;对所述第一语句进行解析,得到解析结果;依据所述解析结果检查所述第一语句中是否存在目标函数,得到检查结果,其中,所述目标函数为所述数据库中获取时间戳的函数;基于所述检查结果在所述数据库中用时间字段查询所述目标数据。2.根据权利要求1所述的方法,其特征在于,依据所述解析结果检查所述第一语句中是否存在目标函数,得到检查结果包括:依据所述解析结果,得到所述第一语句对应的抽象语法树;遍历所述抽象语法树的节点,得到遍历结果;依据所述遍历结果检查所述第一语句,得到所述检查结果,其中,所述检查结果用于表示所述第一语句中是否存在所述目标函数。3.根据权利要求2所述的方法,其特征在于,依据所述遍历结果检查所述第一语句,得到所述检查结果包括:依据所述遍历结果,确定所述抽象语法树中是否存在目标节点,其中,所述目标节点为在所述数据库中用于查询数据的节点;若所述抽象语法树中不存在所述目标节点,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据;若所述抽象语法树中存在所述目标节点,则获取所述目标节点中的N个函数,其中,N为正整数;基于所述N个函数检查所述第一语句,得到所述检查结果。4.根据权利要求3所述的方法,其特征在于,基于所述N个函数检查所述第一语句,得到所述检查结果包括:判断所述N个函数中是否存在所述目标函数;若所述N个函数中存在所述目标函数,则表示所述第一语句中存在所述目标函数;若所述N个函数中不存在所述目标函数,则表示所述第一语句中不存在所述目标函数。5.根据权利要求1所述的方法,其特征在于,基于所述检查结果在所述数据库中用时间字段查询所述目标数据包括:若所述检查结果表示所述第一语句中不存在所述目标函数,则执行所述第一语句,并在所述数据库中用时间字段查询所述目标数据;若所述检查结果表示所述第一语句中存在所述目标函数,则判断所...

【专利技术属性】
技术研发人员:黄萌阳万里单升起杨济银
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1