日期:2014-05-18  浏览次数:20531 次

BI,如何让成果可重复使用?
利用报表开发工具,开发一张报表,关键需要经过下面的步骤:

1、写SQL:要写SQL,首先,就要搞清楚报表要从哪些表、哪些字段中来,表与表之间的关联关系是如何的?要搞清楚这些问题,首先,就要有一个数据字典备查。但一般数据字典并没有阐述表与表之间的关联关系,于是,我们还要通过对系统数据存贮逻辑的理解,来建立视图。不同的报表工具,对于SQL的要求也不尽相同,好的报表工具,只需要写最简单的select即可,无须group by,也无须order by,而where也可以通过参数来任意定义自定义。

2、设置报表样式:报表样式主要包括:1)筛选条件,这其实是我们在开发报表中经常需要变换的。;2)标题、表头、表体、行、列、数据等样式。这些样式,需要对美工有一定的基础,或者需要较细心的设置。如字体大小颜色、背景颜色、对齐方式等等。而这些工作,并不是报表开发者擅长的,也不是报表开发者认为有技术含量的,却仍然由报表开发者来完成,并且,占据了报表从开发到投入使用整个开发周期中较长的时间。

3、发布报表:这个过程,借助报表开发工具,并不复杂。


那如何让自己在制作报表的过程中,能重复利用自己的劳动成果呢?比如,我们在做销售统计报表时,按部门统计是一张,按业务员统计又是一张;或者有时,需要增加一个字段或者减少一个字段。这些,只是对SQL脚本的简单修改,所以,我们通常可以通过数据库系统(如SQL Server)中的视图来完成重复利用。但是,通过视图来做,有一个最大的问题就是效率——为了让这个视图可重复利用,我们一定会做一个最大的结果集,如包括所有需要用到的字段,包括所有相关表的关联。一旦数据量较大,其影响就会非常大。传统ERP中查询报表,有的时候查上一年的数据,服务器就死在那了,主要就是这种原因导致的。那如何既能保证重复利用,又可以提高SQL查询效率呢?



------解决方案--------------------
Power-BI通过数据字典、数据视图及SQL查询构建器三个功能,就完美的实现了上述想法:

1、数据字典可通过EXCEL导入,导入之后,就可以随时看到每个字段的业务含义,不再需要临时查询数据字典;

2、数据视图存贮的是各表之间的关联关系,可按业务主题来进行设计;

3、一旦上述工作完成,就可通过查询构建器,来自动拖拽生成SQL。对于开发者而言,只需要将这次报表需要的字段拖拽到列区域,系统就会自动根据数据字典生成as脚本,同时判断用到了哪些表,自动根据数据视图,来生成join脚本。——用到的字段才select,用到的表才join;同时,通过中间表join的,系统也会自动将需要的表加进来,不但节省了写SQL的时间,而且,运行效率也会最大限度的提升。

其实,在BI系统的开发中,数据字典与数据视图相当于大厦的地基,基础打的越好,大厦也就可以建的更高。——为了构建绿色BI社区,Power-BI中上述功能完全免费!

而对于报表样式,Power-BI提供样式保存功能。通过样式保存功能,可以在自己精心设计好一种样式之后,将之保存。系统会自动剥离报表的数据信息,而只保存样式信息。这样,当其他报表想用到同样的样式时,即可随时选择并改变样式。——有了这项功能,我们就不会再害怕自己精心设计的样式是浪费时间了。

为了最大限度的实现成果重复利用,Power-BI提供上述内容的上传下载。通过上传功能,可让他人分享自己的劳动成果;而通过下载功能,则可享受别人的劳动成果。慢慢的,“我为人人,人人为

------解决方案--------------------
那如何让自己在制作报表的过程中,能重复利用自己的劳动成果呢?比如,我们在做销售统计报表时,按部门统计是一张,按业务员统计又是一张;或者有时,需要增加一个字段或者减少一个字段。这些,只是对SQL脚本的简单修改,所以,我们通常可以通过数据库系统(如SQL Server)中的视图来完成重复利用。但是,通过视图来做,有一个最大的问题就是效率——为了让这个视图可重复利用,我们一定会做一个最大的结果集,如包括所有需要用到的字段,包括所有相关表的关联。一旦数据量较大,其影响就会非常大。传统ERP中查询报表,有的时候查上一年的数据,服务器就死在那了,主要就是这种原因导致的。那如何既能保证重复利用,又可以提高SQL查询效率呢?
===================================
不知道你是用哪个工具..
一般,我一般的做法是.
1.导出立方中的所有维度到数据库中.
2.在数据库中用存储过程组装MDX语句,然后发送到MSAS.

------解决方案--------------------
可重复利用总是有限度的,基于定制的内容可重复利用的限度就更大了
如果使用的是同一主题,数据源是关系型数据库,修改存储过程就行,如果是cube,修改mdx,没啥特别的
------解决方案--------------------
每一个不同的用户,或者不同组的用户,都需要根据自己的角色(Role)来取得和自己相应的数据。有时这是根据信息安全的考虑。比如一个员工不应该看到另一个员工的个人信息。有时这是使用的需求。比如一个销售人员只关心自己的订单,而销售经理需要看到所有的订单情况。

如果BI工具没有提供直接的支持,开发人员就必须通过写脚本或编程来实现这种要求。但即使这种低效率的形式可以接受,有一些用法也不能够支持。比如当用户通过即时报表界面设计新的报表,我们不能要求用户自己添加脚本。所以不管从实用还是必须,BI软件都需要提供一个直接即便的支持。

这里以StyleReport为例,介绍一下角色订制数据提取的实现技术。

StyleReport提供了一个叫做Virtual Private Model的概念。它提供了一个让数据设计人员控制根据用户权限进行数据过滤和隐蔽的功能。因为对安全的考虑,VPM的实现是放在最下面的一层。所以所有的SQL语句都会经过VPM的处理。

VPM的定义可以通过数据模型界面,或者设计者自写的脚本。

因为脚本的提供,技术人员可以对数据的过滤有一个完全的控制。而因为VPM会对所有的SQL命令产生限制,一旦部署了VPM,我们就可以放心的把数据提供给即时报表的用户,同时得到完全的数据安全的保障。