基于OpenGauss的数据分组聚集方法技术

技术编号:37814684 阅读:13 留言:0更新日期:2023-06-09 09:44
本发明专利技术涉及一种基于OpenGauss数据库的数据分组聚集方法及系统。本方法包括对有序集合中的数据进行扫描,根据当前的分组情况和扫描获得的数据信息选择相应的措施对数据进行分组处理;按照上步获得的分组对数据进行聚集运算处理等步骤。本方法克服了现有数据分组聚集方法普遍存在的执行效率低下的缺陷,本发明专利技术方法在进行数据分组聚集操作时,只维护排序靠前的N个分组,而对最终不需要返回的数据进行丢弃处理,从而避免了无用的排序和分组操作造成的额外性能开销,减少了分组数据的存储和运算成本,提升了数据分组聚集操作的执行效率,并保证了系统性能的稳定,可以很好地满足海量数据处理的应用需求。据处理的应用需求。据处理的应用需求。

【技术实现步骤摘要】
基于OpenGauss的数据分组聚集方法


[0001]本专利技术属于OpenGauss数据库管理系统
,尤其涉及一种基于OpenGauss数据库的数据分组聚集方法及系统。

技术介绍

[0002]SQL聚集是指对一组数据进行汇总的操作,输入是一组数据的集合,输出是单个数据值。常见的聚集操作有COUNT、MAX、MIN、SUM、AVG等。作为一种常用的数据分析技术,在数据库SQL里使用聚集操作进行数据分析,是非常普遍的。
[0003]随着互联网技术的日新月异,数据存储和分析技术蓬勃发展,互联网每分每秒都在产生大量数据。人们对海量数据的存储、分析需求日益增长,如何高效分析海量数据,已成为数据库技术面临的主要挑战,同样地,现有的数据分组聚集方法也因其执行效率低下而亟需进行技术改进。
[0004]以下面的SQL为例,
[0005]select max(l_orderkey),l_orderkey from lineitem group by l_orderkey order by l_orderkey limit 3;
[0006]目前多采用以下数据分组聚集方法进行处理:
[0007](1)先分组(group by),后排序(order by),最后取排序靠前的几个分组(limit)。该方案的缺点是进行分组步骤时,必须对所有数据进行分组聚集,然而最后只需要取排序靠前的几个分组,最终导致大量无用的数据参与了分组和聚集运算,导致系统性能下降。
[0008](2)先排序(order by),后分组(group by),最后取排序靠前的几个分组(limit)。该方案的缺点则是进行排序步骤时,必须对所有数据进行排序,导致大量最后不需要的数据参与了排序,从而造成了系统性能下降。
[0009]显而易见,上述数据分组聚集方法由于执行过程中均进行了大量的无用数据处理从而导致了执行效率低下,无法很好地满足海量数据处理的应用需求。

技术实现思路

[0010]为了克服现有数据分组聚集方法存在的上述缺陷,本专利技术提出了一种新的数据分组聚集方案。
[0011]整体而言,本专利技术数据分组聚集方法基于OpenGauss数据库系统,在进行数据分组聚集操作时,只维护排序靠前的N个分组(Limit N),而对最终不需要返回的数据进行丢弃处理,从而避免了无用的排序和分组操作造成的额外性能开销,解决了现有方法效率低下的问题,大大提升了数据分组聚集操作的执行效率,保证了系统性能的稳定。
[0012]具体地,第一方面,本专利技术提供了一种基于OpenGauss的数据分组聚集方法,当任务为在一个有序集合里维护排序靠前的N个分组时,本方法包括:
[0013]S1.数据扫描分组:对所述有序集合中的数据进行扫描,根据当前的分组情况和扫描获得的数据信息选择相应的措施对数据进行分组处理;
[0014]S2.聚集运算处理:按照上步获得的分组对数据进行聚集运算处理。
[0015]进一步地,本专利技术基于OpenGauss的数据分组聚集方法步骤S1中所述根据当前的分组情况和扫描获得的数据信息选择相应的措施对数据进行分组处理,包括:
[0016]S11.若新数据对应的分组属于Top

N目标组,则直接将该数据写入对应的分组中;
[0017]S12.若新数据对应的分组不属于Top

N目标组,则直接丢弃该数据;
[0018]S13.若新数据对应的分组当前不存在,但按照预设的分组排序规则该分组应属于Top

