CN112100199B - 一种基于数据集分组的分析方法、装置、设备及介质 - Google Patents
一种基于数据集分组的分析方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112100199B CN112100199B CN202010995383.6A CN202010995383A CN112100199B CN 112100199 B CN112100199 B CN 112100199B CN 202010995383 A CN202010995383 A CN 202010995383A CN 112100199 B CN112100199 B CN 112100199B
- Authority
- CN
- China
- Prior art keywords
- result set
- intermediate result
- determining
- data set
- input data
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据集分组的分析方法、装置、设备及介质。该方法包括:接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的重复数据行,得到所述连接操作符的左节点;在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。上述方案可以将输入数据集进行分组之后再进行分析,有效解决了当结果集只需部分的数据组时,现有的分组分析方法效率较低的问题,实现了数据集的高效率分组分析。
Description
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种基于数据集分组的分析方法、装置、设备及介质。
背景技术
数据库分析函数可以基于对数据行的分组来计算相关值。分析函数需要先对数据行进行分组,然后对一组数据再进行其他操作,最后按组输出数据集。
现有技术中,数据库管理系统可以使用一个操作符完成分析函数的计算,在一个操作符中完成分组和其他操作。所有数据输入操作符,操作符输出分析函数的结果。输入所有数据,输出的也是所有数据。
当结果集只需部分的数据组时,分析函数过程并不需要全部完成,现有的分组分析方法效率较低,无法高效率实现数据集的部分分组分析。
发明内容
本发明提供一种基于数据集分组的分析方法、装置、设备及介质,以解决当结果集只需部分的数据组时,现有的分析方法效率较低的问题,高效率实现数据集的部分分组分析。
第一方面,本发明实施例提供了一种基于数据集分组的分析方法,该方法包括:
接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。
第二方面,本发明实施例还提供了一种基于数据集分组的分析装置,该装置包括:确定模块、第一执行模块、第二执行模块和输出模块,其中,
确定模块,用于接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
第一执行模块,用于去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
第二执行模块,用于在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
输出模块,用于根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的基于数据集分组的分析方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的基于数据集分组的分析方法。
本发明通过接收到结构化查询语句(Structured Query Language,SQL)后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集,解决当结果集只需部分的数据组时,现有的分析方法效率较低的问题,实现了数据集的部分分析。
附图说明
图1为本发明实施例一提供的一种基于数据集分组的分析方法的流程图;
图2为本发明实施例二提供的一种基于数据集分组的分析方法的流程图;
图3为本发明实施例二提供的一种基于数据集分组的分析方法实现图;
图4为本发明实施例三提供的一种基于数据集分组的分析装置的结构图;
图5为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1为本发明实施例一提供的一种基于数据集分组的分析方法的流程图,本实施例可适用于当结果集只需部分的数据组时,现有的分析方法效率较低的情况,该方法可以由计算机来执行,具体包括如下步骤:
步骤110、接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符。
用户向数据库管理系统输入SQL语句,可以触发对数据集的分组分析。当输入的SQL语句包括TOP子句或输入的数据集满足预设条件时,可以采用分组的分析方法对数据集进行处理。
其中,预设条件可以包括,数据集包括多个相同数据行组成的数据组。当数据集中键值重复的数据行较多,且数据组数较少时,可以采用分组的分析方法对数据集进行处理。若数据集中数据组数较多时,采用分组的分析方法对数据集进行处理不能获得更优的性能,可以采用系统的查询优化器进行分析及选择。
SQL语句是一种特殊目的的编程语言、数据库查询和程序设计语言,可以用于存取数据以及查询、更新和管理关系数据库系统。
SQL语句中TOP子句可以用于提取排在靠前的数据集记录。
操作符可以包括AFUN操作符和嵌套内连接操作符NLI。本实施例中,连接操作符可以包括嵌套内连接操作符NLI,可以用于连接数据表。
步骤120、去除输入数据集的键值重复数据行,得到连接操作符的左节点。
数据集可以包括多个键值重复的数据行,键值重复的数据行可以组成一个数据组,数据集可以包括多个数据组。
左节点可以包括连接操作符的左孩子。具体地,左节点可以包括PARTITION BY项数据集去除重复键值后得到的数据集。
PARTITION BY是数据库中分析性函数的一部分,可以返回一个分组中的多条记录,PARTITION BY可以用于给数据集分组。当然,如果没有指定,PARTITION BY可以把整个结果集作为一个分组。
PARTITION BY项的每一项,都可以来自具体的表或者视图,对应的表或视图即为一个计划树中的节点,以上述节点的上层计划树节点为根的子计划树可以为PARTITION BY项数据集。
当PARTITION BY项数据集包括多列数据时,PARTITION BY项数据集去除重复键值后得到的数据集可以包括多个多列的数据行。
步骤130、在匹配条件下,根据左节点,对连接操作符的右节点进行探测匹配,确定中间结果集。
以匹配条件作为约束条件,通过左节点中的数据行,到连接操作符的右节点中进行探测匹配,若得到满足匹配条件的右节点中的目标数据行,则可以根据左节点的数据行和右节点的目标数据行确定中间结果集。
中间结果集可以包括左节点和右节点的所有数据列,也可以包括其中部分数据列,中间结果集数据列的选取可以根据实际需求和分析函数进行具体确定。
连接操作符的右节点可以包括连接操作符的右孩子。左节点、右节点、左孩子和右孩子可以用于对连接操作符的两个节点进行区分。
另外,匹配条件可以根据分析函数进行确定。
例如,当分析函数包括:
SUM(C3)OVER(PARTITION BY C1)
FROM T1,T2
WHERE C1=D1 AND C2=D2);
且语句中包括TOP子句时,匹配条件可以包括查询表T1、T2中满足C1=D1 AND C2=D2条件的C1、C3及C1列相等的记录的C3列值的和。
中间结果集可以包括满足匹配条件的数据行中的C1、C3及C1列相等的记录的C3列值的和。
步骤140、根据中间结果集,确定并输出分析输入数据集得到的结果集。
结果集的行数可以根据TOP子句包含的条件进行确定。
当TOP子句包括SELECT TOP 4*FROM时,结果集的行数可以包括中间结果集的前4行。
所以在得到当前中间结果集之后,可以对当前中间结果集的行数进行确定;若当前中间结果集的行数与前述中间结果集的行数之和大于或者等于TOP子句包含的条件,则确定结果集并输出,且结果集的行数可以为当前中间结果集的行数与前述中间结果集的行数之和。
本发明实施例一提供一种基于数据集分组的分析方法,该方法包括:接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集,解决当结果集只需部分的数据组时,现有的分析方法效率较低的问题,实现了数据集的部分分析。
实施例二
图2为本发明实施例二提供的一种基于数据集分组的分析方法的流程图,本实施例是在上述实施例的基础上进行具体化。在本实施例中,该方法还可以包括:
步骤210、接收到结构化查询语句SQL后,对SQL语言进行语法识别,获取SQL语句所包含的分析函数。
具体地,输入的SQL语句包含的分析函数可以包括对数据集的处理方法。具体地,对数据集的处理方法可以包括通过左节点探测匹配右节点,并提取左节点数据和右节点数据的方法。
提取到的左节点和右节点的数据行可以包括满足条件的全部左节点数据行和右节点数据行,也可以包括满足条件的部分左节点数据行和右节点数据行。
对SQL语句的处理可以包括语法分析、语义分析、查询优化、生成执行计划和执行计划。本实施例提出的基于数据集分组的分析方法可以作用于生成执行计划阶段。
步骤220、根据分析函数,确定匹配条件。
具体地,分析函数可以确定匹配条件。不同的分析函数可以对应不同的匹配条件,同一分析函数也可以包括不同的匹配条件。具体的匹配条件可以根据实际需求进行设定,在此不做具体限定。
步骤230、若输入数据集的组数小于预设组数,则确定执行计划包括连接操作符。
当输入数据集的键值重复数据行较多且输入数据集的组数较少时,NLI的循环次数也较少,采用本实例所述的方法可以提升对输入数据集分组分析的效率。当输入数据集的键值重复数据行较少或者输入数据集的组数较多时,本实施例所述的方法对输入数据集进行分析的效率提升不大。
具体地,当输入数据集的组数小于预设组数时,可以采用本实例所述的方法对输入数据集进行分析。预设组数可以包括四组或者六组等,在此不做具体限定,可以根据具体的分析函数进行限定。
步骤240、去除输入数据集的键值重复数据行,得到连接操作符的左节点。
一种实施方式中,步骤240具体包括:
获取包含分组项的子执行计划。
去除所述子执行计划的键值重复数据行,得到所述连接操作符的左节点。
具体地,键值重复数据行可以组成数据组,实现对输入数据集的分组。多个数据组可以组成数据集
根据分组结果,去除目标数据组的键值重复数据行,得到连接操作符的左节点。
具体地,可以采用DISTINCT操作符去除目标数据组的键值重复数据行。
采用DISTINCT操作符去除目标数据组的键值重复数据行的执行计划可以包括:
NLI
---DISTINCT P/*根据PARTITION BY项去除重复数据*/
------REP_L
---AFUN*(NO PARTITION BY)
------L_CHILD*
去除键值重复数据行之后,将剩余的数据行连接可以得到左节点。
例如,若PARTITION BY子句包括PARTIONTION BY A.C1,则REP_L为A;若PARTITIONBY子句包括PARTITION BY B.C2,C.C2,那么表B和表C需要进行连接,REP_L可以为如下所示。
CROSS
---B
---C
若PARTITION BY子句包括PARTITION BY A.C1,B.C2,C.C2,则REP_L可以为如下所示。
CROSS1
---A
---CROSS2
-----B
-----C
步骤250、在预设匹配条件下,根据左节点,对连接操作符的右节点进行探测匹配,确定中间结果集。
一种实施方式中,步骤250具体包括:
在预设匹配条件下,在右节点中找寻与左节点匹配的目标数据行。
具体地,左节点和右节点中相互匹配的数据行的行数不做具体限定。例如,左节点中的一行数据,可以与右节点中的多行数据相匹配;左节点中的多行数据,可以与右节点中的一行数据相匹配。具体的匹配数据行可以根据实际数据集进行确定。
根据左节点和目标数据行,确定中间结果集。
具体地,若数据集包括多列数据,则中间结果集包括的数据列可以根据分析函数确定。
当分析函数包括:
(SELECT C1,C3,SUM(C3)OVER(PARTITION BY C1)RK,
中间结果集可以包括C1、C3及C1列相等的记录的C3列值的和,且C1列相等的记录的C3列值的和列名可以为RK。
当然,在实际应用中,中间结果集也可以包括右节点的数据列,中间结果集具体的数据行可以根据具体的分析函数,以及具体的需求进行确定。
步骤260、若左节点不存在对应的中间结果集,则确定中间结果集为空。
具体地,若按照匹配条件,在右节点中找寻不到与左节点相匹配的数据行,则确定结果集为空集,没有输出。
另外,若按照匹配条件,在右节点中不能找寻到与左节点其中一个或者多个数据行相匹配的数据行,则确定左节点其中的一个或者多个数据行的中间结果集为空集。之后可以继续执行在右节点中找寻与左节点其他数据行相匹配的数据行,并确定为中间结果集。
步骤270、根据中间结果集,确定并输出分析输入数据集得到的结果集。
一种实施方式中,步骤270具体包括:
根据中间结果集,确定中间结果集的行数。
具体地,通过左节点的当前数据行,可以在右节点中找寻到与之匹配的目标数据行,目标数据行的行数确定为当前中间结果集的行数。
通过左节点的多个数据行,可以在右节点中找寻到与之匹配的多个目标数据行,多个目标数据行的行数确定为中间结果集的行数。
若中间结果集的行数大于或者等于预设行数,确定结果集包括当前中间结果集及之前中间结果集,并输出分析输入数据集得到的结果集。
其中,预设行数可以根据TOP子句确定。
当中间结果集的行数等于TOP子句包括的预设行数时,中间结果集可以输出为结果集,结果集可以包括当前中间结果集和之前中间结果集。若当前中间结果集的行数与之前中间结果集的行数之和大于预设行数,且之前结果集的行数小于预设行数,结果集也可以包括当前中间结果集和之前中间结果集。
另外,当输入数据集的组数较少时,也可以输出所有的中间结果集。那么可以预设行数可以包括输入数据集的组数,或者可以不对结果集的行数进行限定,持续输出中间结果集,直至左节点的数据行匹配结束。
本发明实施例二提供一种基于数据集分组的分析方法,该方法包括:接收到结构化查询语句SQL后,对SQL语言进行语法识别,获取SQL语句所包含的分析函数,根据分析函数,确定匹配条件,若输入数据集的组数小于预设组数,则确定操作符包括连接操作符,去除输入数据集的键值重复数据行,得到连接操作符的左节点,在预设匹配条件下,根据左节点,对连接操作符的右节点进行探测匹配,确定中间结果集,若左节点不存在对应的中间结果集,则确定中间结果集为空,根据中间结果集,确定并输出分析输入数据集得到的结果集。上述方案可以将输入数据集进行分组之后再进行分析,有效解决了当结果集只需部分的数据组时,现有的分组分析方法效率较低的问题,实现了数据集的高效率分组分析。
图3为本发明实施例二提供的一种基于数据集分组的分析方法的实现流程图,示例性的给出了其中一种实现方式。如图3所示,
在执行本实施例提供的基于数据集分组的分析方法之前,可以先创建表T1和T2,其中表T1可以包括C1、C2、C3三列,表T2可以包括D1、D2两列:
CREATE TABLE T1(C1 CHAR,C2 INT,C3 INT);
CREATE TABLE T2(D1 CHAR,D2 INT);
其中,表1可以包括表T1和表T2的数据,具体如下:
表1:T1和T2的数据
下面的语句包含分析函数SUM(C3)OVER(PARTITION BY C1),且语句中包括TOP子句。语句的含义可以为:查询表T1、T2中满足C1=D1 AND C2=D2条件的C1、C3及C1列相等的记录的C3列值的和。
SELECT TOP 4*FROM
(SELECT C1,C3,SUM(C3)OVER(PARTITION BY C1)RK
FROM T1,T2
WHERE C1=D1 AND C2=D2);
本实施例中,上述语句的执行计划可如下所示:
TOP
---PRJT
------NLI TMP.C1=T1.C1
---------DISTINCT T1(TMP)
---------AFUN*(NO PARTITION BY)
------------CROSS
---------------T1(C1=TMP.C1)
---------------T2
其中,若T1和T2的数据如表1所示,执行计划的执行过程可以具体如下:
步骤310、执行NLI操作符的左儿子DISTINCT T1(TMP)。
其中,DISTINCT表示去除重复值,TMP为PARTITION BY项去除重复值后形成的临时表,若PARTITION BY项为C1,则TMP为仅有C1列的表,数据可以包括(A,B,C..),不需要得到全部DISTINCT值,可以先获取一批即可进行步骤320。
左儿子可以对应前述实施例中的左节点。
步骤320、取TMP表的第一行数据为A,到NLI操作符的右儿子中进行探测匹配。
其中,右儿子可以对应前述实施例中的右节点。
匹配条件可以包括:C1=A(C1=TMP.C1,此时TMP.C1为A)的结果集,对应表T1的行号为(1,2,3,4,5)。
步骤330、将表T1、T2进行连接,确定满足匹配条件的中间结果集。
其中,满足C1=D1 AND C2=D2的中间结果集有三行,如表2所示:
表2:组1的中间结果集
T1行号 | C1 | C2 | C3 | T2行号 | D1 | D2 |
3 | A | 33 | 3 | 1 | A | 33 |
4 | A | 33 | 4 | 1 | A | 33 |
5 | A | 33 | 4 | 1 | A | 33 |
步骤340、基于前述中间结果集确定AFUN*的值,并输出给NLI操作符,NLI操作符也继续向上层操作符输出此结果集。
具体可以如表3所示,第一组执行结束。
表3:组1的分组分析结果
C1 | C3 | RK |
A | 3 | 11 |
A | 4 | 11 |
A | 4 | 11 |
步骤350、确定中间结果集的行数,若行数大于TOP子句包含的行数,则输出中间结果集为结果集;若行数小于TOP子句包含的行数,则继续执行步骤310,通过左儿子中的数据行进行继续右儿子的匹配探索。
具体探索过程可以如下:
回到NLI操作符,取其左儿子的下一个DISTINCT值,即TMP表的下一行数据,得到B,开始第二组的执行;
以B到NLI操作符的右儿子进行探测匹配,子集T1得到满足过滤条件C1=B的结果集,对应表T1的行号为(6,7,8);
表T1、T2进行连接,没有满足C1=D1 AND C2=D2的中间结果集,则AFUN*的左儿子没有中间结果集,没有输出,第二组执行结束;
回到NLI操作符,取其左儿子的下一个DISTINCT值,即TMP表的下一行数据,得到C,开始第三组的执行;
以C到NLI操作符的右儿子进行探测匹配,子集T1得到满足过滤条件C1=C的结果集,对应表T1的行号为(9,10,11,12,13);
表T1、T2进行连接,满足C1=D1 AND C2=D2的中间结果集有两行,如表4所示:
表4:组3的中间结果集
T1行号 | C1 | C2 | C3 | T2行号 | D1 | D2 |
9 | C | 11 | 2 | 8 | C | 11 |
9 | C | 11 | 2 | 9 | C | 11 |
基于此中间结果集算AFUN*的值,输出给NLI操作符,NLI操作符也继续向上层操作符输出此结果集,如表5所示,第三组执行结束;
表5:组3的分组分析结果
C1 | C3 | RK |
C | 2 | 4 |
C | 2 | 4 |
至此已经输出3+2=5行数据,大于TOP子句要求的4行,分组分析执行结束,无需进行下一组的查询与计算;
输出五行结果集。
本实施例实现方式中,创建表T1和T2后,执行NLI操作符的左儿子DISTINCT T1(TMP),得到PARTITION BY项去除键值重复值后形成的临时表TMP,取TMP表的第一行数据为A,到NLI操作符的右儿子中进行探测匹配,将表T1、T2进行连接,确定满足匹配条件的中间结果集,基于前述中间结果集确定AFUN*的值,并输出给NLI操作符,NLI操作符也继续向上层操作符输出此结果集,确定中间结果集的行数,若行数大于TOP子句包含的行数,则输出中间结果集为结果集;若行数小于TOP子句包含的行数,则继续执行步骤310,通过左儿子中的数据行进行继续右儿子的匹配探索。上述方案可以将输入数据集进行分组之后再进行分析,有效解决了当结果集只需部分的数据组时,现有的分组分析方法效率较低的问题,实现了数据集的高效率分组分析。
实施例三
图4为本发明实施例三提供的一种基于数据集分组的分析装置的结构图,该装置可以适用于在输出满足TOP子句所需的结果集,提高数据集分析效率。该装置可以通过软件和/或硬件实现,并一般集成在计算机设备。
如图4所示,该装置包括:确定模块410、第一执行模块420、第二执行模块430和输出模块440,其中,
确定模块410,用于接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
第一执行模块420,用于去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
第二执行模块430,用于在预设匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
输出模块440,用于根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。
本实施例提供的基于数据集分组的分析装置,接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;在预设匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集,解决当结果集只需部分的数据组时,现有的分组分析方法效率较低的问题,实现了数据集的部分分组分析。
在上述实施例的基础上,确定模块410,具体用于:
若输入数据集的组数小于预设组数,则确定执行计划包括连接操作符。
在上述实施例的基础上,第一执行模块420,具体用于:
获取包含分组项的子执行计划;
去除所述子执行计划的键值重复数据行,得到所述连接操作符的左节点。
在上述实施例的基础上,第二执行模块430,具体用于:
在预设匹配条件下,在右节点中找寻与所述左节点匹配的目标数据行;
根据所述左节点和目标数据行,确定中间结果集。
在上述实施例的基础上,输出模块440,具体用于:
根据中间结果集,确定所述中间结果集的行数;
若所述中间结果集的行数大于预设行数,确定所述结果集包括当前中间结果集及之前中间结果集,并输出分析所述输入数据集得到的结果集。
在上述实施例的基础上,该装置还包括:获取模块和预设匹配条件确定模块,其中,
获取模块,用于接收到结构化查询语句SQL后,对SQL语言进行语法识别,获取SQL语句所包含的分析函数。
预设匹配条件确定模块,用于根据所述分析函数,确定预设匹配条件。
在上述实施例的基础上,该装置还包括:第三执行模块,其中
第三执行模块,用于若所述左节点不存在对应的中间结果集,则确定所述结果集为空。
本发明实施例所提供的基于数据集分组的分析装置可执行本发明任意实施例所提供的基于数据集分组的分析方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器510和存储器520;计算机设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;计算机设备中的处理器510和存储器520可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于数据集分组的分析方法对应的程序指令/模块(例如,基于数据集分组的分析方法装置中的确定模块、第一执行模块、第二执行模块和输出模块)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的基于数据集分组的分析方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于数据集分组的分析方法,该方法包括:
接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
在预设匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于数据集分组的分析方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种基于数据集分组的分析方法,其特征在于,包括:
接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集;
其中,所述去除输入数据集的重复数据行,得到所述连接操作符的左节点,包括:获取包含分组项的子执行计划;去除所述子执行计划的键值重复数据行,得到所述连接操作符的左节点;
其中,根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集,包括:根据中间结果集,确定所述中间结果集的行数;若所述中间结果集的行数大于预设行数,确定所述结果集包括当前中间结果集及之前中间结果集,并输出分析所述输入数据集得到的结果集;其中,所述预设行数根据TOP子句确定。
2.根据权利要求1所述的方法,其特征在于,若输入数据集满足预设条件,则确定操作符包括连接操作符,包括:
若输入数据集的组数小于预设组数,则确定执行计划包括连接操作符。
3.根据权利要求1所述的方法,其特征在于,在预设匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集,包括:
在匹配条件下,在右节点中找寻与所述左节点匹配的目标数据行;
根据所述左节点和目标数据行,确定中间结果集。
4.根据权利要求1所述的方法,其特征在于,在预设匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集之后,还包括:
若所述左节点不存在对应的中间结果集,则确定所述结果集为空。
5.根据权利要求1所述的方法,其特征在于,在接收到SQL语句后之后,还包括:
对SQL语言进行语法识别,获取SQL语句所包含的分析函数;
根据所述分析函数,确定匹配条件。
6.一种基于数据集分组的分析装置,其特征在于,包括:确定模块、第一执行模块、第二执行模块和输出模块,其中,
确定模块,用于接收到结构化查询语句SQL后,若输入数据集满足预设条件,则确定执行计划包括连接操作符;
第一执行模块,用于去除输入数据集的键值重复数据行,得到所述连接操作符的左节点;
第二执行模块,用于在匹配条件下,根据所述左节点,对所述连接操作符的右节点进行探测匹配,确定中间结果集;
输出模块,用于根据所述中间结果集,确定并输出分析所述输入数据集得到的结果集;
其中,所述第一执行模块,具体用于获取包含分组项的子执行计划;去除所述子执行计划的键值重复数据行,得到所述连接操作符的左节点;
其中,所述输出模块,具体用于根据中间结果集,确定所述中间结果集的行数;若所述中间结果集的行数大于预设行数,确定所述结果集包括当前中间结果集及之前中间结果集,并输出分析所述输入数据集得到的结果集;其中,所述预设行数根据TOP子句确定。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一所述的基于数据集分组的分析方法。
8.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-5中任一所述的基于数据集分组的分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010995383.6A CN112100199B (zh) | 2020-09-21 | 2020-09-21 | 一种基于数据集分组的分析方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010995383.6A CN112100199B (zh) | 2020-09-21 | 2020-09-21 | 一种基于数据集分组的分析方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100199A CN112100199A (zh) | 2020-12-18 |
CN112100199B true CN112100199B (zh) | 2024-03-26 |
Family
ID=73756364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010995383.6A Active CN112100199B (zh) | 2020-09-21 | 2020-09-21 | 一种基于数据集分组的分析方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100199B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987861A (zh) * | 2005-12-22 | 2007-06-27 | 国际商业机器公司 | 处理数据库查询的系统和方法 |
JP2014130539A (ja) * | 2012-12-28 | 2014-07-10 | Fujitsu Ltd | 情報処理装置、ノード抽出プログラムおよびノード抽出方法 |
CN109947791A (zh) * | 2019-03-27 | 2019-06-28 | 上海达梦数据库有限公司 | 一种数据库语句优化方法、装置、设备及存储介质 |
CN111125151A (zh) * | 2019-12-26 | 2020-05-08 | 上海达梦数据库有限公司 | Mpp架构下聚集函数的执行方法和数据库系统 |
CN111506602A (zh) * | 2020-04-20 | 2020-08-07 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810219B2 (en) * | 2014-06-09 | 2020-10-20 | Micro Focus Llc | Top-k projection |
US10127277B2 (en) * | 2015-07-31 | 2018-11-13 | International Business Machines Corporation | Outer join optimizations in database management systems |
US10970280B2 (en) * | 2015-10-07 | 2021-04-06 | International Business Machines Corporation | Query plan based on a data storage relationship |
US10572484B2 (en) * | 2016-09-16 | 2020-02-25 | Oracle International Corporation | Duplicate reduction or elimination with hash join operations |
US11256696B2 (en) * | 2018-10-15 | 2022-02-22 | Ocient Holdings LLC | Data set compression within a database system |
-
2020
- 2020-09-21 CN CN202010995383.6A patent/CN112100199B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987861A (zh) * | 2005-12-22 | 2007-06-27 | 国际商业机器公司 | 处理数据库查询的系统和方法 |
JP2014130539A (ja) * | 2012-12-28 | 2014-07-10 | Fujitsu Ltd | 情報処理装置、ノード抽出プログラムおよびノード抽出方法 |
CN109947791A (zh) * | 2019-03-27 | 2019-06-28 | 上海达梦数据库有限公司 | 一种数据库语句优化方法、装置、设备及存储介质 |
CN111125151A (zh) * | 2019-12-26 | 2020-05-08 | 上海达梦数据库有限公司 | Mpp架构下聚集函数的执行方法和数据库系统 |
CN111506602A (zh) * | 2020-04-20 | 2020-08-07 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112100199A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372851B2 (en) | Systems and methods for rapid data analysis | |
CN104636478B (zh) | 信息查询方法和设备 | |
US20170147644A1 (en) | Query optimization using join cardinality | |
CN110968593B (zh) | 数据库sql语句优化方法、装置、设备和存储介质 | |
US8135702B2 (en) | Eliminating unnecessary statistics collections for query optimization | |
CN112100198B (zh) | 数据库sql语句优化方法、装置、设备及存储介质 | |
CN103729392A (zh) | 查询优化方法及查询编译器 | |
CN109308303B (zh) | 一种基于马尔可夫链的多表连接在线聚集方法 | |
CN110019384A (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN112732752A (zh) | 一种查询语句优化方法、装置、设备和存储介质 | |
CN108549688B (zh) | 一种数据操作的优化方法、装置、设备和存储介质 | |
CN110060740A (zh) | 一种非冗余基因集聚类方法、系统及电子设备 | |
CN111125199B (zh) | 一种数据库访问方法、装置及电子设备 | |
CN112100199B (zh) | 一种基于数据集分组的分析方法、装置、设备及介质 | |
JP2024504322A (ja) | クラウドリソースにわたるJavaScriptオブジェクト記法(JASON)クエリの結合 | |
Wang et al. | A parallel execution method for minimizing distributed query response time | |
KR101718119B1 (ko) | SparkSQL 기반의 SPARQL 질의 처리 수행 시스템 | |
CN110895529B (zh) | 结构化查询语言的处理方法及相关装置 | |
US20160117350A1 (en) | Column group selection method and apparatus for efficiently storing data in mixed olap/oltp workload environment | |
CN111078728A (zh) | 一种数据库归档模式下跨库查询方法和装置 | |
CN110147396B (zh) | 一种映射关系生成方法及装置 | |
CN107133281B (zh) | 一种基于分组的全局多查询优化方法 | |
CN116628136A (zh) | 基于声明式推理的协同查询处理方法、系统、电子设备 | |
CN109753520B (zh) | 半连接查询方法、装置、服务器及存储介质 | |
Rivero et al. | On isomorphic matching of large disk-resident graphs using an XQuery engine |
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 |