数据透视处理方法及装置
文献发布时间:2023-06-19 18:29:06
技术领域
本发明涉及数据处理领域,更具体的说,涉及一种数据透视处理方法及装置。
背景技术
随着数据处理的日益规范化,挖掘数据中蕴含的价值越来越多的成为每个企业数字化转型的终极目标。在实际应用中,可以采用数据透视技术来辅助发现数据的价值。
数据透视技术是将常规的二维数据集,通过归类去重,行列转置等手段,改变原有的二维结构以形成多维结构,从而达到灵活展现数据的效果。在对原始数据进行数据透视后,一般仅保存数据透视的结果。此时,若用户对原始数据有各种维度组合下的汇总需求时,会对数据透视的结果进行相应的汇总,得到汇总结果,但是这种汇总方式准确度较低,用户体验较差。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种数据透视处理方法及装置。
一种数据透视处理方法,包括:
获取数据透视处理请求,所述数据透视处理请求包括对待处理数据进行数据汇总时的汇总方式信息;
获取所述数据透视处理请求对应的待处理数据;
基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,并在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据;
按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。
可选地,基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,包括:
确定所述汇总方式信息中的汇总字段以及维度字段;所述汇总字段包括行汇总和/或列汇总;所述维度字段为所述待处理数据中的至少一个维度值;
确定所述汇总字段对应的预先设定的汇总标识;
获取预先设定的数据添加规则,并根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
可选地,所述数据添加规则包括维度组合个数、目标数据的添加方式之间的对应关系;所述目标数据包括汇总字段和维度字段;
根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中,包括:
确定与所述汇总方式信息和所述待处理数据对应的维度组合个数;
基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的添加方式;
依据所述添加方式,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
可选地,基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的添加方式,包括:
基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的组合方式、以及所述组合方式对应的添加位置。
可选地,在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据,包括:
对于每一种组合方式,构建与所述组合方式对应的查询进程,并运行所述查询进程,以使所述查询进程基于所述待处理数据的内容,确定所述组合方式对应的汇总数据,并在所述待处理数据中的所述组合方式对应的添加位置处添加所述组合方式对应的汇总数据,得到中间数据。
可选地,按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作,包括:
按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行转置操作。
一种数据透视处理装置,包括:
请求获取模块,用于获取数据透视处理请求,所述数据透视处理请求包括对待处理数据进行数据汇总时的汇总方式信息;
数据获取模块,用于获取所述数据透视处理请求对应的待处理数据;
数据添加模块,用于基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,并在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据;
数据透视模块,用于按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。
可选地,所述数据添加模块包括:
字段确定子模块,用于确定所述汇总方式信息中的汇总字段以及维度字段;所述汇总字段包括行汇总和/或列汇总;所述维度字段为所述待处理数据中的至少一个维度值;
标识确定子模块,用于确定所述汇总字段对应的预先设定的汇总标识;
数据添加子模块,用于获取预先设定的数据添加规则,并根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的数据透视处理方法。
一种电子设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述的数据透视处理方法。
借由上述技术方案,本发明提供了一种数据透视处理方法及装置,在获取到包括对待处理数据进行数据汇总时的汇总方式信息的数据透视处理请求之后,对数据透视处理请求对应的待处理数据中添加汇总标识以及汇总标识对应的汇总数据,得到中间数据,然后再按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。即本发明中,先进行数据汇总,然后再进行数据透视操作,则可以避免使用原始数据经过数据透视处理后的中间计算结果来进行数据汇总时,带来的汇总结果不准确的问题,提高汇总结果的准确度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例中的一种数据透视处理方法的方法流程图;
图2示出了本发明实施例中的另一种数据透视处理方法的方法流程图;
图3示出了本发明实施例中的再一种数据透视处理方法的方法流程图;
图4示出了本发明实施例中的又一种数据透视处理方法的方法流程图;
图5示出了一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了本领域技术人员能够了解本发明,现对一些专业数据进行解释,具体如下:
数据透视:
将常规的二维数据集,通过归类去重,公式计算,行列转置等手段,改变原有的数据结构,扩充行列或者形成多维结构,以便灵活的展现数据,这个过程就叫做数据的透视。
维度,分类,指标的定义:
以订单表为例,阐述维度,分类,指标的定义。比如订单表包含:时间,地区,城市,产品类别,销售额5个字段。考虑一个场景,在评价公司的销售情况时,假设以总的销售额作为评判依据。
在这个场景中,“总的销售额”称为指标。
对于销售额这个指标,可以按照时间查看,也可以按照地区查看,也可以按照地区和时间,查看每个地区每天的销售情况。也就是说,针对销售额这个指标,可以按照不同的视角查看值的分布,我们可以把这些视角称为维度。
分类是特殊的维度,如果把某个维度字段配置为分类,则在结果展现时会将该字段的值从行显示转置为以列显示。
行列汇总:
以表格数据集为例,每一行的指标数据加总,就叫做行汇总,每一列的指标数据加总就叫做列汇总,其中加总的方式包括但不限于求和,计数,求平均等。
随着各行各业数据收集的日益规范化,除了数据治理方面得到广泛关注之外,挖掘数据中蕴含的价值越来越多的成为每个企业数字化转型的终极目标。而数据透视技术能够帮忙用户加速发现数据的价值及其背后存在的商业规律,因为他能够非常灵活的将使用者的数据模型以极其直观的方式展现出来。
存在一种场景,用户希望在将数据透视后,还能同时展现各种维度分类组合下的汇总数据。常规的做法,是将数据透视后,再针对每一行每一列做相应的加总运算,从而得出行列的汇总数据。
但是发明人发现,这种做法因为需要将所有数据都做透视处理后才能进行汇总数据的计算,所以随着数据规模的增大,透视处理中用来暂存这些初始数据的资源会越来越多,当数据规模达到一定量级后,会因计算资源耗尽而导致汇总失败。
另外,如果按照指定的汇总的方式进行汇总,比如求某个指标比率,还会存在基于数据透视后的数值进行汇总,得到的结果不准确的情况。举例来说,K公司买入一批产品,买入后,卖了100台,总销售额是5万元,然后打折销售,卖了200台,总销售额是8万元,最后,继续打折销售,卖了500台,总销售额是10万元,需要计算手机的平均卖价。参照表1,表1为需要执行数据透视和数据汇总的表格。
表1
若是先对表1进行数据透视,然后按照数据透视后的结果进行汇总,得到汇总结果。
本实施例中,数据透视以展示销售单价,数据汇总以展示平均单价为例,则数据透视后的表1为表1a。具体如下:
表1a
在得到表1a后,进行数据汇总,本实施例中的数据汇总是计算单价的平均值。具体的,参照表1a,计算平均单价的过程如下:
1、取单价列的数值,分别为500、400和200。
2、计算他们的平均值,即(500+400+200)/3=366。
则数据汇总的结果见表1a。
表1a
但是在实际应用中,K公司仅是想从整体上基于销售总额和销售总数量计算出一个平均单价。所以,本实施例中,即先进行数据汇总,然后进行数据透视。本实施例中的数据汇总是计算单价的平均值,具体参照表2。
表2
参照表2,先对每一列进行求和,得到售价之和(为23万元),和数量之和(为800台),然后计算售价之和和数量之和的比值,得到单价的平均值287元。
也即,通过原始数据进行数据汇总计算得到的平均数为287元。然后对表2进行数据透视,具体透视结果如表2a。
表2a
由表1、表1a、表1a、表2和表2a可知,先进行数据透视、在进行数据汇总和先进行数据汇总,再进行数据透视的数据处理结果不同,可见,通过数据透视得到的结果进行数据汇总时的准确度较低,用户体验较差。
为了解决上述的数据汇总准确度较低以及资源消耗较大的技术问题,发明人经过研究发现,在进行数据透视之前,先进行数据汇总,这样可以保证数据汇总是基于原始数据进行的数据汇总,汇总准确度较高。另外,在进行了数据汇总之后,再进行数据透视,由于数据汇总并不会改变原始数据,所以先进行数据汇总不会影响数据透视的准确度。
更具体的,本发明提供了一种数据透视处理方法及装置,在获取到包括对待处理数据进行数据汇总时的汇总方式信息的数据透视处理请求之后,对数据透视处理请求对应的待处理数据中添加汇总标识以及汇总标识对应的汇总数据,得到中间数据,然后再按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。即本发明中,先进行数据汇总,然后再进行数据透视操作,则可以避免使用原始数据经过数据透视处理后的中间计算结果来进行数据汇总时,带来的汇总结果不准确的问题,提高汇总结果的准确度。
另外,本发明中,仅需要获取需要进行数据汇总的基础数据,并进行汇总操作,相比于保存所有的初始数据的方式,能够降低数据存储量以及计算资源。举例来说,比如透视查询所要展现的数据是销售额排名前10的品牌信息,加上销售额汇总数据,常规的查询需要将所有品牌的销售额均从数据库查询出来,用于计算总的销售额,计算完毕后,仅保留排名前10的几条数据,而丢掉其他行。本方案会直接到数据库中查询排名前10的品牌销售额以及总的销售额,而不关注其他的品牌数据。
在上述内容的基础上,本发明实施例提供了一种数据透视处理方法,应用于服务器或者是后台处理器。参照图1,数据透视处理方法包括:
S11、获取数据透视处理请求。
具体的,所述数据透视处理请求包括对待处理数据进行数据汇总时的汇总方式信息,此外,数据透视处理请求中还可以包括数据透视规则,其中,数据透视规则可以是对数据进行转置、数据计算等操作。
数据透视处理请求可以是用户在待处理数据界面上输入的,具体的,可以在待处理数据界面上选中待处理数据,然后点击增加行列汇总、数据透视等操作,此时后台处理器或服务器会接收到该操作指令,该操作指令即为数据透视处理请求。
S12、获取所述数据透视处理请求对应的待处理数据。
其中,待处理数据可以是上述用户选中的数据,此外,用户还可以是输入一段文本,该文本中写入了数据透视处理请求以及待处理数据的链路,后台处理器根据该链路得到待处理数据。本实施例中的待处理数据可以是表格,具体可以参照表3。表3中,维度为地区和产品类别,无分类,指标销售额求和,假设数据透视的预期目标为行列转置,表3中,地区分为华北、华东、华南三个地区,产品类别分为家具、技术、办公用品三类,销售额为每一地区每一产品类别的销售额,行汇总是指销售额的汇总。
表3
S13、基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,并在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据。
在实际应用中,数据透视处理请求包括对待处理数据进行数据汇总时的汇总方式信息,参照表3,汇总方式信息可以是对各个地区的所有产品类别的销售额进行汇总,以及对所有地区的销售额进行汇总。其中,对各个地区的所有产品类别进行汇总即为对华北的家具、技术和办公用品的销售额汇总、对华东的家具、技术和办公用品的销售额汇总、对华南的家具、技术和办公用品的销售额汇总。
所以本实施例中,需要在表3的基础上添加与汇总方式信息对应的汇总标识,本实施例中的汇总标识可以是“华北小计”、“华东小计”、“华南小计”、“列汇总小计”。
其中,以“华北小计”为例,“华北小计”表征的是,计算华北地区的所有产品类别的销售额的汇总,即华北的家具、技术、办公用品的销售额的汇总。
列汇总是指所有地区的汇总,即华北、华东、华南地区的汇总,“列汇总小计”是指所有地区所有产品类别的销售额的汇总。具体参照表4中添加的汇总标识。
表4
在得到汇总标识之后,将上述的汇总标识添加到待处理数据中,然后确定该汇总标识对应的汇总数据,也添加到待处理数据中,即可得到中间数据。
本实施例中的中间数据是包括汇总数据的维度、分类、指标等数据透视所需数据。
S14、按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。
具体的,在实际应用中,数据透视规则一般是行列转置、数据计算等,以行列转置为例,参照表4和表5,表4为上述的中间数据,表5为进行了行列转置后的数据。
表5
需要说明的是,本示例(表4和表5)中没有分类所以无需转置,行汇总和销售额一样,仅需要将汇总标记按照维度做相应的移动即可,比如华北小计这一行应该移动到地区为华北的那些行后面,以直观的展现华北所有产品类别的销售额,具体参照表4和表5。
本实施例中,在获取到包括对待处理数据进行数据汇总时的汇总方式信息的数据透视处理请求之后,对数据透视处理请求对应的待处理数据中添加汇总标识以及汇总标识对应的汇总数据,得到中间数据,然后再按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。即本发明中,先进行数据汇总,然后再进行数据透视操作,则可以避免使用原始数据经过数据透视处理后的中间计算结果来进行数据汇总时,带来的汇总结果不准确的问题,提高汇总结果的准确度。
上述实施例简单介绍了将待处理数据处理得到中间数据,现对其具体实现过程进行介绍。具体的,参照图2,“基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识”可以包括:
S21、确定所述汇总方式信息中的汇总字段以及维度字段。
所述汇总字段包括行汇总和/或列汇总;所述维度字段为所述待处理数据中的至少一个维度值。
具体的,仍以上述的汇总方式信息是对各个地区的所有产品类别进行汇总,以及对所有地区进行汇总为例。具体的,对于“对各个地区的所有产品类别进行汇总”来说,该汇总方式信息中的汇总字段为表示对各个地区的所有产品类别进行汇总的字段,如小计、求和、行汇总等等,不管是小计、求和,还是行汇总,均表示同一含义,只是用不同的字段标识,本实施例中,以汇总字段为小计或行汇总为例进行说明。
维度字段为上述的华北、华东和华南。
对于“对所有地区进行汇总”来说,该汇总方式信息中的汇总字段为表示对所有地区进行汇总的字段,如小计、求和、列汇总等等,不管是小计、求和,还是列汇总,均表示同一含义,只是用不同的字段标识,本实施例中,以汇总字段为小计或列汇总为例进行说明。另外,由于不需要对某一特定的维度值进行求和,所以此处没有维度字段。
S22、确定所述汇总字段对应的预先设定的汇总标识。
具体的,行列汇总为固定字符串,小计或行汇总记为TRow,列汇总记为TCol。
汇总标识即为上述的Trow和TCol。
S23、获取预先设定的数据添加规则,并根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
在实际应用中,应首先确定数据添加规则,具体的,数据添加规则的确定过程可以如下:
数据添加规则由多个计算场景推算而来,为了能够根据透视后的结果,反推需要查询的原始二维数据,我们需要对透视的数据做逆透视处理,来得到其中关于汇总数据查询的一些规律,根据规律即可得到数据添加规则。
参照表6,维度为地区和产品类别,无分类,指标销售额求和,透视的预期数据为(仅展现行列)。
表6
逆转置后的行列为(二维数据),参照表7。
表7
则对应的sql汇总语句为:
select"Region","Category",sum("Sales")from"DemoQueryDataZH"groupby"Region","Category"
union all
select"Region",'小计',sum("Sales")from"DemoQueryDataZH"groupby"Region"
union all
select'列汇总','小计',sum("Sales")from"DemoQueryDataZH"
又比如,参照表8,维度“地区”,分类为“产品类别”,指标为“销售额求和”,透视预期数据(仅展现行列)为:
表8
逆转置后返回的行列为(二维数据),具体参照表9。
表9
对应的sql汇总语句为
select"Region","Category",sum("Sales")from"DemoQueryDataZH"group by"Region","Category"
union all
select"Region",'行汇总',sum("Sales")from"DemoQueryDataZH"group by"Region"
union all
select'列汇总',"Category",sum("Sales")from"DemoQueryDataZH"group by"Category"
union all
select'列汇总','行汇总',sum("Sales")from"DemoQueryDataZH"
通过对以上维度和分类的统计,可以得出:
1)如果将固定出现的行汇总,列汇总,小计等,均视为固定字符串,不管维度还是分类,均遵循相同的组合规则;
2)组合的方式总是从最后一个字段开始,逐步将其用固定的字符串替换后再与之前的字段组合。
进一步的,假设:
维度记为D,个数为x,第n个维度记为Dn,其中x>=1
分类记为C,个数为y,第n个分类为Cn,其中y>=0
行列汇总为固定字符串,行汇总记为TRow,列汇总记为TCol
则有
对于维度组合个数:
当x=1时,汇总依据有D1,TCol,共2组
当x=2时,汇总依据有D1,D2、D1,TCol、TCol,TCol,共3组
当x=3时,汇总依据有D1,D2,D3、D1,D2,TCol、D1,TCol,TCol、TCol,TCol,TCol,共4组
...
当x=n时,汇总依据有D1,D2...Dn、D1,D2,...Dn-1,TCol、...,TCol,...TCol,共n+1组
对于分类组合个数:
当y=0时,没有组合,共0组
当y=1时,汇总依据有C1,TRow,共2组
当y=2时,汇总依据有C1,C2、C1,Trow、TRow,TRow,共3组
当y=3时,汇总依据有C1,C2,C3,C1,C2,TRow,C1,TRow,TRow,TRow,TRow,TRow,共4组
...
当y=n时,有C1,C2...Cn,C1,C2,...Cn-1,TRow,...,TRow,...TRow,共n+1组
以上可得:
1)当分类个数等于0时,无行汇总,维度分类组合查询的次数为维度组合数,即x+1。
2)当分类个数大于等于1时,需要行汇总,维度分类组合查询次数为(x+1)*(y+1)。
由上可知,所述数据添加规则包括维度组合个数、目标数据的添加方式之间的对应关系;所述目标数据包括汇总字段和维度字段。
则进一步,参照图3,根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中,包括:
S31、确定与所述汇总方式信息和所述待处理数据对应的维度组合个数。
具体的,参照上述的数据添加规则中的维度组合个数和分类组合个数,对汇总方式信息进行分析,仍以上述的汇总方式信息为“对各个地区的所有产品类别进行汇总,以及对所有地区进行汇总”为例,参照表3,由于待处理数据中并不存在分类,所以应该参照上述的数据添加规则中的维度组合个数。
表3中的维度个数有两个,分别为地区和产品类别,则一共有三个汇总,分别为“地区、产品类别”、“地区、行汇总”、“列汇总、列汇总”。本实施例中的,行汇总也可以使用小计代替,均为同一概念。
S32、基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的添加方式。
更具体的,可以基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的组合方式、以及所述组合方式对应的添加位置。
在实际应用中,参照表3,表3中已有“地区、产品类别”的汇总,则此时需要添加的是“地区、小计”、“列汇总、小计”,也就是说,实际添加的汇总依据比实际的汇总依据少一。
由于地区分为华北、华东和华南三个,所以,“地区、小计”分为“华北、小计”、“华东、小计”、“华南、小计”,即可得到表6中的倒数第四行至最后一行。
需要说明的是,为了能够清楚的区分小计、行汇总和列汇总,现做如下说明:
1、当只有一个维度时直接使用列汇总,当只有一个分类时直接使用行汇总;
2、当有多个维度时,第一个维度下面的汇总标识用列汇总,第一个维度之后的其他维度用小计(列小计);
3、当有一个分类时,第一个分类下面的汇总标识用行汇总,第一个分类之后的其他分类用小计(行小计)。
在得到表6中的倒数第四行至最后一行之后,需要确定这些数据的添加位置,由于汇总方式信息为“对各个地区的所有产品类别进行汇总,以及对所有地区进行汇总”,所以本实施例中,对于“对各个地区的所有产品类别进行汇总”来说,上述的“华北、行汇总”、“华东、行汇总”、“华南、行汇总”,应该按照顺序,依次添加到之后几行,对于“列汇总、列汇总”,添加到最后一行即可。
S33、依据所述添加方式,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
具体的,在表3的最后,添加表6中倒数第四行至最后一行,即可得到表6,也就是说,表6是表3添加了汇总标识以及维度字段之后的数据。
在本发明的另一实现方式中,“在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据”,包括:
对于每一种组合方式,构建与所述组合方式对应的查询进程,并运行所述查询进程,以使所述查询进程基于所述待处理数据的内容,确定所述组合方式对应的汇总数据,并在所述待处理数据中的所述组合方式对应的添加位置处添加所述组合方式对应的汇总数据,得到中间数据。
在实际应用中,参照步骤S33中的内容以及表6,表6中增加了4行,所以需要确定这四行的汇总结果,具体的,对于每一行,即每一组合方式,构建与所述组合方式对应的查询进程,也就是说,新增了几行,即增加了几个查询进程。具体的查询进程可以参照表7下边的sql汇总语句中的第二、三个查询。
运行所述查询进程,以使所述查询进程基于所述待处理数据的内容,确定所述组合方式对应的汇总数据,具体的,仍以表6为例,“华北、小计”表征了华北地区所有的产品类别的小计,即将家具、技术、办公用品的销售额求和,其他类同。
得到汇总数据之后,在所述待处理数据中的所述组合方式对应的添加位置处添加所述组合方式对应的汇总数据,得到中间数据。
具体的,参照表6,可以在小计后边的一列中添加对应的小计结果,即可得到中间数据。
本实施例中,通过提前构建数据添加规则,使后台处理器或服务器在无需获取所有明细数据的情况下,能够快速准确的计算出海量数据不同维度不同分类的指标汇总值。
可选地,在上述数据透视处理方法的基础上,本发明的另一实施例提供了一种数据透视处理装置,参照图4,包括:
请求获取模块11,用于获取数据透视处理请求,所述数据透视处理请求包括对待处理数据进行数据汇总时的汇总方式信息;
数据获取模块12,用于获取所述数据透视处理请求对应的待处理数据;
数据添加模块13,用于基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,并在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据;
数据透视模块14,用于按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。
进一步,所述数据添加模块包括:
字段确定子模块,用于确定所述汇总方式信息中的汇总字段以及维度字段;所述汇总字段包括行汇总和/或列汇总;所述维度字段为所述待处理数据中的至少一个维度值;
标识确定子模块,用于确定所述汇总字段对应的预先设定的汇总标识;
数据添加子模块,用于获取预先设定的数据添加规则,并根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
进一步,所述数据添加规则包括维度组合个数、目标数据的添加方式之间的对应关系;所述目标数据包括汇总字段和维度字段;
所述数据添加子模块包括:
第一数据确定单元,用于确定与所述汇总方式信息和所述待处理数据对应的维度组合个数;
第二数据确定单元,用于基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的添加方式;
数据添加单元,用于依据所述添加方式,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
进一步,第二数据确定单元具体用于:
基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的组合方式、以及所述组合方式对应的添加位置。
进一步,数据添加模块13包括:
数据处理子模块,用于对于每一种组合方式,构建与所述组合方式对应的查询进程,并运行所述查询进程,以使所述查询进程基于所述待处理数据的内容,确定所述组合方式对应的汇总数据,并在所述待处理数据中的所述组合方式对应的添加位置处添加所述组合方式对应的汇总数据,得到中间数据。
进一步,数据透视模块14具体用于:
按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行转置操作。
本实施例中,在获取到包括对待处理数据进行数据汇总时的汇总方式信息的数据透视处理请求之后,对数据透视处理请求对应的待处理数据中添加汇总标识以及汇总标识对应的汇总数据,得到中间数据,然后再按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。即本发明中,先进行数据汇总,然后再进行数据透视操作,则可以避免使用原始数据经过数据透视处理后的中间计算结果来进行数据汇总时,带来的汇总结果不准确的问题,提高汇总结果的准确度。
需要说明的是,本实施例中的各个模块、子模块和单元的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
所述数据透视处理装置包括处理器和存储器,上述请求获取模块、数据获取模块、数据添加模块、和数据透视模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高汇总结果的准确度。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据透视处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据透视处理方法。
本发明实施例提供了一种电子设备,参照图5,电子设备包括至少一个处理器701、以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述的数据透视处理方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如下方法步骤的程序:
一种数据透视处理方法,包括:
获取数据透视处理请求,所述数据透视处理请求包括对待处理数据进行数据汇总时的汇总方式信息;
获取所述数据透视处理请求对应的待处理数据;
基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,并在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据;
按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作。
进一步,基于所述汇总方式信息以及预先设定的数据添加规则,在所述待处理数据中添加与所述汇总方式信息对应的汇总标识,包括:
确定所述汇总方式信息中的汇总字段以及维度字段;所述汇总字段包括行汇总和/或列汇总;所述维度字段为所述待处理数据中的至少一个维度值;
确定所述汇总字段对应的预先设定的汇总标识;
获取预先设定的数据添加规则,并根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
进一步,所述数据添加规则包括维度组合个数、目标数据的添加方式之间的对应关系;所述目标数据包括汇总字段和维度字段;
根据所述数据添加规则以及所述汇总方式信息,将所述汇总标识以及所述维度字段添加到所述待处理数据中,包括:
确定与所述汇总方式信息和所述待处理数据对应的维度组合个数;
基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的添加方式;
依据所述添加方式,将所述汇总标识以及所述维度字段添加到所述待处理数据中。
进一步,基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的添加方式,包括:
基于所述数据添加规则以及所述维度组合个数,确定所述维度字段和所述汇总字段的组合方式、以及所述组合方式对应的添加位置。
进一步,在所述待处理数据中添加所述汇总标识对应的汇总数据,得到中间数据,包括:
对于每一种组合方式,构建与所述组合方式对应的查询进程,并运行所述查询进程,以使所述查询进程基于所述待处理数据的内容,确定所述组合方式对应的汇总数据,并在所述待处理数据中的所述组合方式对应的添加位置处添加所述组合方式对应的汇总数据,得到中间数据。
进一步,按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行数据透视操作,包括:
按照所述数据透视处理请求中的数据透视规则,对所述中间数据进行转置操作。
本申请是参照根据本申请实施例的方法、装置、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
- 话音数据处理方法以及支持该话音数据处理方法的电子装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 数据透视表处理方法、装置及系统
- 一种多行列维度数据透视表处理方法和系统