一种针对复杂查询的分组入数据集市方法技术

技术编号:24331134 阅读:15 留言:0更新日期:2020-05-29 19:38
本发明专利技术公开了一种针对复杂查询的分组入数据集市方法,在数据从数据源抽取到数据集市的过程中,对有复杂需求的数据抽取,针对可能会产生复杂的数据源查询的情况,提出了一种分组的加速入集市方法。首先通过对源数据分组列的特征分析判断出否能分组,然后根据分组列的不同值进行拆分,最后将拆分后的数据导入数据集市。为了加速入集市的过程,同时减少内存压力,数据将以“块”的单位进行处理,数据拆分过程和数据导入过程将同步进行。

A method of grouping into data marts for complex queries

【技术实现步骤摘要】
一种针对复杂查询的分组入数据集市方法
本专利技术涉及数据集市存储
,更具体的说是涉及一种针对复杂查询的分组入数据集市方法。
技术介绍
目前,现代信息技术已进入大数据时代。如何快捷的构建满足特定用户和部门的需求的数据存储,已成为数据中心急需解决的问题。数据集市是从企业范围内的数据仓库,数据库或者各种各样的数据源抽取出来,按照列式数据进行存储的一种面向决策分析需求的数据立方体。其中包括维度,维度的层次,需要计算的度量等。在各种各样的海量源数据导入到数据集市过程中,对于复杂的抽取需求,其查询性能可能呈数量级单位的下降。解决复杂数据抽取所衍生出来的复杂查询导入数据集市的性能问题成为迫切需要。源数据导入数据集市大体可以分为三步。首先,连接数据源进行源数据查询、抽取、加工,并把查询结果加载至内存中;其次,对内存中的数据进行列式压缩,数据重新组织为列式存储;最后,生成具体的数据块文件,分发到数据集市节点中存储。由于需求的多样性和复杂性,对源数据的查询,抽取加工处理可能会转化为源数据的复杂查询。但是,传统对复杂查询分组入数据集市和普通查询分组入数据集市的处理方式并无区别:根据分组列查询出分组不同值,然后将不同值作为过滤条件分别加入对源数据的查询中。这样就会产生更多次的复杂查询,导入数据集市速度受会到严重影响,甚至会影响到整个系统的稳定。源数据导入数据集市的另外一个关键点为系统内存使用问题。对于海量数据的处理,导入到数据集市中,中间要经过系统对数据转列式存储与压缩处理。如何降低内存峰值,减少对象生命周期时间也是急需解决的问题之一。因此,如何加快数据入数据集市的速度,降低复杂查询影响,同时如何在数据集市存储过程中降低内存峰值是本领域技术人员亟需解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种针对复杂查询的分组入数据集市方法,在数据从数据源抽取到数据集市的过程中,对有复杂需求的数据抽取,针对可能会产生复杂的数据源查询的情况,提出了一种分组的加速入集市方法。首先通过对源数据分组列的特征分析判断出否能分组,然后根据分组列的不同值进行拆分,最后将拆分后的数据导入数据集市。为了加速入集市的过程,同时减少内存压力,数据将以“块”的单位进行处理,并且把分组信息加入到最后生成数据块的元信息,数据拆分过程和数据导入过程将同步进行,提高了数据入数据集市的速度。其中还包括评估入数据集市的可行性,根据分组列不同值在内存中对数据块进行分割以降低复杂查询的次数为1。为了实现上述目的,本专利技术采用如下技术方案:一种针对复杂查询的分组入数据集市方法,包括如下具体步骤:步骤1:加载源数据,对所述源数据进行复杂查询,并在所述复杂查询中加入分组列的排序信息,对所述源数据进行特征分析,满足分割特征的所述源数据存储至内存中;否则,所述源数据按照所述排序信息的顺序生成数据块导入至数据集市节点;步骤2:在所述内存中对所述源数据根据所述分组列的不同值进行分割,获得所述数据块;步骤3:在所述数据块中增加元数据信息,获得增强数据块;步骤4:将所述增强数据块进行压缩,获得压缩数据块,并将所述压缩数据块分发到所述数据集市节点。优选的,源数据加载复杂查询过程、源数据分割过程和添加信息压缩数据块入所述数据集市的过程,分别设置为三个线程模型,并采用数据流式处理进行并行处理。优选的,在所述步骤1中进行所述复杂查询时,在数据查询层根据所述分组列的所述排序信息对所述源数据进行排序。优选的,分组后的所述数据块具有相同的数据特征,将所述数据特征记录成所述元数据信息。优选的,所述源数据的所述加载为流式加载。优选的,如果所述复杂查询的查询API接口中支持设置排序列,则将所述排序信息追加到所述API接口中,将排序运算压力下推到所述数据集市中;否则使用TimSort排序算法完成所述源数据的排序操作。优选的,所述步骤1中对所述源数据进行特征分析是以所述分组列对所述源数据进行额外查询,判断所述源数据是否满足分组条件,具体过程如下:步骤11:获取所述分组列类型、所述不同值的个数和每组所述分组类的平均数据量;步骤12:如果所述分组类类型不是数据,且所述不同值个数小于设定最大值,当所述平均数据量大于加载的所述源数据时,所述源数据满足所述分组条件。经由上述的技术方案可知,与现有技术相比,本专利技术公开提供了一种针对复杂查询的分组入数据集市方法,对源数据进行复杂查询,并根据排序信息进行排序,通过分组类的查询操作,根据分组条件对源数据进行分块处理,从而将复杂查询次数降低为1次;而对对源数据的复杂查询、分组和分块处理为并行处理,且对数据块采用流式处理进行存储,将分组信息加入到数据块中则加快了数据入数据集市的速度,以及对数据块进行压缩,减少了存储空间的使用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1附图为本专利技术提供的针对复杂查询分组如数据集市方法流程图;图2附图为本专利技术提供的对源数据进行分组判断流程图;图3附图为本专利技术提供的分组类界面显示示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种针对复杂查询的分组入数据集市方法,包括如下具体步骤:S1:加载源数据,对源数据进行复杂查询,并在复杂查询中加入分组列的排序信息,对源数据进行特征分析,满足分割特征的源数据存储至内存中;否则,源数据按照排序信息的顺序生成数据块导入至数据集市节点,其中生成数据块的过程为,对源数据按照顺序进行遍历,当遍历的数据满足一个数据块大小时,则生成一个数据块,并开始生成下一个数据块,直至遍历结束;对源数据进行特征分析是以分组列对源数据进行额外查询,判断源数据是否满足分组条件,S11:获取分组列类型、不同值的个数和每组分组类的平均数据量;S12:如果分组类类型不是数据,且不同值个数小于设定最大值,当平均数据量大于加载的源数据时,源数据满足分组条件;S2:在内存中对源数据根据分组列的不同值进行分割,获得数据块;S3:在数据块中增加元数据信息,获得增强数据块;S4:将增强数据块进行压缩,获得压缩数据块,并将压缩数据块分发到数据集市节点。为了进一步优化上述技术方案,源数据加载复杂查询过程、源数据分割过程和添加信息压缩数据块入数据集市的过程,分别设置为三个线程模型,并采用数据流式处理进行并行处理。为了进一步优化上述技术方案本文档来自技高网
...

