BI系统中数据钻取汇总设计解析

互联网 | 编辑: 何毅 2011-05-15 05:46:00转载

在BI系统中,数据钻取是一个基本功能之一。但是这个简单的功能中,仍然有不少的内容值得我们去探讨。其中数据的汇总就是其中的一项。笔者举一个简单的例子。如现在有一张销售状况记录表,里面有业务员、客户和销售额等相关信息。

在BI系统中,数据钻取是一个基本功能之一。但是这个简单的功能中,仍然有不少的内容值得我们去探讨。其中数据的汇总就是其中的一项。笔者举一个简单的例子。如现在有一张销售状况记录表,里面有业务员、客户和销售额等相关信息。通常情况下,在报表层面,可以进行自由的组合。如可以将客户字段拖掉。此时就会自动根据业务员为关键字进行数据的汇总。此时采用的是求和的方式。但是,这里需要注意的是,并不是任何拖曳的动作,都可以采用求和汇总的方式。

▲BI系统中数据钻取汇总

一、什么情况下不适合采用求和汇总?

在对报表进行拖曳等操作时,一般采用的是求和的方式。如上面介绍的销售清空表。将客户字段拖曳掉的话,可以让系统自动按销售员进行汇总。但是并不是所有情况都适合采用这种方式。笔者举一些简单的例子,各位读者就会明白。如现在有一张反应员工工资增长状况的报表。如报表中有员工各个月份的工资情况。现在如果将时间信息拖曳掉,系统如果对工资进行自动汇总,此时合适呢?

这就要根据用户的实际需要来看。如果用户想看每一年的总工资,这未尝不可。但是这需要注意,有可能有员工没有工作到一年。此时反应的数据就会失真。在大部分情况下,此时用户比较关心的是这个员工的每个月平均工资,或者说最后一个月工资。此时就不能够简单的使用系统默认的汇总求和方式。

其实类似的清空还有很多。如科目余额、员工的人头数等等内容,都不能够简单的采用求和的方式 。通常情况下,一般都会采取最后一个值或者平均值的方式。如上图所示,一个成熟的BI系统,应该可以根据用户的需求进行灵活的调整。

二、报表调整的三个层级

一般对显示格式的调整,包含三个级别。第一个级别是信息对象级别。这也是BI系统中存储数据的最低级别。简单的说,一个信息对象就对应报表中的一个字段。用户可以在这个级别对报表层显示的格式进行调整。BI系统也会根据信息对象的类别设置默认的显示格式。在实际工作中,一般不建议对这个默认的格式进行调整。因为这是BI专家们根据许多年的经验设置的一个默认值。为此除非有特别的需求,否则的话一般不建议在这个层级对报表的现实格式进行调整。

二是报表的设计层面。其实信息对象只是对数据的一个整理的过程。具体的显现方式,信息对象层面并不是很擅长。最终报表的显示格式,一般都是在报表设计层面实现的。在这个层面可以设置报表的查询条件、过滤内容以及默认显示的内容等等。在实际项目中,报表的显示格式基本上是在这个层面定义的。

三是报表的层面。在报表设计层面定义的内容,一般都是通用性的内容。如一张报表可能会同时给5到10个用户使用。而这不同的用户又可能有不同的需求。当然,这些需求只是只有细微的差别,如显示的顺序或者说显示内容的多少之间的差异。针对这种情况,BI实施顾问不可能为每个用户都去设计一个报表。通常情况下,一般是设置一张通用的报表。然后用户在使用报表时,再根据自己的需要,调整相关的格式。

这就是BI报表设计中关于格式调整的三个层级。通常的建议是,不要在信息对象级别对显示的格式进行调整,最好采用默认的格式。如果用户需要进行格式的调整,那么最好在报表设计层面或者报表层面进行设置。这么操作时比较合理的,也能够提高系统的灵活性。

三、信息对象级别的设计

了解上面三个层面之后,我们再回过来看看这个汇总的功能。在对数据的拖曳操作,其计算的结果,是该采用汇总呢,又或者是采用平均值或者最后一个值,这主要是在信息对象的层面来确定的。因为这设计到数据的逻辑操作。其实从这个层面来将,无论是报表的设计还是报表层面,一般只针对的是显示的方式,而不涉及到数据的处理。对于数据的运作的规定,一般都是在信息对象层面来确定的。

如上图所示,在信息对象的例外集合中,可以规定这个信息对象,在拖曳操作时是该采用最后一个值的操作,还是采用汇总的操作。这需要根据企业的实际情况或者不同的业务来定。根据笔者的经验,对于大部分业务,其采用的是汇总的方式。如销售订单的金额、供应商采购金额等等。但是对于某些情况,则是采用最后一个值或者平均值的方式。如反映的是会计科目的余额,则需要采用最后一个值的方式。而需要统计的是企业员工的平均薪资增长情况,则比较适合采用平均值的方式。

作为实施顾问,要确定这一点还是具有一定的难度的。因为很多企业,他们都是第一次接触到BI项目。在日常工作中,他们没有特别的留意这方面内容。为此实施顾问往往需要跟用户进行不断的询问、确认,才能够获得相关的信息。最困扰的是,有时候用户自己都不知道自己需要什么、在这种情况下,实施顾问只能够根据自己以前的项目经验来进行判断。根据笔者的经验,跟会计科目余额相关、跟人事模块相关的内容,一般都不适合采用求和的汇总方式。那么到底是使用最后一个值还是平均值呢,这就要让用户进行最终的确认了。

四、计数器的应用

在实际工作中,针对拖曳操作,不一定最终跟关键值有关。即某些情况下,并不是简单的求和或者求平均值的问题。有可能还会涉及到比较复杂的情况。如可能会涉及到计数的需求。举一个简单的例子。现在有一张员工信息表,里面记录了企业10年以来员工的变动情况。现在用户的需求是,分析这十年以来员工人数的变动情况。此时就不能够简单的采用汇总或者求平均值。这需要涉及到计数的内容。简单的说,就是像Excel表格一样,能够统计每一年企业总的人数。

如上图所示,要实现这个人数汇总的功能,就需要使用计数的特性。计数的话,又要考虑一个问题。即如果需要计数的字段,其值是空的或者是0,是否需要统计进去?其实在Excel表格中做统计时,也会遇到这个问题。如用户在统计人数时,可能会根据工龄来统计。当工龄不足一年时,不统计在内。这么设计可以去除员工异常变动带来的不确定因素。此时就需要采用“不等于0的计数器”这种方式。而在某些情况下,需要将空的值考虑在内。如现在用户是根据身份证号码来统计人数。有可能在以前信息化系统薄弱的时候,没有输入员工的身份证号码。为此很多记录在这个字段处是空的。如果以这个字段作汇总的对象,那么久不能够采用“不等于0的计数器”。而是应该将空的字段也考虑进去。

综上所述,在钻取汇总功能中,用户需要关注其实现的层面。同时需要区分,到底汇总采用的是什么方式,是求和、平均还是最后一个值。

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