专家坐诊版主wengr原创文章
简述报表优劣现状
报表是任何一个系统不可缺少的模块,我们常见的带有查询功能区,数据输出区域根据条件选择返回结果,这也是报表的一部分。而项目中经常说报表,不只是业务系统、分析系统等其他统计类系统中才有的,任何系统都会有查询功能,都会有一个列表数据输出,其实归属于报表范畴。报表并没有严格的定义,更没有样式的界限。反映不同条件的限制,查询当前用户统计的结果,根据结果选择触发下一个分析与查询动作等等。
而报表设计上就是我们考虑的重点,从工具角度考虑设计,可分两种类型:关系型 与 多维分析型(OLAP)。两种类型在同等条件下,都可以满足客户常规需求,非特殊报表设计上要考虑选型。选型决定报表优劣性能,数据存储方式,后期维护与扩展,环境移植等长远规划问题。在项目中通过经验得出,选择你最成熟技术实现。
本文档是作者从事BI项目的经验总结,不代表技术权威性。能帮助对报表开发入门学者一点点指导,同时引领设计者自我完善与学习的过程。
关系型报表设计优劣
关系型报表是基于关系型数据库为源,如Cognos Framework Manager元数据管理工具,封装多表链接,发布到Web Server服务,直接进行开发设计。
基于关系型报表设计有哪些优点,又存在哪些缺点呢?
优点有:
1、 根据需求表样,可灵活设计,从汇总表直接查询结果。
2、 特殊表报可以通过存储过程动态生成数据集。
3、 根据数据库特性,创建查询索引,优化数据库。
4、 二次需求调整快,可以引用自定义函数。
5、 系统环境移植与项目工程改造易灵活,易扩展,易实现。
缺点有:
1、 非分析型(OLAP)数据库,表存储量日益庞大,查询性能降低。
2、 多表关联对数据库系统开销增大。
3、 实时转化成数据库识别的Sql语句。
多维分析型报表设计优劣
多维分析型(MOLAP)报表是基于Cube数据集为源,如Cognos Transformer多维建模工具,并生成PowerCube维度指标集,发布到Web Server服务,利用Report Studio开发报表。
基于多维分析型报表设计有哪些优点,又存在哪些缺点呢?
优点有:
1、 报表的查询直接以MDX的查询语句从数据文件中提取数据并展示,效率很高。
2、 维度各层级节点都已计算好的指标值,无需实时动态计算。
3、 设计简单,可以利用MDX函数实现复杂功能。
4、 可以根据需求特定化制作报表,简化计算逻辑。
5、 方便移植与部署。
缺点有:
1、 更新Cube文件需要消耗时间,长则12个小时以上。
2、 模型设计对业务要求高:维度越多,层级越深,性能越低。
3、 扩展性差:复杂需求频繁变更,没有发挥Cube真正的用途,纯粹满足报表需求是最差的设计。
4、 Cube文件需要占用大量的存储空间,每个Cube调用都消耗大量内存。
5、 Cube与Cube之间不能直接访问。报表设计受限制,钻取只局限本Cube内。
优劣总结
两种模型设计报表都有各自特点,以优点选型是设计者最佳的准则。虽然同种需求在两种模型都可以实现,但我们要考虑性能与扩展,避免后期维护带来的压力。我个人喜欢基于关系型数据库源设计报表,毕竟数据库是一个非常成熟的产品,调优相对简单,技术面更广。BI工具本身有约束性,固化在同一种模式下设计,反复修改调整动作大,扩展性没有数据库灵活。
对于设计人员,重点在业务,理解需求,分析与研究需求未来变化。加强自身对数据库操作应用,发挥数据库强大的特点,结合工具的灵活性,整体提高报表性能。
收起