N目标组,此时首先在所述有序集合里创建新的与新数据对应的分组,并按照预设的分组排序规则将该新分组插入到正确的位置,然后将新数据写入该新分组中。
[0019]进一步地,上述基于OpenGauss的数据分组聚集方法步骤S13中还包括:在按照预设的分组排序规则将新分组插入到正确的位置的同时,淘汰Top

N目标组中排列在最末位的分组,即在所述有序集合里,始终维持Top

N目标组的组数恒定。
[0020]进一步地,本专利技术基于OpenGauss的数据分组聚集方法步骤S2中所述对数据进行聚集运算处理包括但不限于对数据进行COUNT、SUM、MAX、MIN、AVG运算处理。
[0021]第二方面,本专利技术还提供了一种基于OpenGauss的数据分组聚集系统,所述数据分组聚集系统包括:
[0022]数据扫描模块:用于对有序集合中的数据进行扫描;
[0023]数据分组模块:用于根据当前的分组情况和扫描获得的数据信息选择相应的措施对数据进行分组处理;
[0024]数据写入模块:用于将新数据写入与之对应的分组中;
[0025]分组创建模块:用于在有序集合里创建新的与新数据对应的分组;
[0026]分组维护模块:用于向Top

N目标组中插入新分组,同时淘汰Top

N目标组中的末位分组,以维持有序集合里Top

N目标值的组数恒定;
[0027]聚集运算模块:用于对分组数据进行聚集运算处理。
[0028]第三方面,本专利技术还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述的基于OpenGauss的数据分组聚集方法的步骤。
[0029]综上,本专利技术基于OpenGauss的数据分组聚集方法克服了现有数据分组聚集方法普遍存在的执行效率低下的缺陷,本专利技术方法在进行数据分组聚集操作时,只维护排序靠前的N个分组,而对最终不需要返回的数据进行丢弃处理,从而避免了无用的排序和分组操作造成的额外性能开销,减少了分组数据的存储和运算成本,大大提升了数据分组聚集操作的执行效率,并保证了系统性能的稳定,可以很好地满足海量数据处理的应用需求。
附图说明
[0030]为了更清楚地说明本专利技术实施例的技术方案,下面对本专利技术实施例中需要使用的附图作简要介绍,显而易见地,下述附图仅是本专利技术中记载的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本专利技术数据分组聚集方法整体实施流程示意图。
[0032]图2为本专利技术数据分组聚集方法中数据分组处理实施流程示意图。
[0033]图3为根据本专利技术一种实施例的SQL,要求在一个有序集合里维护排序靠前的N个
分组。
[0034]图4为根据本专利技术一种实施例的SQL,在分组已存在情况下的数据处理方法。
[0035]图5为根据本专利技术一种实施例的SQL,在向Top

N目标组中插入新分组的同时,淘汰Top

N目标组中排列在最末位的分组,以维持Top

N目标组的组数恒定。
[0036]图6为本专利技术数据分组聚集系统组成架构示意图。
具体实施方式
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于OpenGauss的数据分组聚集方法,其特征在于,当任务为在一个有序集合里维护排序靠前的N个分组时,所述方法包括:S1.数据扫描分组:对所述有序集合中的数据进行扫描,根据当前的分组情况和扫描获得的数据信息选择相应的措施对数据进行分组处理;S2.聚集运算处理:按照上步获得的分组对数据进行聚集运算处理。2.根据权利要求1所述的基于OpenGauss的数据分组聚集方法,其特征在于,步骤S1中所述根据当前的分组情况和扫描获得的数据信息选择相应的措施对数据进行分组处理,包括:S11.若新数据对应的分组属于Top

N目标组,则直接将该数据写入对应的分组中;S12.若新数据对应的分组不属于Top

N目标组,则直接丢弃该数据;S13.若新数据对应的分组当前不存在,但按照预设的分组排序规则该分组应属于Top

N目标组,此时首先在所述有序集合里创建新的与新数据对应的分组,并按照预设的分组排序规则将该新分组插入到正确的位置,然后将新数据写入该新分组中。3.根据权利要求2所述的基于OpenGauss的数据分组聚集方法,其特征在于,步骤S13中还包括:在按照预设的分组排序规则将新分组插入到正确的位置的同时,淘汰Top

【专利技术属性】
技术研发人员:黎俊云何小栋
申请(专利权)人:广州海量数据库技术有限公司
类型:发明
国别省市:

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

1