微软BI方案参考---来自这些年的工作经验

自我介绍:

在学校的时候从asp转到asp.net从而接触了c#.net,期间为学校和社会做过很多的门面网站和一个BS的政务系统。毕业后从事BI的开发工作,主要关注SSAS往上的部分,包括复杂的动态报表的开发,后期发现Silverlight的优势所以研究RIABI中的应用,并把地图数据也应用进项目。第一个项目就取得了意想不到的效果,也成为了在BI圈里应用RIA方案里比较早的一批吃螃蟹的人。先后经历过公安,保险,广告以及电信行业的BI

题外话:为什么博客园id是aspnetx而从事的确实BI以及silverlight相关的工作,大致的原因就是如此吧。

 

 

正题:

为什么BI,海量数据的统计和分析通过BI的方案,相比于纯TSQL的统计,可以提高查询和分析的性能,另外通过多维分析的方式可以帮助客户更好的去理解数据。

最近总被问到相关的类似问题,所以平时就总结了一些,逐渐有了不成形的积累,大致记录如下。

微软可能受到些制约,所以很多产品在国内的支持力度并不是很给力,从事相关开发的人也相对少一些。本文主要根据我这些年的经验总结,给各位做评估的项目一些参考。

根据情况的不同,文中提及的产品名称没有标注版本,但通常都指其最新版本。后续版本可能会略有变化,但根据笔者的经验不会出现在未来三年中。

 

 

微软的BI产品体系:

SQLServer

BI的核心,其中从下到上包括三个部分,SSISSSASSSRS

SSIS负责ETL以及整体BI的调度。图形话界面比较直观。

SSAS,分析服务,包括Cube和数据挖掘。它也是跟我们通常所见的表和库相同的另外一种独立的库。

SSRS,报表,包括订阅和发布等功能,最新的版本集成了dundas的一些东西,比之前效果好那么一点。

以上三个模块的开发都是通过visual studio shell

 

 

附属产品体系

Office

体现在Excel中,Visio也有一些,但未见过应用。

MOSS

Sharepoint的收费版本,微软的门户解决方案。

PPS被集成到了新版中,就是以前的普科。

 

 

按照微软的产品架构的解决方案:

Windows Server

IIS

SQLServer->SSIS-SSAS-SSRA

MOSS->PPS

Office

优点,全套微软的解决方案,各部分无缝集成。前端客户培训成本低,都是其比较熟悉的Office工具。

缺点,完全依赖于微软的体系方案。比如要用PPS的一个功能,那么就被迫要部署MOSS以及购买MOSS整个的授权,对MOSS的维护又是一定的成本。

建议,除非你已经决定了采购微软的这些产品,否则还是建议你阅读完本文。

 

 

比较常见的方案:

Windows Server

IIS

SQLServer->SSAS

ETL层自定义框架

前端利用第三方组件自行开发

优点,ETLUI自己开发,可以解决比较复杂的需求。相对来说对于UI层差别很大,比如据说微软内部很多部门就是自己用Excel去连数据。

缺点,开发维护的成本高。

 

值得提一句的是,我所最近经历的项目ETL都是由团队自己封装的框架,完全不用SSIS。这个方案微软美国总部的某些专家也有提到。而我之前团队的兄弟们,除非数据量在1000万以内,否则都是宁可自己去实现ETL

关于为什么舍弃SSIS,先前团队的兄弟们曾反映过一个细节,就是在抽取Oracle数据的时候经常半路死掉,一直找不到问题。后来咨询过一些DBA,他们说是由于Oracle的驱动版本造成的问题。我相信这么一个比较折腾人的细节,就足够让很多兄弟抛弃SSIS这个平台了。

 

 

我推荐的方案:

Windows Server

IIS

SQLServer->SSAS

ASP.NET->WebServices

Silverlight

GIS

这个是我一直推荐的BI+RIA+GIS的方案。也就是利用商业智能,加富客户端比较强的展现能力,并通过地图的辅组来为客户更好的展现数据。

需要的知识体系:

操作系统,最基本的操作和维护安装等。

数据库,BI最基本的技能。

IISBS的方案现在已经成为方案的首选,另外某些情况下SSAS也要依赖一下IIS

SQL,主要在ETL层用到,而且工作量要超过整个BI的一半以上。

MDX,这个是用来查CUBE的,如果可以数据挖掘,那么还需要DMX

Powershell,某些东西用它来做会省很多事儿。

.netPowershell依赖这个,而且下面几样也依赖这个。

C#,封装服务,和silverlight开发用。

Silverlight,相比Flash的话,有经验的.net开发人员接触这个更快。

