【原创】关系型与维度型报表优劣之谈

专家坐诊版主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工具本身有约束性,固化在同一种模式下设计,反复修改调整动作大,扩展性没有数据库灵活。

       对于设计人员,重点在业务,理解需求,分析与研究需求未来变化。加强自身对数据库操作应用,发挥数据库强大的特点,结合工具的灵活性,整体提高报表性能。
参与34

34同行回答

wangjingyiwangjingyi软件开发工程师xxx
建模。。有待研究。显示全部
建模。。有待研究。收起
政府机关 · 2011-10-18
浏览1668
cognos2010cognos2010系统分析师IBM
好文章,精典总结!!显示全部
好文章,精典总结!!收起
银行 · 2011-10-18
浏览1667
hjb233hjb233数据库管理员东华软件
谢谢 学习了显示全部
谢谢 学习了收起
IT分销/经销 · 2011-10-08
浏览1695
cabellcabell软件开发工程师sz
可能会经常变动用rolap不变动的用Molap,毕竟cube做成后,改动比较麻烦(个人观点,不知道对不对,望高手指 ...hubeiliubin 发表于 2010-8-4 15:27    赞同一个。另还需要考虑数据量情况,大数据量且固化需求,应该用molap...显示全部
可能会经常变动用rolap不变动的用Molap,毕竟cube做成后,改动比较麻烦(个人观点,不知道对不对,望高手指 ...
hubeiliubin 发表于 2010-8-4 15:27



   赞同一个。另还需要考虑数据量情况,大数据量且固化需求,应该用molap收起
互联网服务 · 2011-09-29
浏览1710
lilinsiyecaolilinsiyecao软件开发工程师IBM
xie xie fen xiang显示全部
xie xie fen xiang收起
互联网服务 · 2011-05-26
浏览1651
csfightercsfighter专业技术支持人员北京多选公司
很经典.显示全部
很经典.收起
IT分销/经销 · 2010-08-06
浏览1685
csfightercsfighter专业技术支持人员北京多选公司
学习了.显示全部
学习了.收起
IT分销/经销 · 2010-08-06
浏览1704
gtja1986gtja1986系统管理员速度进房间
高手之谈,不错不错显示全部
高手之谈,不错不错收起
生活生产服务其它 · 2010-08-04
浏览1685
hubeiliubinhubeiliubin软件开发工程师惠州市惠城区环城西路柏子树下66号
可能会经常变动用rolap不变动的用Molap,毕竟cube做成后,改动比较麻烦(个人观点,不知道对不对,望高手指点)。显示全部
可能会经常变动用rolap不变动的用Molap,毕竟cube做成后,改动比较麻烦(个人观点,不知道对不对,望高手指点)。收起
政府机关 · 2010-08-04
浏览1636
wengrwengr数据库架构师bmsoft
曾经也做过这样的总结,看来和wengr的见解有分歧也有共同之处冰华敏 发表于 2010-7-27 10:12 谈不上见解,只是个人片面的总结,本文章之比较是基于统一的数据平台,如ROLAP与MOLAP都是基于Oracle数据,相同的维度与固定指标,MOLAP效率会更高。要是基于SybaseIQ等OLAP型数据库,ROLAP...显示全部
曾经也做过这样的总结,看来和wengr的见解有分歧也有共同之处
冰华敏 发表于 2010-7-27 10:12


谈不上见解,只是个人片面的总结,本文章之比较是基于统一的数据平台,如ROLAP与MOLAP都是基于Oracle数据,相同的维度与固定指标,MOLAP效率会更高。要是基于SybaseIQ等OLAP型数据库,ROLAP效率会更高,有统计过,SybaseIQ查询性能比Oracle要10倍以上,最高达到100倍之上。什么样的设计,根据当前环境有关,并非一个统一的标准与方案,具体问题具体实施分析。收起
IT咨询服务 · 2010-08-04
浏览1754

提问者

相关问题

相关资料

问题状态

  • 发布时间:2010-07-26
  • 关注会员:0 人
  • 问题浏览:15655
  • 最近回答:2011-10-18
  • X社区推广