微软BI开拓者商业智能综述区BI探讨 微软BI系统架构设计(二)

1  /  1  页   1 跳转 查看:5419

微软BI系统架构设计(二)

微软BI系统架构设计(二)

--金立钢原创,转贴请注明出自微软BI开拓者www.windbi.com

目录
微软BI架构设计(一)----总体架构设计
微软BI架构设计(二)-----构建多维数据集
微软BI架构设计(三)-----多维数据集验证及数据仓库生成


      在前一篇文章中已经介绍了微软BI系统的架构,接下来我将分不同的文章来介绍构建微软BI架构的每一个步骤。
        今天我们来介绍第一步:创建Analysis Services数据库。
        我相信很多朋友都会问,为什么每一步不是创建数据仓库,关于这个原因,请参见我的另一个帖子“搭建OLAP系统新方法”(http://www.windbi.com/showtopic-389.aspx)。
        构建Analysis Services数据库是整个过程中最困难的一步,并不在于它要求多高的技术水平,而是它需要对客户需求准确的理解。作为一个开发人员来讲,理解客户需求是非常困难的,这也就意味着你很难去设定哪些是维度,哪些是量度,以及它们的属性。而这些也是客户无法帮助我们的,因为他们根本不懂什么是维度和量度。
        这时,一个既懂开发技术,又能够清楚了解客户业务的人就难得可贵了。
        Analysis Services数据库的建设是后面工作的基础,因为它将直接决定数据仓库、前端展现和ETL的设计。所以对它的设计一定要全方面的进行考虑,尤其是以后客户额外需求所带来的影响,即可扩展性,这也是我发现目前大多数Analysis Services数据库设计所欠缺的考虑。
        Analysis Services数据库的设计需要注意以下几个方面:
            1.尽量保证量度不包含任何实际的意义。
        这一点怎样理解,例如,有时我们会将收入、成本、费用设置为不同的量度,这在以后的扩展方面会存在一定的问题。而应该将设置一个维度称为指标(其中包括这三个成员),而设置一个量度称为金额。关于这种设计的优势我会在以后的帖子中详细说明。
            2.尽量将KPI和计算成员设置在Analysis Services数据库中,而不要设置在前端展现软件中,这样可以减少计算成员的设置数量,同时也易于维护。
            3.在尽可能的应用脚本功能。在Analysis Services数据库中你可以使用脚本功能实现很多强大的功能,包括计算成员的设置、聚合的函数、度量的汇总和格式的设置等等。
            4.创建标准的维度。每一个维度都要按照要求创建成标准的维度,例如主键必须为整型、包括排序键以及自定义汇总列等等,这样在后期扩展功能时会非常方便。
            5.首先创建一个大而全的多维数据集,然后再通过透视图切分成小的多维数据集,这样可以减少存储和维护量。
        更多的技巧我们以后会在多维分析专区中详细介绍。
        完成Analysis Services数据库的开发之后,我们就可以根据这个数据库来生成数据仓库,请参考下一篇帖子。
       
最后编辑jinligang 最后编辑于 2007-09-24 16:12:32
 

回复: 微软BI系统架构设计(二)

顶!
 

回复: 微软BI系统架构设计(二)

1.尽量保证量度不包含任何实际的意义。
这点不太明白。这么做有什么好处?能否把数量也和收入、成本等量度放入到一个度量中。


引用:
原帖由 jinligang 于 2007-8-27 17:34:00 发表
--金立钢原创,转贴请注明出自微软BI开拓者www.windbi.com

[font=Times New Roma......
 

回复: 微软BI系统架构设计(二)



引用:
原帖由 tumu 于 2007-9-5 10:08:00 发表
1.尽量保证量度不包含任何实际的意义。
这点不太明白。这么做有什么好处?能否把数量也和收入、成本等量度放入到......


度量值:金额
维度:金额类型(收入,成本,费用)

[measures].[收入金额] = ([金额类型].[收入],[measures].[金额])

...

类似的还有
度量值:用户行为次数
维度:
用户行为类型(定制,退定)

[measures].[定制数] = ([measures].[
用户行为次数],[用户行为类型].[定制])
 

回复: 微软BI系统架构设计(二)

但是,如果离开[金额类型]这个维度,在别的维度组合上观察数据时,金额的聚合值就没有任何意义?


引用:
原帖由 Administrator 于 2007-9-5 10:23:00 发表
[quote] 原帖由 tumu 于 2007-9-5 10:08:00 发表
1.尽量保证量度不包含任何实际的意义。
这点不太明白。......
 

回复: 微软BI系统架构设计(二)



引用:
原帖由 tumu 于 2007-9-5 11:29:00 发表
但是,如果离开[金额类型]这个维度,在别的维度组合上观察数据时,金额的聚合值就没有任何意义?
[quote] 原帖由 Administrator 于 2007-9-5 10:23:00 发表
[quote] 原帖由 tumu 于 2007-9-5 10:08:......


1.将这个度量值与维度的成员简单地结合使用;
2.将这个度量值与维度结合使用,生成新的业务概念,
比如在计算每天的纯收入时,
[measures].[纯收入] =
([measures].[金额],[金额类型].[收入]) - ([measures].[金额],[金额类型].[成本]) - ([measures].[金额],[金额类型].[费用])
或者直接在[金额类型]维度里做一个[纯收益]的计算成员.

不少时候不照此做的话,不能直观并简易地扩展业务模型.

3.有些时候原始的度量值也有意义,
不如上面提到的[measures].[用户行为次数],
就能在一定程度表征用户对该产品的关注程度,而不管他是正面关注还是负面关注.
 

回复: 微软BI系统架构设计(二)

关于这个技巧的细节请参考我的另一个帖子---量度设计技巧(http://www.windbi.com/showtopic.aspx?page=end&topicid=425)。
 
1  /  1  页   1 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.156256 second(s) , 4 queries.
返顶部