【技术保护点】
1.一种针对复杂查询的分组入数据集市方法,其特征在于,包括如下具体步骤:/n步骤1:加载源数据,对所述源数据进行复杂查询,并在所述复杂查询中加入分组列的排序信息,对所述源数据进行特征分析,满足分割特征的所述源数据存储至内存中;否则,所述源数据按照所述排序信息的顺序生成数据块并导入至数据集市节点;/n步骤2:在所述内存中对所述源数据根据所述分组列的不同值进行分割,获得所述数据块;/n步骤3:在所述数据块中增加元数据信息,获得增强数据块;/n步骤4:将所述增强数据块进行压缩,获得压缩数据块,并将所述压缩数据块分发到所述数据集市节点。/n

【技术特征摘要】
1.一种针对复杂查询的分组入数据集市方法,其特征在于,包括如下具体步骤:
步骤1:加载源数据,对所述源数据进行复杂查询,并在所述复杂查询中加入分组列的排序信息,对所述源数据进行特征分析,满足分割特征的所述源数据存储至内存中;否则,所述源数据按照所述排序信息的顺序生成数据块并导入至数据集市节点;
步骤2:在所述内存中对所述源数据根据所述分组列的不同值进行分割,获得所述数据块;
步骤3:在所述数据块中增加元数据信息,获得增强数据块;
步骤4:将所述增强数据块进行压缩,获得压缩数据块,并将所述压缩数据块分发到所述数据集市节点。


2.根据权利要求1所述的一种针对复杂查询的分组入数据集市方法,其特征在于,源数据加载复杂查询过程、源数据分割过程和添加信息压缩数据块入所述数据集市的过程,分别设置为三个线程模型,并采用数据流式处理进行并行处理。


3.根据权利要求1所述的一种针对复杂查询的分组入数据集市方法,其特征在于,在所述步骤1中进行所述复杂查询时,在数据查询层根据所述分组列的所述排序信息对所述源数据进行排序。


4...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:北京永洪商智科技有限公司
类型:发明
国别省市:北京;11

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

1