一种基于数据集分组的分析方法、装置、设备及介质制造方法及图纸

技术编号:26762424 阅读:95 留言:0更新日期:2020-12-18 23:11
本发明专利技术公开了一种基于数据集分组的分析方法、装置、设备及介质。该方法包括:接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的重复数据行,得到所述连接操作符的左节点;在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。上述方案可以将输入数据集进行分组之后再进行分析,有效解决了当结果集只需部分的数据组时,现有的分组分析方法效率较低的问题,实现了数据集的高效率分组分析。

【技术实现步骤摘要】
一种基于数据集分组的分析方法、装置、设备及介质
本专利技术实施例涉及数据处理技术,尤其涉及一种基于数据集分组的分析方法、装置、设备及介质。
技术介绍
数据库分析函数可以基于对数据行的分组来计算相关值。分析函数需要先对数据行进行分组,然后对一组数据再进行其他操作,最后按组输出数据集。现有技术中,数据库管理系统可以使用一个操作符完成分析函数的计算,在一个操作符中完成分组和其他操作。所有数据输入操作符,操作符输出分析函数的结果。输入所有数据,输出的也是所有数据。当结果集只需部分的数据组时,分析函数过程并不需要全部完成,现有的分组分析方法效率较低,无法高效率实现数据集的部分分组分析。
技术实现思路
本专利技术提供一种基于数据集分组的分析方法、装置、设备及介质,以解决当结果集只需部分的数据组时,现有的分析方法效率较低的问题,高效率实现数据集的部分分组分析。第一方面,本专利技术实施例提供了一种基于数据集分组的分析方法,该方法包括:接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。第二方面,本专利技术实施例还提供了一种基于数据集分组的分析装置,该装置包括:确定模块、第一执行模块、第二执行模块和输出模块,其中,确定模块,用于接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;第一执行模块,用于去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;第二执行模块,用于在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;输出模块,用于根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。第三方面,本专利技术实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的基于数据集分组的分析方法。第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的基于数据集分组的分析方法。本专利技术通过接收到结构化查询语句(StructuredQueryLanguage,SQL)后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集,解决当结果集只需部分的数据组时,现有的分析方法效率较低的问题,实现了数据集的部分分析。附图说明图1为本专利技术实施例一提供的一种基于数据集分组的分析方法的流程图;图2为本专利技术实施例二提供的一种基于数据集分组的分析方法的流程图;图3为本专利技术实施例二提供的一种基于数据集分组的分析方法实现图;图4为本专利技术实施例三提供的一种基于数据集分组的分析装置的结构图;图5为本专利技术实施例四提供的一种计算机设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。实施例一图1为本专利技术实施例一提供的一种基于数据集分组的分析方法的流程图,本实施例可适用于当结果集只需部分的数据组时,现有的分析方法效率较低的情况,该方法可以由计算机来执行,具体包括如下步骤:步骤110、接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符。用户向数据库管理系统输入SQL语句,可以触发对数据集的分组分析。当输入的SQL语句包括TOP子句或输入的数据集满足预设条件时,可以采用分组的分析方法对数据集进行处理。其中,预设条件可以包括,数据集包括多个相同数据行组成的数据组。当数据集中键值重复的数据行较多,且数据组数较少时,可以采用分组的分析方法对数据集进行处理。若数据集中数据组数较多时,采用分组的分析方法对数据集进行处理不能获得更优的性能,可以采用系统的查询优化器进行分析及选择。SQL语句是一种特殊目的的编程语言、数据库查询和程序设计语言,可以用于存取数据以及查询、更新和管理关系数据库系统。SQL语句中TOP子句可以用于提取排在靠前的数据集记录。操作符可以包括AFUN操作符和嵌套内连接操作符NLI。本实施例中,连接操作符可以包括嵌套内连接操作符NLI,可以用于连接数据表。步骤120、去除输入数据集的键值重复数据行,得到连接操作符的左节点。数据集可以包括多个键值重复的数据行,键值重复的数据行可以组成一个数据组,数据集可以包括多个数据组。左节点可以包括连接操作符的左孩子。具体地,左节点可以包括PARTITIONBY项数据集去除重复键值后得到的数据集。PARTITIONBY是数据库中分析性函数的一部分,可以返回一个分组中的多条记录,PARTITIONBY可以用于给数据集分组。当然,如果没有指定,PARTITIONBY可以把整个结果集作为一个分组。PARTITIONBY项的每一项,都可以来自具体的表或者视图,对应的表或视图即为一个计划树中的节点,以上述节点的上层计划树节点为根的子计划树可以为PARTITIONBY项数据集。当PARTITIONBY项数据集包括多列数据时,PARTITIONBY项数据集去除重复键值后得到的数据集可以包括多个多列的数据行。步骤130、在匹配条件下,根据左节点,对连接操作符的右节点进行探测匹配,确定中间结果集。以匹配条件作为约束条件,通过左节点中的数据行,到连接操作符的右节点中进行探测匹配,若得到满足匹配条件的右节点中的目标数据行,则可以根据左节点的数据行和右节点的目标数据行确定中间结果集。中间结果集可以包括左节点和右节点的所有数据列,也可以包括其中部分数据列,中间结果集数据列的选取可以根据实际需求和分析函数进行具体确定。连接操作符的右节点本文档来自技高网...

【技术保护点】
1.一种基于数据集分组的分析方法,其特征在于,包括:/n接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;/n去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;/n在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;/n根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。/n

【技术特征摘要】
1.一种基于数据集分组的分析方法,其特征在于,包括:
接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。


2.根据权利要求1所述的方法,其特征在于,若输入数据集满足预设条件,则确定操作符包括连接操作符,包括:
若输入数据集的组数小于预设组数,则确定执行计划包括连接操作符。


3.根据权利要求1所述的方法,其特征在于,去除输入数据集的重复数据行,得到所述连接操作符的左节点,包括:
获取包含分组项的子执行计划;
去除所述子执行计划的键值重复数据行,得到所述连接操作符的左节点。


4.根据权利要求1所述的方法,其特征在于,在预设匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集,包括:
在匹配条件下,在右节点中找寻与所述左节点匹配的目标数据行;
根据所述左节点和目标数据行,确定中间结果集。


5.根据权利要求1所述的方法,其特征在于,根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集,包括:
根据中间结果集,确定所述中间结果集的行数;
若所述中间结果集的行数大于预设行数,确定所述结果集包括当前中间结果集及之前中间结果集,并...

【专利技术属性】
技术研发人员:张钦朱仲颖万伟
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海;31

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

1