Jade - 2007-11-26 9:23:00
BI 系统中的报表解决方案
1 BI 系统中的报表 报表在BI 系统中可以说是必不可少的内容,可以说,如果一个 BI 系统不包含报表将是不可想象的,差别只在于多少,样式,和展现形势。除去 Dashboard 类型的各种指示盘和温度计来看。基本的报表可以分成两个大类。固定格式报表和 OLAP拖拽报表。我们先来看看这两种报表有什么差别。1.1 固定格式报表 固定格式报表的代表就是中国政府的上报报表,以及各种财务报表,比如资产负债表,现金流量表等等。这类报表最开始的流程是手工设计,手工填写,然后在层层上交。之后经过一定程度的信息化建设,为了实现所谓的无纸办公,将报表格式原封不动的抄到了 Excel 中实现了一把。在这里,我不得不再一次的佩服一下 Excel对报表的强大支持.强大到至今,我还没见过任何一张报表是用Excel 实现不了的。 固定格式报表的特点就是行和列之间没有很大的关联性。比如同在一列里面,上一行和下一行可能是根本不相关的内容。所以在实际项目中只能先由客户提供模板,然后经由开发人员开发,才能得到所需要的内容。这种报表一旦修改起来往往也需要开发人员的介入,基本就是用程序直接从后来拿数据,然后再在前端拼起来。实施效率非常低下且调试验证相对复杂。下面是示例表样:
附件:
您所在的用户组无法下载或查看附件1.2 OLAP 报表OLAP 报表是在数据仓库基础上发展起来的报表类型,在前端工具的配合下,可以将 CUBE或者数据库中的数据通过拖拽展现出来。并且可以实现钻取,切片等操作。OLAP 报表的特点是制作简单,快捷,经过一定的培训可以由业务人员自定义制作。简便快捷。缺点在于无论如何也实现不了固定格式报表的样式。2 BI 报表的实现 我个人认为在 BI 的解决方案中,这两种报表的关系是平等的且都是必须的。不存在一种包含另一种,或者一种可以代替另一种的关系。因为通过拖拽我们是拖拽不出资产负债表的,同样,手工开发出来的报表也没办法进行上钻下钻之类的操作.下面,我们就分别来说说在实际项目中,两种报表的实现方法。2.1 OLAP 报表 在前端展现工具的支持下,OLAP 报表的实现变得异常简单。基本上只要定义好数据源,定义好相应的纬度和度量,直接往中间托就好了,这里就不多说了。基本上所有的前端展现工具都提供了这类报表的实现。相信只要底层数据结构设计的比较合理,制作这类报表不成问题。2.2 固定格式报表这里详细说说固定格式报表的实现。现在对于这类报表基本有两种实现方法· 按照报表格式,每一个单元格都对应在数据库中表中,计算并存储好,然后用脚本或程序拼成一个结果集展示· 在前端报表模版中指定每一个单元格需要显示什么内容,可以是事先做好的CUBE也可以是具体的数值 微软的解决方案中第一种方法的代表是 SSRS 而另一种就是 PerformancePoint Server 2007 中的 Planning. RS 的前端展现是由你能拼出什么样的结果集来决定的。也就是说不管你用什么语句,什么样的表结构,只要能将需要的字段都抓到,那么这张报表就算出来了。虽然这种解决方案不失为一种简单且实用的方法。可缺点也是显而易见的。Ø1,很可能发生的一种结果就是前台需要十张报表,后来就有十张物理的表对应,如果这十张表都引用了同一个值,就可能造成不同表之间的数据差异。Ø2,由于涉及脚本开发,以及多个字段的拼接,甚至对数据表结构的熟悉程度。基本不太可能由业务人员修改报表结构Planning 中的实现方式是预先定义好报表的模版,比如,我们预先定义好了资产负债表的行和列,然后通过 Excel打开模版并且指定报表模板中的每一个单元格应该显示什么内容。所能够选择的内容完全基于 CUBE,和事先定义好的指标。也就是说,你可以对每一个单元格指定任意纬度的任意值。从而最终填满整个报表模版。这种方式的优点恰恰是用 RS 方式实现的缺点。Ø1,因为所有的报表所引用的纬度都是统一的,这样就保证了多张报表,引用同一个数据的数据的一致性。Ø2,由于基于Excel 而且操作比较简便。我相信经过一定的培训,完全可以做到由业务人员自定义显示内容,减少了后期维护的工作量。3 总结 总体来说,在 BI 项目的实施中两种解决方案各有千秋,考虑到RS 是SQL Server 的自带模块,而PerformancePoint 则需要单独购买可能 RS 会更加常用。但一旦企业已经实施了PPS 我相信 PPS 的报表对比 RS 的报表将更具优势。