CN102867066B - 数据汇总装置和数据汇总方法 - Google Patents
数据汇总装置和数据汇总方法 Download PDFInfo
- Publication number
- CN102867066B CN102867066B CN201210371809.6A CN201210371809A CN102867066B CN 102867066 B CN102867066 B CN 102867066B CN 201210371809 A CN201210371809 A CN 201210371809A CN 102867066 B CN102867066 B CN 102867066B
- Authority
- CN
- China
- Prior art keywords
- data
- changing unit
- higher level
- cell
- dimension
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据汇总装置,包括:获取单元,接收用户提交的变更单元,获取变更单元的维度信息;查找单元,根据维度信息查找出变更单元的上级数据单元;汇总单元,根据变更单元修改上级数据单元的数据。本发明还提供了一种数据汇总方法。根据本发明的技术方案,可提供更加轻量级的数据汇总方案,实现多维数据的实时汇总,保证高效率的内存汇总,且能够保证在业务发生的时候同步进行数据汇总。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据汇总装置和一种数据汇总方法。
背景技术
在复杂的业务系统中,很多业务数据都是有层次性的,上级层次的数据需要实时对下级层次的业务数据进行自动汇总。
自动汇总要求在末级维度成员的数据逐层汇总到上级成员,所有上级成员的数据都是由下级经过汇总计算得出来的。举例如下:
在企业的全面预算领域中,预算编制的方式是自下而上(末级单位填报预算数据,上级单位自动汇总下级单位填制的预算数据)
若末级单位的用户提交了一个预算数据:2011年7月A部门差旅费5000元,表达如下:[2011年3季7月][部门d][差旅费]5000,假设在时间维度上的层次关系为:
[2011年3季7月][2011年3季][2011年];
在组织维度上的层次关系为:[部门d][公司a][集团g];
在科目维度上的层次关系为:[差旅费][管理费用];
那么,相应地,该预算数据的所有上级数据都要加上5000,即:
[2011年3季][部门d][差旅费]+5000;
[2011年3季7月][公司a][差旅费]+5000;
[2011年3季7月][部门d][管理费用]+5000;
[2011年3季][公司a][差旅费]+5000;
[2011年][部门d][差旅费]+5000;
[2011年][集团g][管理费用]+5000。
总计有3x3x2-1=17个上级数据需要被加上5000。
相关的数据汇总方法例如联机分析处理系统(OLAP,Online AnalyticProcessing)方法,可以通过定义数据立方体(Cube)和维度(Dimension),对业务数据进行类似的聚合计算。但是OLAP需要对数据立方体进行预先计算(物化Cube),因而无法保证数据汇总的实时性,无法满足业务的要求。另外,部署和使用OLAP的成本比较高,也会造成巨大的资源浪费。
因此,需要一种新的汇总方式,可保证在业务发生的同时能够进行数据汇总,保证数据汇总的实时性。
发明内容
本发明正是基于上述问题,提出了一种数据汇总技术,可保证在业务发生的同时能够进行数据汇总,保证数据汇总的实时性。
有鉴于此,根据本发明的一个方面,提供了一种数据汇总装置,包括:获取单元,接收用户提交的变更单元,获取所述变更单元的维度信息;查找单元,根据所述维度信息从关系型数据库中查找出所述变更单元的上级数据单元;汇总单元,根据所述变更单元修改所述上级数据单元的数据。
在关系型数据库管理系统中实现多维数据的实时汇总,在提交变更单元数据时,根据变更单元的维度信息可得到上级数据单元的维度信息,从而可定位到上级数据单元,依据提交的变更单元数据就可以更改上级数据单元的数据,完成数据汇总,从而实现在业务发生时,可同时进行数据汇总,具有实时性。
在上述技术方案中,优选的,所述查找单元包括:遍历子单元,遍历所述变更单元中的每个数据单元,取出所述每个数据单元的维度信息;计算子单元,计算出所述每个数据单元的每个维度上的上级维度成员列表;合并子单元,在上级维度成员列表中,合并具有相同维度的上级维度成员,得到所述上级数据单元。
变更单元中包括至少一个数据单元,每个数据单元包含了各自的维度信息,依据多维数据的预先定义,可根据维度、维度的层次以及维度的成员得到每个数据单元的每个维度上的上级维度成员列表,从而确定上级数据单元。
在上述技术方案中,优选的,在所述用户选择的汇总方式为增量汇总方式时,所述汇总单元包括:提取子单元,根据所述变更单元的维度信息从所述关系型数据库中提取出所述原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;递归子单元,从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有上级数据单元中。
一般来说,用户日常提交的变更单元数据可能仅仅是数据值的变化,但也可能是维度结构的变化,针对不同情况有不同的汇总方式。在数据值变化的情况下,需要计算出当前新数据与原数据之间的差异,然后逐级类型该差异,提高了汇总效率。
在上述技术方案中,优选的,还可以包括:锁定单元,在查找所述关系型数据库中的所述原数据单元时,锁定所述上级数据单元中的数据;更新单元,将所述变更单元和更新后的所述上级数据单元写入所述关系型数据库;解锁单元,在汇总结束后,对所述上级数据单元中的数据进行解锁。
为了防止多线程并发造成的数据错误,在查询过程中,需对上级数据单元中的数据进行加锁。
在上述任一技术方案中,优选的,在所述用户选择的汇总方式为全局汇总方式时,所述数据汇总装置还包括:清除单元,清除原汇总数据,保留末级数据;分组单元,根据选定的维度对所述变更单元进行分组得到多个单元变更子集;所述汇总单元还用于依据所述末级数据,从每个所述变更单元子集开始逐级递归向上汇总,生成所述变更单元的所有上级数据单元的汇总数据。
若用户提交的变更单元数据涉及的是维度结构的变化,那么需采用全局汇总方式,清空所有的原汇总数据,但保留末级数据,根据末级数据和更改的维度结构重新汇总数据,虽然没有用到差异数据,但仍根据提交的变更单元数据的维度信息查找到上级维度成员列表,并在汇总时,逐级递归向上汇总。
根据本发明的另一方面,还提供了一种数据汇总方法,包括以下步骤:步骤302,接收用户提交的变更单元,获取所述变更单元的维度信息;步骤304,根据所述维度信息从关系型数据库中查找出所述变更单元的上级数据单元;步骤306,根据所述变更单元修改所述上级数据单元的数据。
在关系型数据库管理系统中实现多维数据的实时汇总,在提交变更单元数据时,根据变更单元的维度信息可得到上级数据单元的维度信息,从而可定位到上级数据单元,依据提交的变更单元数据就可以更改上级数据单元的数据,完成数据汇总,从而实现在业务发生时,可同时进行数据汇总,具有实时性。
在上述技术方案中,优选的,在所述用户选择的汇总方式为增量汇总方式时,所述步骤304具体包括:遍历所述变更单元中的每个数据单元,取出所述每个数据单元的维度信息;计算出所述每个数据单元的每个维度上的上级维度成员列表;在上级维度成员列表中,合并具有相同维度的上级维度成员,得到所述上级数据单元。
变更单元中包括至少一个数据单元,每个数据单元包含了各自的维度信息,依据多维数据的预先定义,可根据维度、维度的层次以及维度的成员得到每个数据单元的每个维度上的上级维度成员列表,从而确定上级数据单元。
在上述技术方案中,优选的,所述步骤306具体包括:根据所述变更单元的维度信息从所述关系型数据库中提取出所述原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有上级数据单元中。
一般来说,用户日常提交的变更单元数据可能仅仅是数据值的变化,但也可能是维度结构的变化,针对不同情况有不同的汇总方式。在数据值变化的情况下,需要计算出当前新数据与原数据之间的差异,然后逐级类型该差异,提高了汇总效率。
在上述技术方案中,优选的,所述步骤306还包括:在查找所述关系型数据库中的所述原数据单元时,锁定所述上级数据单元中的数据;将所述变更单元和更新后的所述上级数据单元写入所述关系型数据库;在汇总结束后,对所述上级数据单元中的数据进行解锁。
为了防止多线程并发造成的数据错误,在查询过程中,需对上级数据单元中的数据进行加锁。
在上述任一技术方案中,优选的,在所述用户选择的汇总方式为全局汇总方式时,所述步骤302还包括:清除原汇总数据,保留末级数据,根据选定的维度对所述进行分组得到多个变更单元子集;所述步骤306具体包括:依据所述末级数据,从每个所述变更单元子集开始逐级递归向上汇总,生成所述变更单元的所有上级数据单元的汇总数据。
若用户提交的变更单元数据涉及的是维度结构的变化,那么需采用全局汇总方式,清空所有的原汇总数据,但保留末级数据,根据末级数据和更改的维度结构重新汇总数据,虽然没有用到差异数据,但仍根据提交的变更单元数据的维度信息查找到上级维度成员列表,并在汇总时,逐级递归向上汇总。
本发明提出了一种更加轻量级的多维数据汇总技术,通过高效率的内存汇总,在关系型数据库管理系统上,实现多维数据的实时汇总,即业务数据按照多个维度,多个层次向上逐层汇总。并保证了很高的效率,不影响正常业务的进行。相比较OLAP的物化汇总方案,该方案更加轻便且容易实施,节省了汇总计算成本,而且保证了汇总数据的实时性,业务发生的时候同时同步进行数据汇总。并且汇总数据和原始数据在一个数据表中存储,方便随时查询分析。
附图说明
图1A至图1C示出了根据本发明的实施例的维度结构图;
图2示出了根据本发明的实施例的数据汇总装置的框图;
图3示出了根据本发明的一个实施例的数据汇总方法的流程图;
图4示出了根据本发明的又一实施例的数据汇总方法的流程图;
图5示出了根据本发明的实施例的增量汇总方法的流程图;
图6示出了根据本发明的实施例的全局汇总方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
首先结合图1A至图1C来说明在本发明的实施例中的多维数据的表达和存储。
对于业务数据,需要预先设定数据的维度(Dimension)。
维度(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维度,例如时间维度,组织维度,产品维度等等。
维度的层次(Level):是对维度的进一步的细分,如时间维度可以细分为,年层次,季度层次,月层次。
维度的成员(Member):维度的具体取值,是数据在某个维度中位置的描述,如“2012年3月”是数据在时间维度上的位置的描述。
通过定义多个不同的维度,能够更加灵活地观测和分析数据,每个维度的层次关系是以树形结构进行存储的,这样便于数据的汇总。
多维数据集(Cube):由多个维度组成的数据载体,Cube就像一个坐标系,其中的每一个维度(Dimension)代表一个坐标轴。
为了便于更加清晰的理解本发明,在本发明的实施例中以三维为例,给出了维度结构图,如图1A至图1C所示。
在下面的实施例中,使用RDBMS(relational database managementsystem,关系型数据库管理系统)来存储多维数据集,多维数据集的数据表结构如下表所示:
坐标 | 年 | 季度 | 月 | 组织 | 科目 | 数据 |
2011.3.7.O1.CL | 2011 | 3 | 7 | 部门d | 差旅费 | 5000 |
2011.3.~.O1.CL | 2011 | 3 | ~ | 部门d | 差旅费 | 8000 |
2011.~.~.O1.CL | 2011 | ~ | ~ | 部门d | 差旅费 | 32000 |
从上面的数据可以看出,汇总数据(最后一行数据)和末级数据(第一行数据)是存在同一张数据库表里面的。其中坐标这一列是把各个维度的主键字段,经过压缩映射后,组合而形成的一个字符串,坐标字段是全表唯一的,不能有两行数据有重复的坐标值。根据坐标值,可以很方便而准确的查询出多维数据的值。压缩映射的目的是为了减少存储空间,同时提高查询的性能和效率。
接下来结合图2来说明根据本发明的数据汇总装置。
如图2所示,根据本发明的实施例的数据汇总装置100包括:获取单元102,接收用户提交的变更单元,获取所述变更单元的维度信息;查找单元104,根据所述维度信息从关系型数据库中查找出所述变更单元的上级数据单元;汇总单元106,根据所述变更单元修改所述上级数据单元的数据,并将所述变更单元的数据和更新后的所述上级数据单元的数据写入所述关系型数据库。
在关系型数据库管理系统中实现多维数据的实时汇总,在提交变更单元数据时,根据变更单元的维度信息可得到上级数据单元的维度信息,从而可定位到上级数据单元,依据提交的变更单元数据就可以更改上级数据单元的数据,完成数据汇总,从而实现在业务发生时,可同时进行数据汇总,具有实时性。
优选的,所述查找单元104可以包括:遍历子单元1042,遍历所述变更单元中的每个数据单元,取出所述每个数据单元的维度信息;计算子单元1044,计算出所述每个数据单元的每个维度上的上级维度成员列表;合并子单元1046,在上级维度成员列表中,合并具有相同维度的上级维度成员,得到所述上级数据单元。
变更单元中包括至少一个数据单元,每个数据单元包含了各自的维度信息,依据多维数据的预先定义,可根据维度、维度的层次以及维度的成员得到每个数据单元的每个维度上的上级维度成员列表,从而确定上级数据单元。
在上述技术方案中,优选的,在所述用户选择的汇总方式为增量汇总方式时,所述汇总单元106包括:提取子单元1062,根据所述变更单元的维度信息从所述关系型数据库中提取出所述原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;递归子单元1064,从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有上级数据单元中。
一般来说,用户日常提交的变更单元数据可能仅仅是数据值的变化,但也可能是维度结构的变化,针对不同情况有不同的汇总方式。在数据值变化的情况下,需要计算出当前新数据与原数据之间的差异,然后逐级类型该差异,提高了汇总效率。
优选的,该数据汇总装置100还可以包括:锁定单元108,在查找所述关系型数据库中的所述原数据单元时,锁定所述上级数据单元中的数据;解锁单元110,在汇总结束后,对所述上级数据单元中的数据进行解锁。
为了防止多线程并发造成的数据错误,在查询过程中,需对上级数据单元中的数据进行加锁。
在上述任一技术方案中,优选的,在所述用户选择的汇总方式为全局汇总方式时,所述数据汇总装置还包括:清除单元112,清除原汇总数据,保留末级数据;分组单元114,根据选定的维度对所述变更单元进行分组得到多个单元变更子集;所述汇总单元106还用于依据所述末级数据,从每个所述变更单元子集开始逐级递归向上汇总,生成所述变更单元的所有上级数据单元的汇总数据。
若用户提交的变更单元数据涉及的是维度结构的变化,那么需采用全局汇总方式,清空所有的原汇总数据,但保留末级数据,根据末级数据和更改的维度结构重新汇总数据,虽然没有用到差异数据,但仍根据提交的变更单元数据的维度信息查找到上级维度成员列表,并在汇总时,逐级递归向上汇总。
下面结合图3至图6进一步说明根据本发明的数据汇总方法。
如图3所示,根据本发明的实施例的数据汇总方法,包括以下步骤:步骤302,接收用户提交的变更单元,获取变更单元的维度信息;步骤304,根据维度信息从关系型数据库中查找出变更单元的上级数据单元;步骤306,根据变更单元修改上级数据单元的数据,并将变更单元的数据和更新后的上级数据单元的数据写入关系型数据库。
在关系型数据库管理系统中实现多维数据的实时汇总,在提交变更单元数据时,根据变更单元的维度信息可得到上级数据单元的维度信息,从而可定位到上级数据单元,依据提交的变更单元数据就可以更改上级数据单元的数据,完成数据汇总,从而实现在业务发生时,可同时进行数据汇总,具有实时性。
优选的,在用户选择的汇总方式为增量汇总方式时,所述步骤304具体包括:遍历所述变更单元中的每个数据单元,取出所述每个数据单元的维度信息;计算出所述每个数据单元的每个维度上的上级维度成员列表;在上级维度成员列表中,合并具有相同维度的上级维度成员,得到所述上级数据单元。
变更单元中包括至少一个数据单元,每个数据单元包含了各自的维度信息,依据多维数据的预先定义,可根据维度、维度的层次以及维度的成员得到每个数据单元的每个维度上的上级维度成员列表,从而确定上级数据单元。
优选的,所述步骤306具体可包括:根据所述变更单元的维度信息从所述关系型数据库中提取出所述原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有上级数据单元中。
一般来说,用户日常提交的变更单元数据可能仅仅是数据值的变化,但也可能是维度结构的变化,针对不同情况有不同的汇总方式。在数据值变化的情况下,需要计算出当前新数据与原数据之间的差异,然后逐级类型该差异,提高了汇总效率。
优选的,所述步骤306还可以包括:在查找所述关系型数据库中的所述原数据单元时,锁定所述上级数据单元中的数据;在汇总结束后,对所述上级数据单元中的数据进行解锁。
为了防止多线程并发造成的数据错误,在查询过程中,需对上级数据单元中的数据进行加锁。
在上述任一技术方案中,优选的,在所述用户选择的汇总方式为全局汇总方式时,所述步骤302还包括:清除原汇总数据,保留末级数据,根据选定的维度对所述进行分组得到多个变更单元子集;所述步骤306具体包括:依据所述末级数据,从每个所述变更单元子集开始逐级递归向上汇总,生成所述变更单元的所有上级数据单元的汇总数据。
若用户提交的变更单元数据涉及的是维度结构的变化,那么需采用全局汇总方式,清空所有的原汇总数据,但保留末级数据,根据末级数据和更改的维度结构重新汇总数据,虽然没有用到差异数据,但仍根据提交的变更单元数据的维度信息查找到上级维度成员列表,并在汇总时,逐级递归向上汇总。
如图4所示,增量汇总的算法可以分为4个步骤,分别是:
步骤402:计算上级单元的维度信息,该步骤根据用户提交的变更单元集C,遍历C中的每一个数据单元(Cell),取出该数据单元的维度信息,计算出该数据单元在每个维度上的上级维度成员列表,并把不同维度上的上级成员列表做笛卡尔运算,得到上级数据单元的坐标,最后把重复的坐标进行合并。以上表为例,对于C中的一个Cell:[2011年3季7月][部门d][差旅费],共可以计算得到17个上级单元坐标,把C中的每个Cell都进行一次计算后可以得到上级坐标的一个列表。
步骤404:获取步骤402的计算结果,根据坐标集合,查询关系型数据库管理系统,得到上级数据单元的列表集合P,同时查询集合C在数据库中的原有数据单元集合C0,在此过程中需要对P中的数据进行加锁,以防止多线程并发的时候可能造成的数据错误。
步骤406:在内存中进行增量汇总计算,并把计算结果写入集合P。该步骤的具体处理流程,请参见图5。
步骤408:提交变更单元集C和上级数据单元列表集合P中发生变更的数据单元到关系型数据库。完成增量计算后,向数据库中写入变更的数据,事务完成,同时释放在步骤404中对数据所加的锁。
如图5所示,在该实施例中,使用递归算法自底而上进行增量汇总的计算,从集合C中的数据单元开始递归向上汇总,在步骤502,判断集合C中是否有剩余的数据单元,如果没有,说明处理结束,如果有,则继续下面的处理过程。在步骤504,比较末级单元格的新数据和上一个版本的数据之间的差异,计算出数据增量diff(即差异)。在步骤506,计算该数据单元在某个维度i上取直接上级的上级单元Pi的坐标。
在步骤508,判断该上级数据单元的坐标Pi是否为空,若空,则进入步骤514,若不为空,则进入步骤510。
在步骤510,根据坐标Pi查询该上级数据单元。在步骤512,然后把这个diff累加到查询到的上级数据单元上,即提交的数据单元在某个维度上的父亲单元格上,然后以父单元为基础,继续进行递归调用,直到汇总过程结束,需要注意的是,如果在P中不存在父单元,系统会自动生成一个数据单元。
在步骤514,若坐标为空,则继续判断是否有下个维度,若有下个维度,则继续判断下个维度下上级数据单元的坐标,回到步骤506。若没有下个维度,则进入步骤502,继续处理C中剩余的数据单元。
该汇总算法中关键部分的Java示意代码如下:
当用户提交的数据单元涉及维度机构的变化时,采用如图6所示的全局汇总方法。
增量汇总的前提是数据库中的汇总数据是正确,仅对局部的数据进行改变,以最小的计算量去修改汇总数据,而全局汇总的情况不同,由于维度的结构发生了变更,比如用户增加了维度,或者修改了维度成员的层次结构,导致原来的汇总数据有问题。因此,需要先清除所有的汇总数据,保留末级数据,再重新由末级数据数据重新汇总生成新的汇总数据。如图6所示,全局汇总的具体算法可以分为以下几个步骤:
步骤602:清除原汇总数据。步骤604:把末级数据按照某个维度例如科目进行分组,形成多个变更单元子集C,之所以选择科目这个维度进行分组,主要原因是数据在科目上的区分度较好,按照科目进行分组,能够保证每个变更单元子集合C的单元数目控制在一定的规模,不会太大,否则会给服务器的内存造成很大的压力。
步骤606:对于每个变更集C,调用增量汇总的算法incSum,图5所示的算法,重新把上级的汇总数据进行生成。在增量汇总的情况下,大部分时候上级数据单元列表集合P中的元素都是空的,系统会自动生成上级数据单元。而且增量数据的计算和增量汇总的情况稍有不同,在增量汇总的情况下:diff=C.getCell(cell).getValue()-C0.getCell(cell).getValue();
而在全局汇总的情况下:diff=C.getCell(cell).getValue()。
综上所述,本发明提出了一种更加轻量级的多维数据汇总技术,通过高效率的内存汇总,在RDBMS上,实现多维数据的实时汇总,即业务数据按照多个维度,多个层次向上逐层汇总。并保证了很高的效率,不影响正常业务的进行。相比较OLAP的物化汇总方案,该方案更加轻便且容易实施,节省了IT成本,而且保证了汇总数据的实时性,业务发生的时候同时同步进行数据汇总。并且汇总数据和原始数据在一个数据表中存储,方便随时查询分析。本发明可应用于涉及到需要对多维度数据进行高效率实时汇总的业务领域。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据汇总装置,其特征在于,包括:
获取单元,接收用户提交的变更单元,获取所述变更单元的维度信息;
查找单元,根据所述维度信息从关系型数据库中查找出所述变更单元的上级数据单元;
汇总单元,根据所述变更单元修改所述上级数据单元的数据,并将所述变更单元的数据和更新后的所述上级数据单元的数据写入所述关系型数据库;
遍历子单元,遍历所述变更单元中的每个数据单元,取出所述每个数据单元的维度信息;
计算子单元,计算出所述每个数据单元的每个维度上的上级维度成员列表;
合并子单元,在上级维度成员列表中,合并具有相同维度的上级维度成员,得到所述上级数据单元。
2.根据权利要求1所述的数据汇总装置,其特征在于,在所述用户选择的汇总方式为增量汇总方式时,所述汇总单元包括:
提取子单元,根据所述变更单元的维度信息从所述关系型数据库中提取出原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;
递归子单元,从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有上级数据单元中。
3.根据权利要求2所述的数据汇总装置,其特征在于,还包括:锁定单元,在查找所述关系型数据库中的所述原数据单元时,锁定所述上级数据单元中的数据;
解锁单元,在汇总结束后,对所述上级数据单元中的数据进行解锁。
4.根据权利要求1至3中任一项所述的数据汇总装置,其特征在于,在所述用户选择的汇总方式为全局汇总方式时,所述数据汇总装置还包括:清除单元,清除原汇总数据,保留末级数据;
分组单元,根据选定的维度对所述变更单元进行分组得到多个单元变更子集;
所述汇总单元还用于依据所述末级数据,从每个所述变更单元子集开始逐级递归向上汇总,生成所述变更单元的所有上级数据单元的汇总数据。
5.一种数据汇总方法,其特征在于,包括以下步骤:
步骤302,接收用户提交的变更单元,获取所述变更单元的维度信息;
步骤304,根据所述维度信息从关系型数据库中查找出所述变更单元的上级数据单元;
步骤306,根据所述变更单元修改所述上级数据单元的数据,并将所述变更单元的数据和更新后的所述上级数据单元的数据写入所述关系型数据库;所述步骤304具体包括:遍历所述变更单元中的每个数据单元,取出所述每个数据单元的维度信息;
计算出所述每个数据单元的每个维度上的上级维度成员列表;
在上级维度成员列表中,合并具有相同维度的上级维度成员,得到所述上级数据单元。
6.根据权利要求5所述的数据汇总方法,其特征在于,在所述用户选择的汇总方式为增量汇总方式时,所述步骤306具体包括:根据所述变更单元的维度信息从所述关系型数据库中提取出原数据单元,并计算出所述变更单元与所述原数据单元之间的差异;
从所述变更单元开始逐级递归向上汇总,将所述差异累加至所述变更单元的所有上级数据单元中。
7.根据权利要求6所述的数据汇总方法,其特征在于,所述步骤306还包括:在查找所述关系型数据库中的所述原数据单元时,锁定所述上级数据单元中的数据;
在汇总结束后,对所述上级数据单元中的数据进行解锁。
8.根据权利要求5至7中任一项所述的数据汇总方法,其特征在于,在所述用户选择的汇总方式为全局汇总方式时,所述步骤302还包括:清除原汇总数据,保留末级数据,根据选定的维度对所述变更单元进行分组得到多个变更单元子集;
所述步骤306具体包括:依据所述末级数据,从每个所述变更单元子集开始逐级递归向上汇总,生成所述变更单元的所有上级数据单元的汇总数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371809.6A CN102867066B (zh) | 2012-09-28 | 2012-09-28 | 数据汇总装置和数据汇总方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371809.6A CN102867066B (zh) | 2012-09-28 | 2012-09-28 | 数据汇总装置和数据汇总方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102867066A CN102867066A (zh) | 2013-01-09 |
CN102867066B true CN102867066B (zh) | 2015-10-21 |
Family
ID=47445935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210371809.6A Active CN102867066B (zh) | 2012-09-28 | 2012-09-28 | 数据汇总装置和数据汇总方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102867066B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500185B (zh) * | 2013-09-13 | 2018-07-06 | 北京奇虎科技有限公司 | 一种基于多平台数据生成数据表的方法和系统 |
CN104281713B (zh) * | 2014-10-28 | 2018-10-19 | 用友网络科技股份有限公司 | 数据汇总方法和数据汇总装置 |
CN104346449B (zh) * | 2014-10-28 | 2017-11-24 | 用友网络科技股份有限公司 | 数据合并方法和数据合并装置 |
CN105630580A (zh) * | 2014-11-07 | 2016-06-01 | 远光软件股份有限公司 | 基于调度平台的数据汇总方法及数据汇总装置 |
CN105450672B (zh) * | 2016-01-05 | 2018-11-09 | 上海大之商科技发展股份有限公司 | 一种财务数据的内部网络安全传输方法与系统 |
CN109711943B (zh) * | 2018-12-28 | 2021-05-25 | 杭州数梦工场科技有限公司 | 订单统计方法、装置及系统 |
CN109739940A (zh) * | 2018-12-29 | 2019-05-10 | 东软集团股份有限公司 | 联机分析处理方法、装置、存储介质及电子设备 |
CN112905691B (zh) * | 2019-11-19 | 2024-05-14 | 中盈优创资讯科技有限公司 | 信息同步方法及装置 |
CN111427894A (zh) * | 2020-03-26 | 2020-07-17 | 山东浪潮通软信息科技有限公司 | 一种基于单据在全面预算中实现数据增量汇总的方法 |
CN113672598B (zh) * | 2021-10-22 | 2022-01-21 | 国能(北京)商务网络有限公司 | 一种面向供应链采购的多视角数据维度模型的构建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100498785C (zh) * | 2006-11-23 | 2009-06-10 | 金蝶软件(中国)有限公司 | 一种联机分析处理系统中多维数据读写的方法和装置 |
CN101866358A (zh) * | 2010-06-12 | 2010-10-20 | 中国科学院计算技术研究所 | 一种多维区间查询方法及系统 |
CN102214176A (zh) * | 2010-04-02 | 2011-10-12 | 中国人民解放军国防科学技术大学 | 超大维表的切分与表连接方法 |
-
2012
- 2012-09-28 CN CN201210371809.6A patent/CN102867066B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100498785C (zh) * | 2006-11-23 | 2009-06-10 | 金蝶软件(中国)有限公司 | 一种联机分析处理系统中多维数据读写的方法和装置 |
CN102214176A (zh) * | 2010-04-02 | 2011-10-12 | 中国人民解放军国防科学技术大学 | 超大维表的切分与表连接方法 |
CN101866358A (zh) * | 2010-06-12 | 2010-10-20 | 中国科学院计算技术研究所 | 一种多维区间查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102867066A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102867066B (zh) | 数据汇总装置和数据汇总方法 | |
CN109669934B (zh) | 一种切合电力客服业务的数据仓库系统及其构建方法 | |
US7702622B2 (en) | Advanced techniques for SQL generation of performancepoint business rules | |
Goil et al. | High performance OLAP and data mining on parallel computers | |
Van Oosterom | Variable-scale topological data structures suitable for progressive data transfer: The GAP-face tree and GAP-edge forest | |
CA2279359C (en) | A method of generating attribute cardinality maps | |
CN102722531B (zh) | 一种云环境中基于分片位图索引的查询方法 | |
CN103577590A (zh) | 一种数据查询方法和系统 | |
EP1222569A1 (en) | Method and systems for making olap hierarchies summarisable | |
CN105718628B (zh) | 面向公差技术的装配体几何要素误差传递关系图表示和构建方法 | |
US20100235344A1 (en) | Mechanism for utilizing partitioning pruning techniques for xml indexes | |
CN102867065B (zh) | 基于关系型数据库的数据汇总装置和方法 | |
CN106991141A (zh) | 一种基于深度剪枝策略的关联规则挖掘方法 | |
CN113157943A (zh) | 面向大规模金融知识图谱的分布式存储及可视化查询处理方法 | |
CN105930388A (zh) | 一种基于函数依赖关系的olap分组聚集方法 | |
Srivastava et al. | TBSAM: An access method for efficient processing of statistical queries | |
Malinowski et al. | Logical representation of a conceptual model for spatial data warehouses | |
CN108804460A (zh) | 一种基于sql的查询语言 | |
Pedersen | Managing complex multidimensional data | |
Liu et al. | EntityManager: Managing dirty data based on entity resolution | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 | |
Cheng et al. | Generic cumulative annular bucket histogram for spatial selectivity estimation of spatial database management system | |
Ni et al. | An Efficient Method for Improving Query Efficiency in Data Warehouse. | |
CN108052522A (zh) | 一种对olap预计算模型进行动态优化的方法及系统 | |
Usman et al. | Multi level mining of warehouse schema |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100094 Haidian District North Road, Beijing, No. 68 Applicant after: Yonyou Network Technology Co., Ltd. Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant before: UFIDA Software Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |