CN113010539A - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN113010539A
CN113010539A CN201911324348.5A CN201911324348A CN113010539A CN 113010539 A CN113010539 A CN 113010539A CN 201911324348 A CN201911324348 A CN 201911324348A CN 113010539 A CN113010539 A CN 113010539A
Authority
CN
China
Prior art keywords
query
statement
sub
query result
query statement
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.)
Pending
Application number
CN201911324348.5A
Other languages
English (en)
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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911324348.5A priority Critical patent/CN113010539A/zh
Publication of CN113010539A publication Critical patent/CN113010539A/zh
Pending legal-status Critical Current

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
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • 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
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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
    • G06F16/248Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据处理方法及装置,该方法包括:获取目标查询语句中的目标子查询语句;查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。通过本发明提供的数据处理方法,不仅可以在数据查询过程中节省计算资源,还可以提高数据查询效率。

Description

一种数据处理方法及装置
技术领域
本发明涉及数据库信息查询管理领域,尤其涉及一种数据处理方法及装置。
背景技术
随着互联网技术的不断发展,用户量与使用频率也迅速增长,相应的,业务、用户行为等数据的量级也在不断增长。目前的数据仓库技术一般都支持数据查询语句进行数据查询,例如,SQL(Structured Query Language,结构化查询语言)查询语句。当数据查询语句需要扫描的数据量很大,且包含大量子查询语句以及表关联时,数据查询通常较为耗时。
在实际应用中,因为统计口径的调整、错误SQL的修改、不同用户对相同数据的统计等原因,经常会出现在一段时间内提交存在相同子查询语句的查询语句,甚至完全相同查询语句。对于这种情况,现有的数据仓库技术都是重新对查询语句进行解析和执行,这样会造成存在许多重复性的计算,不仅浪费计算资源,还会导致数据查询效率较低。
发明内容
本发明提供一种数据处理方法及装置,以解决现有技术中数据查询效率较低的问题。
第一方面,本发明提供了一种数据处理方法,该方法包括:
获取目标查询语句中的目标子查询语句;
查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;
若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
第二方面,本发明还提供一种数据处理装置,该装置包括:
第一获取模块,用于获取目标查询语句中的目标子查询语句;
第一查询模块,用于查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;
加载模块,用于若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
第三方面,本发明还提供一种数据处理装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的数据处理方法的步骤。
第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据处理方法的步骤。
本发明实施例中,通过获取目标查询语句中的目标子查询语句;查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果,不仅可以在数据查询过程中节省计算资源,还可以提高数据查询效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据处理方法的流程图;
图2是本发明实施例提供的SQL查询语句的语法树的示意图;
图3是本发明又一实施例提供的数据处理方法的流程图;
图4是本发明实施例提供的数据处理装置的结构图;
图5是本发明又一实施例提供的数据处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法。参见图1,图1是本发明实施例提供的数据处理方法的流程图,如图1所示,包括以下步骤:
步骤101、获取目标查询语句中的目标子查询语句。
本实施例中,上述目标查询语句可以是任意的查询语句。上述目标子查询语句可以包括上述目标查询语句中部分或全部的子查询语句。
可选的,在接收到用户提交的SQL查询语句之后,可以对所接收的SQL查询语句进行解析,以获取SQL查询语句所包含的部分或全部的子查询语句。例如,用户提交了一个SQL查询语句:select AA.a from(select a from A)AA join(select b from B)BB on AA.a=BB.b,可以获取其中的子查询语句:select a from A和select b from B。
步骤102、查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果。
实际应用中,可以在数据查询过程中将依据子查询语句查询到的查询结果以及该子查询语句存储于数据库,在需要再次依据该子查询语句查询数据的情况下可以先查询数据库是否存储有该子查询语句,若存在的话则可以直接加载数据库中存储的该子查询语句对应的查询结果并作为该子查询语句的查询结果。
可选的,可以在数据查询过程中将依据子查询语句查询到的查询结果存储在内存或是文件系统(例如,Hadoop分布式文件系统(Hadoop Distributed File System,HDFS))等,这样在需要再次依据该子查询语句查询数据的情况下可以先检测内存或是文件系统等中是否存储有其对应的查询结果。可选的,也可以预先统计一些使用频次较多的子查询语句,并存储其对应的查询结果,便于后续进行数据查询。
步骤103、若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
本实施例中,若数据库存储有与所述目标子查询语句对应的查询结果(也即第一查询结果),则可以直接从数据库加载所述目标子查询语句对应的查询结果,并作为该目标子查询语句的查询结果,以用于执行后续的计算任务,而无需对目标子查询语句进行解析和执行计算,这样不仅可以节省计算资源,还可以提高数据查询效率。可选的,若未存储与所述目标子查询语句对应的查询结果,则可以依据目标子查询语句进行数据查询,得到其对应的查询结果。
需要说明的是,若目标子查询语句包括多个子查询语句,则可以分别查询是否存储有多个子查询语句中每个子查询语句对应的查询结果,对于存储有对应的查询结果的子查询语句,直接加载所存储的其对应的查询结果,对于未存储有对应的查询结果的子查询语句,可以依据其进行数据查询,得到其对应的查询结果。
例如,若目标子查询语句包括子查询语句A和子查询语句B,则可以分别查询是否存储有子查询语句A对应的查询结果和查询是否存储有子查询语句B对应的查询结果,若存储有子查询语句A对应的查询结果,则直接加载所存储的子查询语句A对应的查询结果,若未存储子查询语句B对应的查询结果,则根据子查询语句B进行数据查询,得到子查询语句B对应的查询结果。
本发明实施例提供的数据处理方法,通过获取目标查询语句中的目标子查询语句;查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果,不仅可以在数据查询过程中节省计算资源,还可以提高数据查询效率。
可选的,上述步骤101,也即所述获取目标查询语句中的目标子查询语句,可以包括:
解析所述目标查询语句,得到所述目标查询语句的语法树;
遍历所述语法树的各个节点,得到所述目标查询语句中的目标子查询语句。
本实施例中,可以对目标查询语句进行语法解析,以生成目标查询语句的语法书。例如,若目标查询语句为SQL查询语句,可以通过Apache Calcite对目标查询语句进行语法解析,生成目标查询语句的语法树。
以目标查询语句为“select AA.a from(select a from A)AA join(select bfrom B)BB on AA.a=BB.b”为例,通过对上述目标查询语句进行解析,可以得到如图2所示的语法树,通过遍历语法树的各个节点,可以得到目标查询语句中的各个子查询语句,也即select a from A和select b from B。
本发明实施例通过解析目标查询语句,生成目标查询语句的语法树,并基于目标查询语句的语法树获取目标查询语句中的子查询语句,可以提高所获取到的子查询语句的准确性和完整性。
可选的,本发明实施例可以设置一功能配置项,例如,subquery.cache.enable,用于指示在数据查询过程中是否启动加载存储的子查询语句对应的查询结果的功能,若该功能配置项的值指示启动加载存储的子查询语句对应的查询结果的功能,例如,subquery.cache.enable的值为true,则执行上述步骤101至步骤103,否则可以结束流程,或直接依据目标查询语句进行数据查询。
可选的,所述方法还可以包括:
若未获取到所述第一查询结果,则根据所述目标子查询语句进行数据查询,得到所述目标子查询语句的查询结果;
存储所述目标子查询语句和所述目标子查询语句的查询结果至所述数据库。
本发明实施例中,上述未获取到所述第一查询结果可以包括数据库中未存储与所述目标子查询语句对应的第一查询结果,或者数据库中存储有与所述目标子查询语句对应的第一查询结果但是因网络等因素从数据库获取第一查询结果失败等。具体的,在未获取到所述第一查询结果的情况下,可以根据目标子查询语句进行数据查询,得到查询结果,并存储目标子查询语句的查询结果至数据库,便于后续需要再次依据该目标子查询语句进行查询的情况下,可以直接从数据库加载存储的查询结果,并作为该目标子查询语句的查询结果,不仅可以节省计算资源,提高查询速度,还可以不断更新存储的查询结果。
可选的,本发明实施例可以存储目标子查询语句、目标子查询语句的查询结果以及两者的对应关系,这样便于基于目标子查询语句快速查找到目标子查询语句的查询结果。
可选的,上述步骤102,也即所述查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,可以包括:
检索所述数据库中是否存在与所述目标子查询语句对应的第一存储地址,其中,所述第一存储地址为所述目标子查询语句对应的第一查询结果的存储地址;
上述步骤103,也即所述若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果,可以包括:
若所述数据库中存在与所述目标子查询语句对应的第一存储地址,则根据所述第一存储地址从文件系统中加载所述目标子查询语句对应的第一查询结果。
本发明实施例中,上述数据库可以包括但不限于MySQL数据库、SQLServer数据库、Oracle数据库或Sybase数据库等。上述文件系统可以包括但不限于HDFS、FastDFS或ClusterFS等。
实际应用中,可以分布式地将查询结果存储于文件系统,将查询结果的存储地址以及其对应的查询子语句存储于数据库中,便于在数据量较大的情况下进行快速查找,提高数据查询效率。具体的,可以在获取到目标子查询语句之后,检索数据库中是否存在与目标子查询语句相同的子查询语句,若存在,则获取该子查询语句对应的存储地址,并基于该存储地址从文件系统中加载存储的查询结果。
本发明实施例通过将查询结果存储于文件系统,将查询结果的存储地址存储于数据库,便于在数据量较大的情况下进行快速查找,提高数据查询效率。
可选的,所述若未获取到所述第一查询结果,则根据所述目标子查询语句进行数据查询,得到所述目标子查询语句的查询结果,可以包括:
若所述数据库中不存在与所述目标子查询语句对应的第一存储地址,则根据所述目标子查询语句进行数据查询,得到所述目标子查询语句的查询结果;
所述存储所述目标子查询语句和所述目标子查询语句的查询结果至所述数据库,可以包括:
存储所述目标子查询语句的查询结果至所述文件系统,并将所述目标子查询语句和所述目标子查询语句对应的查询结果的存储地址存储至所述数据库。
本发明实施例中,若预设数据库中不存在与所述目标子查询语句对应的第一存储地址,也即未存储与所述目标子查询语句对应的查询结果,则可以根据目标子查询语句进行数据查询,得到查询结果,并可将该查询结果存储于文件系统中,将其存储地址和目标子查询语句对应存储于数据库中。
本发明实施例通过在数据查询过程中存储依据子查询语句所查询到的查询结果,这样在需要再次依据该子查询语句进行查询的情况下,可以直接加载存储的查询结果,不仅可以节省计算资源,提高查询速度,还可以不断更新存储的查询结果。
可选的,所述数据库中存储的查询结果设置有预设存储时长;
所述方法还可以包括如下一项:
若第二查询结果在所述预设存储时长内未被加载,则从所述数据库中删除所述第二查询结果;
若所述第二查询结果的存储时长达到所述预设存储时长,则从所述数据库中删除所述第二查询结果;
其中,所述第二查询结果为所述数据库中存储的查询结果中设置有所述预设存储时长的查询结果。
本发明实施例中,可以为存储的查询结果中的部分或者全部设置预设存储时长,其中,不同查询结果设置的预设存储时长可以相同,也可以不同。例如,例如,出现频次越多的子查询语句对应的预设存储时长越长。上述第二查询结果可以是设置有预设存储时长的任一查询结果。
在一实施方式中,可以在设置有预设存储时长的查询结果在其对应的预存储设时长内未被加载或调用的情况下,说明该查询结果调用频次较少,可以直接从所述数据库中删除该查询结果,以节省存储空间和提高查询效率。
在另一实施方式中,可以在设置有预设存储时长的查询结果的存储时长达到其对应的预设存储时长的情况下,直接从所述数据库中删除该查询结果,不管该查询结果在该预设存储时长内是否被调用,以节省存储空间。
本发明实施例通过为数据库中存储的查询结果设置预设存储时长,并可删除查询结果中在其对应的预设存储时长内未被调用或存储时间超过其对应的预设存储时长的查询结果,不仅可以节省存储空间,还可以提高查询效率。
可选的,所述若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果之后,所述方法还包括:
重新设置所述第一查询结果在所述数据库中的预设存储时长。
例如,在加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果之后,可以增大第一查询结果对应的预设存储时长,这样可以避免一些较常使用的查询结果被删除,进而可以提高数据查询效率。
可选的,所述获取目标查询语句中的目标子查询语句之前,所述方法还包括:
获取N条历史查询语句中的子查询语句,得到子查询语句集合,其中,所述N条历史查询语句中的每条查询语句均包括子查询语句,N为正整数;
统计所述子查询语句集合中各个子查询语句的出现频次;
确定所述子查询语句集合中出现频次大于预设频次的第一子查询语句;
存储所述第一子查询语句中每个子查询语句和其对应的查询结果至所述数据库。
本发明实施例中,上述N条历史查询语句可以包括最近一时间段内所使用的查询语句,例如,最近一个月所使用的查询语句或是最近一个星期所使用的查询语句等。其中,N的值可以根据实际需求进行合理设置,例如,300条、500条、800条等。上述预设频次可以根据实际需求进行合理设置,例如,3、5等。
实际应用中,可以预先统计在多条历史查询语句中各个子查询语句的出现频次,并可以将一些出现频次较多的子查询语句及其对应的查询结果存储至数据库,也即将一些较为常用的子查询语句及其对应的查询结果存储至数据库,这样在后续依据子查询语句进行数据查询的过程中,可以快速的查询到那些较为常用的子查询语句对应的查询结果。
可选的,本发明实施例在确定所述子查询语句集合中出现频次大于预设频次的第一子查询语句之后,还可以仅对目标查询语句中属于第一子查询语句的子查询语句执行上述步骤102和步骤103。
以下以目标查询语句为SQL查询语句为例对本发明实施例进行说明:
参见图3,本发明实施例提供的数据处理方法可以包括以下步骤:
步骤301、解析SQL查询语句,生成SQL语法树。
该步骤中,可以通过Apache Calcite对SQL查询语句进行解析,并生成SQL语法树。
步骤302、读取subquery.cache.expire.time配置项取值。
步骤303、判断取值是否为true。
该步骤中,若subquery.cache.expire.time配置项取值为true,则执行步骤304,否则结束流程。
步骤304、遍历SQL语法树各节点,获取SQL查询语句中所有子查询语句。
步骤305、查询子查询语句对应的存储地址。
该步骤中,根据获取到的子查询语句,在MySQL数据库中查询对应的存储地址,也即该子查询语句对应的查询结果对应的数据文件路径。
步骤306、根据存储地址加载数据文件。
该步骤中,若查询到子查询语句对应的存储地址,则根据存储地址从HDFS中加载数据文件,也即上述子查询语句对应的查询结果。进而可以基于从HDFS中加载的查询结果进行后续的计算任务。
步骤307、对未存储对应查询结果的子查询语句进行计算。
该步骤中,对于为查询到对应的存储地址的子查询语句,可以根据该子查询语句进行数据查询。
步骤308、存储查询结果至HDFS。
该步骤中,可以将步骤307所得到的查询结果存储至HDFS。
步骤309、将子查询语句以及查询结果的存储地址存储于MySQL数据库。
可选的,本发明实施例还可以配置存储的各个查询结果的有效期(也即上述的预设存储时长),例如,可以分别为存储的各个查询结果设置配置项subquery.cache.expire.time,其取值用于指示存储的各个查询结果的预设存储时长,例如,24小时。这样可以清理超期的查询结果,以节省存储空间。具体的,子查询语句的查询结果的清理可以包括如下步骤:
步骤a、读取配置项subquery.cache.expire.time的取值。
步骤b、在subquery.cache.expire.time所设定的时间过后,对MySQL数据库中子查询语句存储表进行扫描。
步骤c、若某存储项创建时间加上subquery.cache.expire.time所设置的时间小于当前时间,则删除该条存储项。
步骤d、读取配置项subquery.cache.expire.time的取值,作为下一次定时时间。
本发明实施例基于SQL查询语句的语法分析,识别出SQL查询语句中包含的子查询语句,并对子查询语句对应的查询结果进行存储,来提升后续相似SQL查询语句的执行效率,可以节省计算资源,并缩短查询执行所需要的时间。
参见图4,图4是本发明实施例提供的数据处理装置的结构图。如图4所示,数据处理装置400包括:
第一获取模块401,用于获取目标查询语句中的目标子查询语句;
第一查询模块402,用于查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;
加载模块403,用于若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
可选的,所述装置还包括:
第二查询模块,用于若未获取到所述第一查询结果,则根据所述目标子查询语句进行数据查询,得到所述目标子查询语句的查询结果;
第一存储模块,用于存储所述目标子查询语句和所述目标子查询语句的查询结果至所述数据库。
可选的,所述第一查询模块具体用于:
检索所述数据库中是否存在与所述目标子查询语句对应的第一存储地址,其中,所述第一存储地址为所述目标子查询语句对应的第一查询结果的存储地址;
所述加载模块具体用于:
若所述数据库中存在与所述目标子查询语句对应的第一存储地址,则根据所述第一存储地址从文件系统中加载所述目标子查询语句对应的第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
可选的,所述数据库中存储的查询结果设置有预设存储时长;
所述装置还包括删除模块,用于如下一项:
若第二查询结果在所述预设存储时长内未被加载,则从所述数据库中删除所述第二查询结果;
若所述第二查询结果的存储时长达到所述预设存储时长,则从所述数据库中删除所述第二查询结果;
其中,所述第二查询结果为所述数据库中存储的查询结果中设置有所述预设存储时长的查询结果。
可选的,所述装置还包括:
设置模块,用于所述若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果之后,重新设置所述第一查询结果在所述数据库中的预设存储时长。
可选的,所述装置还包括:
第二获取模块,用于所述获取目标查询语句中的目标子查询语句之前,获取N条历史查询语句中的子查询语句,得到子查询语句集合,其中,所述N条历史查询语句中的每条查询语句均包括子查询语句,N为正整数;
统计模块,用于统计所述子查询语句集合中各个子查询语句的出现频次;
确定模块,用于确定所述子查询语句集合中出现频次大于预设频次的第一子查询语句;
第二存储模块,用于存储所述第一子查询语句中每个子查询语句和其对应的查询结果至所述数据库。
可选的,所述第一获取模块具体用于:
解析所述目标查询语句,得到所述目标查询语句的语法树;
遍历所述语法树的各个节点,得到所述目标查询语句中的目标子查询语句。
数据处理装置400能够实现上述方法实施例的数据处理方法的各个过程,并达到相同的效果为避免重复,这里不再赘述。
本发明实施例的数据处理装置400,第一获取模块401,用于获取目标查询语句中的目标子查询语句;第一查询模块402,用于查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;加载模块403,用于若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。不仅可以在数据查询过程中节省计算资源,还可以提高数据查询效率。
本发明实施例还提供一种数据处理装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一方法实施例的数据处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
参见图5,图5是本发明又一实施提供的数据处理装置的结构图,如图5所示,数据处理装置500包括:处理器501、存储器502及存储在所述存储器502上并可在所述处理器上运行的计算机程序,数据处理装置500中的各个组件通过总线接口503耦合在一起,所述计算机程序被所述处理器501执行时实现如下步骤:
获取目标查询语句中的目标子查询语句;
查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;
若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
可选的,所述计算机程序被所述处理器501执行时还用于:
若未获取到所述第一查询结果,则根据所述目标子查询语句进行数据查询,得到所述目标子查询语句的查询结果;
存储所述目标子查询语句和所述目标子查询语句的查询结果至所述数据库。
可选的,所述计算机程序被所述处理器501执行时还用于:
检索所述数据库中是否存在与所述目标子查询语句对应的第一存储地址,其中,所述第一存储地址为所述目标子查询语句对应的第一查询结果的存储地址;
若所述数据库中存在与所述目标子查询语句对应的第一存储地址,则根据所述第一存储地址从文件系统中加载所述目标子查询语句对应的第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
可选的,所述数据库中存储的查询结果设置有预设存储时长;
所述计算机程序被所述处理器501执行时还用于:
若第二查询结果在所述预设存储时长内未被加载,则从所述数据库中删除所述第二查询结果;
若所述第二查询结果的存储时长达到所述预设存储时长,则从所述数据库中删除所述第二查询结果;
其中,所述第二查询结果为所述数据库中存储的查询结果中设置有所述预设存储时长的查询结果。
可选的,所述计算机程序被所述处理器501执行时还用于:
所述若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果之后,重新设置所述第一查询结果在所述数据库中的预设存储时长。
可选的,所述计算机程序被所述处理器501执行时还用于:
所述获取目标查询语句中的目标子查询语句之前,获取N条历史查询语句中的子查询语句,得到子查询语句集合,其中,所述N条历史查询语句中的每条查询语句均包括子查询语句,N为正整数;
统计所述子查询语句集合中各个子查询语句的出现频次;
确定所述子查询语句集合中出现频次大于预设频次的第一子查询语句;
存储所述第一子查询语句中每个子查询语句和其对应的查询结果至所述数据库。
可选的,所述计算机程序被所述处理器501执行时还用于:
解析所述目标查询语句,得到所述目标查询语句的语法树;
遍历所述语法树的各个节点,得到所述目标查询语句中的目标子查询语句。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取目标查询语句中的目标子查询语句;
查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;
若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若未获取到所述第一查询结果,则根据所述目标子查询语句进行数据查询,得到所述目标子查询语句的查询结果;
存储所述目标子查询语句和所述目标子查询语句的查询结果至所述数据库。
3.根据权利要求1所述的方法,其特征在于,所述查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,包括:
检索所述数据库中是否存在与所述目标子查询语句对应的第一存储地址,其中,所述第一存储地址为所述目标子查询语句对应的第一查询结果的存储地址;
所述若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果,包括:
若所述数据库中存在与所述目标子查询语句对应的第一存储地址,则根据所述第一存储地址从文件系统中加载所述目标子查询语句对应的第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述数据库中存储的查询结果设置有预设存储时长;
所述方法还包括如下一项:
若第二查询结果在所述预设存储时长内未被加载,则从所述数据库中删除所述第二查询结果;
若所述第二查询结果的存储时长达到所述预设存储时长,则从所述数据库中删除所述第二查询结果;
其中,所述第二查询结果为所述数据库中存储的查询结果中设置有所述预设存储时长的查询结果。
5.根据权利要求4所述的方法,其特征在于,所述若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果之后,所述方法还包括:
重新设置所述第一查询结果在所述数据库中的预设存储时长。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述获取目标查询语句中的目标子查询语句之前,所述方法还包括:
获取N条历史查询语句中的子查询语句,得到子查询语句集合,其中,所述N条历史查询语句中的每条查询语句均包括子查询语句,N为正整数;
统计所述子查询语句集合中各个子查询语句的出现频次;
确定所述子查询语句集合中出现频次大于预设频次的第一子查询语句;
存储所述第一子查询语句中每个子查询语句和其对应的查询结果至所述数据库。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述获取目标查询语句中的目标子查询语句,包括:
解析所述目标查询语句,得到所述目标查询语句的语法树;
遍历所述语法树的各个节点,得到所述目标查询语句中的目标子查询语句。
8.一种数据处理装置,其特征在于,包括:
第一获取模块,用于获取目标查询语句中的目标子查询语句;
第一查询模块,用于查询数据库中是否存储有与所述目标子查询语句对应的第一查询结果,所述第一查询结果为历史依据查询语句执行数据查询所得到的查询结果;
加载模块,用于若所述数据库中存储有所述第一查询结果,则加载所存储的所述第一查询结果,并将所述第一查询结果作为所述目标子查询语句的查询结果。
9.一种数据处理装置,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据处理方法的步骤。
CN201911324348.5A 2019-12-20 2019-12-20 一种数据处理方法及装置 Pending CN113010539A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911324348.5A CN113010539A (zh) 2019-12-20 2019-12-20 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911324348.5A CN113010539A (zh) 2019-12-20 2019-12-20 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN113010539A true CN113010539A (zh) 2021-06-22