项目里根据需要可能需要一些第三方商业组件的支持,比如silverlightchart组件,这个购买一套现成的绝对比投入几个人月去开发合算的多。

 

 

国内BI 的现状:

首先,数据质量。这个在很多行业内都存在,数据的质量都比较愁人,比如外键的数值字段居然能出现全角的数字字段。IT力度实施不够也是一个原因,就像教老婆记账一样,老婆不会或者不愿意去做,最后即使做了,得到的数据也是没有意义的。

其次,需求。需求的混乱原因很多,对BI的不了解和对自己本身业务的认知程度。所谓知己知彼百战百胜,但很多行业以及项目实际上并不“知己”。

总之,项目很多,成功的少,大多都是为了报表和面子问题而去BI

 

 

微软的方案适合你吗?

相对于其它解决方案,可以说微软的产品确实存在些不足的地方,但是,随着SQLServer的版本演进,目前的版本来说这个差距应该已经说很小了,当然也不存在其它产品解决的了,而微软的产品解决不了的情况。

如果是遇到实在解决不了的问题,那么我觉得应该首先审视一下BI的建模,然后审视一下需求,因为大多数你费劲去解决的东西,实际上后来都不是用户所关注的,后者是纯粹的面子工程。

 

实现我的功能需要多长时间?

这个是经常被问到的问题。考虑这个问题主要还是要从几个方面来分析:数据的情况,比如数据量和数据质量等,此外还有需求的复杂程度以及业务的复杂程度,都决定时间的长短。当然这些确定了,项目才可以继续做计划。

另项目基本上都是以螺旋上升的形式来开发,很少说有第一版就成功的,这个过程是需要不断探索和积累的。

 

相关人员好招聘否以及Team的构建

很少有直接就做BI的人,但基本上都有两种情况,一种是从DBA转过来的,一种是从开发转过来的。我想我是后者。前者偏重底层,后者偏重表层。招聘的时候可以根据这个特点以及项目的情况来选择。

关于Team的构建,我见过比较多的是后边和前边分开的那种。也就是说数据库层的BI开发是管“后边”的人,做.net开发的是“前边”的人。我不反对这种划分,但是按照我的经验来说,一定要注意前后的衔接,虽然两个部分是两个队伍,但是一定要有一个认知就是大家是一个队伍,共同承担着项目的成败。而这里也需要一个天平来做一些决策,有些东西通过后边来解决,可以省很多前边的人的事,而有些东西如果前边稍微处理下,能给后边的人少很多麻烦。

 

BI有比较合适的参考资源吗?

我建议看SQLServerBooks on line,尽量看英文版吧,中文版有些细节翻译的实在不敢恭维。此外,微软的webcast也很值得在参考,虽然每节课都很长而且比较枯燥和抽象,但还是建议没事看看。

 

 

总结:

从某一个产品的角度来讲,也许微软在这小的方面做的不是很好,但是整体来说跟其它方案已经没有什么太大的差距,对,是太大的差距,差距还是有的,但是他的某些优点又足以弥补。此文从一个从业人员的经验角度出发,尽量不带任何感情色彩。部分可能带有本人在某些领域的短见,或者存在着错误以至于误人子弟,还请各位高手们指出。BI是个有潜力的领域,是个有价值的领域,国内也算个新生领域吧,圈子很小,还望有高人给予指点。

posted on 2011-10-10 23:38 哥本哈士奇(aspnetx) 阅读(4791) 评论(30) 编辑 收藏

评论:
#1楼 2011-10-11 07:43 | Crazy7      
好文,顶起!
 回复 引用 查看   
#2楼 2011-10-11 08:25 | 海南.胡勇      
很爽的文章~!
 回复 引用 查看   
#3楼 2011-10-11 08:37 | Rambo'Ma      
博主和我应该是一个行业,看到你的文章感觉很亲切,呵呵
 回复 引用 查看   
#4楼 2011-10-11 08:41 | rivensun      
我也是从开发转到BI上面来的,这文章看起来亲切!
 回复 引用 查看   
#5楼 2011-10-11 09:30 | 紫色永恒      
同道也,多交流!
 回复 引用 查看   
#6楼 2011-10-11 12:51 | dege301      
我主要做挖掘算法的,但并没有采用SSAS自带的,从底层自己搞起,只用到了sql数据引擎、SSRS、IIS、WinServer,但从BI角度来说咱们只是路线不同而已,楼主要不组个团吧,大家可以多交流。
 回复 引用 查看   
#7楼 2011-10-11 13:22 | 我是打酱油的      
300 ~ 1000 millions 的数据量,还在用自己写的ETL 不用SSIS,不知道是喜是忧。
 回复 引用 查看   
