商业智能漫谈

平时总被问到一些跟商业智能相关的很多问题,有些问题也是我当初入行的时候经常问的,经过时间的积累,自己总结出了这些问题的答案。也许我个人的理解还没有达到那种"境界",但还是更愿意拿出来分享一下并且跟大家一起探讨一下。

 

我该如何学商业智能

问这个问题的大多数是想要接触微软平台商业智能的朋友。微软SQL Server的版本经过这么多次更新后,产品和文档已经非常的丰富和健全,所以完全可以从它自带的Books On Line下手,里面的教程很不错,涉及到继承服务,分析服务和报表服务。虽然没一个教程覆盖的面很小,但是足以带你在技术上进行入门。

当然商业智能,除了智能外强调的还有商业,中文的这种译法可能比较勉强,但提到Business可能会更好的理解一些,这里面有更多的还是业务的意思(尽管这么说也不是很精确)。不同于BI的其它分支,BI接收到的需求往往是类似一个指标是如何计算出来的,或者一个数字为什么不准确了。所以这里都跟业务有着很强的关系,所以想要学习商业智能一定要跟业务一起学,有了业务才有了数据,有了数据你才能BI。

当然,相对于DBA来说,BI更强调技术的广泛,因为不只SQL,你可能还要学MDX,DAX,DMX等查询语言,有些时候甚至还要用.net比如c#写一个app或者powershell脚本来解决数据的特定问题或者CLR的存储过程,还需要知道怎么在SSRS下拼一张报表,甚至还有可能要懂Sharepoint,以及asp.net, webservices, IIS还有前端的很多技术,甚至更多时候你还得是一个Excel高手。

所以,学习BI,你准备好了吗?

 

BI如何做前端展现

这个问题每周都会有朋友问我,而我当初入这行的时候也有这样的问题。商业智能项目往往都是领导层提出来的,所以大家立刻想到用漂亮的前端来满足领导的需求倒也是很正常的逻辑。

BI的前端是一个很大的话题,但无非就是三个方案,使用现有工具,自己开发或者购买第三方产品。现有工具微软提供了很多,比如Excel, Sharepoint等,第三方的也很多但是很杂,都以Chart或者Dashboard为主。而要是自己开发呢,以前我是用asp.net webforms架构,其实这套窗体生命周期真的有点别扭,所以我后来都是用WPF或者silverlight,配合第三方的组件,效果也都很赞。

至于如何展现数据挖掘最近也经常有朋友问,可以说微软确实提供了几个asp.net的server control来展现决策树等挖掘模型的数据,不过我真的不推荐每一个提出这个问题的人对BI所理解的套路,商业智能对用户来说最终就是一个结果,比如,你在京东去购物,京东通过挖掘算法给你做的商品推荐,你会对它后面的购物篮模型感兴趣吗?用户关心的,只是推荐的商品是否准确而已。而回到如何展现数据挖掘,其实提问者脑子想的往往都是把这套东西拿出来在领导或者客户前炫耀一下,不过又回到最原始的话题,你到底要从商业智能中得到什么,是帮你解决问题还是只是一个你炫耀的工具。客户关心的,只是结果而已,所以成功的项目都会把大多数精力投入到数据的问题上去,而不是"面子"工程。

 

BI开发环境能嵌入到我现有的系统中吗?

也许你觉得这个问题很弱,但确实有很多人问。很多系统都强调平台的一致性,问这个问题的人大多数希望把这些集成自自己的系统之后,可以让业务人员或者客户自己去生成模型。

确实,这个圈子的很多人的很多想法就是这么很难让人理解。如果再回答这个问题,我觉得需要从另外几个问题来反问下自己,首先,你业务系统中的表,是谁创建的,开发人员还是最终用户。其次,你如何指望用户熟悉这套IT人员的工具以及让他们自己弄清楚数据的流程。最后,你的产品最终要给用户带来什么。

商业智能在一个项目中绝对不是一个功能那么简单,当然也不是那么高深和神秘,他具体是什么取决与你对它的规划和期望。所以,这个问题的答案,需要提出这个问题的人重新审视一下你的IT架构以及你到底想从BI中得到什么。

 

这个数字为什么不正确,这个维度层次应该怎么建?

真的有很多朋友,一上来就问我他的数字为什么不准确。来自各个行业的都会有,但这个问题真的很难回答,因为IT环境和业务成熟度不同,即使同一个行业的BI模型和解决方案以及对于细小问题的处理上都会存在很大的差异。BI的解决方案真的很难提出一个能适应所有场景的来,成功的项目往往都是在做各种的Balance。而数字上的问题跟自身的业务关系都很大,所以往往有人问我这个问题我都建议对方自己先去了解自身的业务,然后再来看数字的问题。当然我也曾被对方悲催的强制灌输业务过,不是我很反感,而是对于有些对方不该透露的业务问题,我真的不愿意去犯那个忌讳。

当然也有朋友还会问,我如何在有汇率变动的影响下去求我业务的增长都低应该是多少。OK,这个问题,应该是由业务人员或者财务人员来定的,所以,需要各位BI人员跟相关人员去确定,这个问题不是IT回答的,IT只能follow决策人员的决策然后将决策体现在IT之中。

所以对于这类问题,我向来是只给解决问题的建议和大体的方向,仅此而已。往往技术的理解是个短时间的过程,但是业务的理解真的不是那么简单。

 

微软的产品不支持这个,不支持那个。。。。。。吗?

我看过一个人抱怨说,Analysis Services不好,因为它不支持what if分析。还有抱怨分析服务的性能如何如何,或者抱怨前端方案不太丰富。

我跟MVP DBA沄剑聊过一个话题,他说国内的SQL Server环境确实不怎么好,遇到一个问题解决不了,大家想到的往往都是换数据库。这是国内在理解相关问题上的一贯思路。

当然,这个世界上没有完美的产品。微软的起步晚但是一直在借助自身的优势并且进步着。而对于what if这类分析,确实本就不是SSAS的事,那是在Excel里的功能,而分析服务的性能问题的提出者,我看了下他的设计,连产品的包装长度,宽度和高度这种数字都会拿过来作为一个度量设计到模型中去,这样的坑爹设计你换什么数据库都不好使。而前端方案微软其实是最有优势的,只不过很少以插件的方式提供,目的是为了降低成本和真正适应企业的环境,而一个公司已经被微软查了盗版不得不自己去盗版第三方的前端方案,我想说这个真的谁也帮不了你。

posted @ 2013-07-14 08:40  哥本哈士奇(aspnetx)  阅读(1669)  评论(2编辑  收藏  举报