Family

ID=76381684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911324348.5A Pending CN113010539A (zh) 2019-12-20 2019-12-20 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN113010539A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416784A (zh) * 2022-03-28 2022-04-29 北京奥星贝斯科技有限公司 处理数据库查询语句的方法、装置及原生分布式数据库
CN117390064A (zh) * 2023-12-12 2024-01-12 天津南大通用数据技术股份有限公司 一种基于可嵌入子图的数据库查询优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123288A (zh) * 2013-04-24 2014-10-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN107315744A (zh) * 2016-04-26 2017-11-03 杭州海康威视数字技术股份有限公司 一种数据查询方法及装置
CN107402926A (zh) * 2016-05-18 2017-11-28 华为技术有限公司 一种查询方法以及查询设备
US20190236185A1 (en) * 2018-01-26 2019-08-01 Vmware, Inc. Splitting a time-range query into multiple sub-queries for serial execution

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123288A (zh) * 2013-04-24 2014-10-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN107315744A (zh) * 2016-04-26 2017-11-03 杭州海康威视数字技术股份有限公司 一种数据查询方法及装置
CN107402926A (zh) * 2016-05-18 2017-11-28 华为技术有限公司 一种查询方法以及查询设备
US20190236185A1 (en) * 2018-01-26 2019-08-01 Vmware, Inc. Splitting a time-range query into multiple sub-queries for serial execution

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416784A (zh) * 2022-03-28 2022-04-29 北京奥星贝斯科技有限公司 处理数据库查询语句的方法、装置及原生分布式数据库
CN117390064A (zh) * 2023-12-12 2024-01-12 天津南大通用数据技术股份有限公司 一种基于可嵌入子图的数据库查询优化方法
CN117390064B (zh) * 2023-12-12 2024-03-19 天津南大通用数据技术股份有限公司 一种基于可嵌入子图的数据库查询优化方法