#8楼 2011-10-11 14:07 | I'm CY      
飘过
 回复 引用 查看   
#9楼 2011-10-11 16:47 | kevin0227      
好文
 回复 引用 查看   
#10楼 2011-10-11 17:46 | 敏而好学      
引用我是打酱油的:300 ~ 1000 millions 的数据量,还在用自己写的ETL 不用SSIS,不知道是喜是忧。

同感

 回复 引用 查看   
#11楼 2011-10-11 21:04 | suding      
@敏而好学
我们每天差不多10G,DW中500G,还用SSIS,全部组件都是自己有C#写的,毫无压力,当然不能和Hadopp这种比。不知道你的容量多大?

 回复 引用 查看   
#12楼 2011-10-11 21:05 | suding      
其实大家是不敢一毕业就是BI,个人做过SAP的ERP咨询,感觉全行业其实都在关注BI,是个好方向,大家加油~
 回复 引用 查看   
#13楼 2011-10-11 21:13 | huaxiaoyao      
呵呵,我也是做从aspnetx转过来做bi的,刚开始一个多月,还在看sql server 2005 as 中文指南,感觉挺不错.
 回复 引用 查看   
#14楼 2011-10-11 22:43 | Kurodo      
BI不等于报表,需要相当的周期,而耐心的人往往是欧洲人。。。
 回复 引用 查看   
#15楼[楼主] 2011-10-11 22:52 | aspnetx      
@紫色永恒
@rivensun
@Rambo'Ma
加qq,以后多交流。

 回复 引用 查看   
#16楼[楼主] 2011-10-11 22:53 | aspnetx      
@dege301
数据挖掘确实是可以独立开发,不比依赖微软的平台。做这个领域的不是很多,以后有很多东西还得多向你请教啊。

 回复 引用 查看   
#17楼[楼主] 2011-10-11 22:53 | aspnetx      
@敏而好学
@我是打酱油的
如果合理的封装一下的,会很有钱途的。

 回复 引用 查看   
#18楼[楼主] 2011-10-11 22:54 | aspnetx      
@Kurodo
尽管目前国内情况就是这样,所以BI真的有好多地方值得我们去发掘。

 回复 引用 查看   
#19楼[楼主] 2011-10-11 22:55 | aspnetx      
@suding
一起加油吧。

 回复 引用 查看   
#20楼[楼主] 2011-10-11 22:55 | aspnetx      
@huaxiaoyao
参考多方面的资料,会帮助理解,当然实际动手更重要。

 回复 引用 查看   
#21楼 2011-10-11 23:08 | Chowyan      
支持博主
 回复 引用 查看   
#22楼 2011-10-12 08:04 | OK_008      
写的不错,支持
 回复 引用 查看   
#23楼 2011-10-12 10:58 | manyof      
楼主建个群吧,方便大家交流啊
 回复 引用 查看   
#24楼[楼主] 2011-10-12 14:31 | aspnetx      
@manyof
338770
加这个群吧,还没有几个人,下次发表新文章的时候就顺便提下。

 回复 引用 查看   
#25楼 2011-10-13 13:47 | Lerry.Zhao      
学习
 回复 引用 查看   
#26楼 2011-10-13 21:16 | airwolf2026      
虽然看的云里雾里的.不过还是得说声谢谢分享
 回复 引用 查看   
#27楼 2011-10-21 15:55 | 黑头      
不错,你的博客我一直在关注
 回复 引用 查看   
#28楼[楼主] 2011-10-21 16:36 | 哥本哈士奇(aspnetx)      
引用黑头:不错,你的博客我一直在关注

多谢关注。

 回复 引用 查看   
#29楼 2011-10-26 14:39 | superboyli      
强烈顶一下。
 回复 引用 查看   
#30楼 2011-12-26 16:59 | 艾森Jeck      
支持楼主,刚准备从SQL转入BI,学习学习··
 回复 引用 查看   

文章和随笔为作者个人感悟,不代表任何公司或团体的立场和观点.

如需转载请加上博客园链接.

由于技术更新很快,请各位阅读的时候特意留意下文章的发布时间以及在这个时间相关技术或者产品的版本.

MSN:
aspnetx#live.com
QQ:
63036666
------------
目前关注:
ASP.NET(MVC2)
WPF & Silverlight
.Net framework 4.0
SQLServer2008 BI & GIS
PowerShell
设计模式
数据仓库
软件工程

昵称:哥本哈士奇(aspnetx)
园龄:6年8个月
荣誉:推荐博客
粉丝:116
关注:6

搜索

 

常用链接

随笔分类(358)

关注的博客

网站收集

我的CodePlex项目

积分与排名

  • 积分 - 554106
  • 排名 - 95