Similar Documents

Publication Publication Date Title
EP2695087B1 (en) Processing data in a mapreduce framework
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
US11907220B2 (en) Optimizing query processing and routing in a hybrid workload optimized database system
CN110968593B (zh) 数据库sql语句优化方法、装置、设备和存储介质
US10191947B2 (en) Partitioning advisor for online transaction processing workloads
CN109582155B (zh) 输入联想词的推荐方法、装置、存储介质及电子设备
CN113010539A (zh) 一种数据处理方法及装置
CN111435406A (zh) 一种纠正数据库语句拼写错误的方法和装置
CN108664492B (zh) 一种向用户推送内容的方法、装置、电子设备和存储介质
CN110704472A (zh) 数据查询统计方法及装置
CN111258819A (zh) MySQL数据库备份文件的数据获取方法、装置和系统
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN112434037A (zh) 数据处理方法、处理装置、数据处理设备和存储介质
CN110888909B (zh) 一种评估内容的数据统计处理方法及装置
CN110727666A (zh) 面向工业互联网平台的缓存组件、方法、设备及存储介质
CN112765118B (zh) 一种日志查询方法、装置、设备及存储介质
CN112765200A (zh) 一种基于Elasticsearch的数据查询方法及装置
CN115827663A (zh) 一种物化视图的方法以及相关设备
CN109388658B (zh) 一种数据确定方法和装置
US10671587B2 (en) Reduced fixed length sort of variable length columns
CN111639099A (zh) 全文索引方法及系统
CN114428789B (zh) 数据的处理方法及装置
CN111694891B (zh) 一种数据表处理方法及装置
Schäfer et al. Sampling with incremental mapreduce
CN114201525B (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