Friday, January 04, 2008

fwd: MS BI design


package最终该发布到sql server/filesystem上,发布前可能要修改某些变量,通常存在sql server表中

to reuse existing configurations, you must use the same names for the connection managers, including case,

Tip: Transforming Logic into Additive Measures(是否准时,在olap中,就加一维)especially true for logic that needs to be evaluated for every record at the detailed, fact-record level.

实例:CASE WHEN ShipDateKey <= DueDateKey THEN 1 ELSE 0 END AS OnTime
此处performance penalty不是问题, query will only be executed to load the data into the Analysis Services database.

An alternative approach to modeling this is to add a new On Time Category dimension that has two records, On Time and Late.好处是可以选维成员,只分析落入此类的shipment

不能加和的,则在cube里工作不好Analysis Services 2005 has some other ways of aggregating numbers beyond a simple sum such as Max or Min, and even supports some advanced scenarios for dealing with data that behaves strangely over time; by and large, however, most measures are summed

具体实行AS:1. Logical data model: You can select the parts of the source database that will be used for analysis by defining a logical view of the database called a data source view (DSV),

2. we need to create the relationships between Fact table和维度表 (especiall if they are view not table,没有主键),2个表也可可能有多重关系aka "role playing dimension

3.build the initial cube The wizard 根据前述dsv关系自动推断哪个适合fact,dimension
最常见只用1个cube 可以含多个不同粒度的fact table.
每个事实表既一个measure group, with a corresponding set of measures based on the numeric fact columns.

4。先deploy结构,再被提示process数据
??为何wizard要选time dimension table
金立钢原创,转贴请注明出自微软BI开拓者www.windbi.com

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

BI已成为微软产品线中不可或缺的一部分。从2005年到2007年,微软在其BI产品线中增加了大量的产品,本文将介绍微软BI产品线的各款产品及其系统架构。
从下图中可以看到,微软BI产品线已经涵盖了所有BI功能点,具体如下:
1. ETL:SQL Server 2005 Integration Services
2. 数据仓库:SQL Server 2005 Database Engine
3. OLAP:SQL Server 2005 Analysis Services
4. 数据挖掘模型:SQL Server 2005 Analysis Services
5. 多维数据分析(B/S):
Ø Proclarity(2007年12月之前)
Ø OWC
Ø Performance Point Server Analystic(2007年12月之后)
6. 多维数据分析(C/S):Excel 2007
7. 计划分析(C/S):Performance Point Server Planning
8. 平衡计分卡:Performance Point Server ScoreCard
9. 报表:SQL Server 2005 Reporting Services + Dundas
10. Data Mining Viewer(C/S):Excel Data Mining Add-in
11. Data Mining Viewer(B/S):自定义开发
12. BI Portal:SharePoint Server 2007
涉及的语言:
1. MDX
2. DMX
3. T-SQL
4. VB Script
5. ASP.NET
6. C#


微软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数据库的开发之后,我们就可以根据这个数据库来生成数据仓库,请参考下一篇帖子。

suntt - 2007-8-28 9:19:00
顶!
tumu - 2007-9-5 10:08:00
1.尽量保证量度不包含任何实际的意义。
这点不太明白。这么做有什么好处?能否把数量也和收入、成本等量度放入到一个度量中。



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

[font=Times New Roma......
Administrator - 2007-9-5 10:23:00



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


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

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

...

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

[measures].[定制数] = ([measures].[用户行为次数],[用户行为类型].[定制])
tumu - 2007-9-5 11:29:00
但是,如果离开[金额类型]这个维度,在别的维度组合上观察数据时,金额的聚合值就没有任何意义?



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



引用:
原帖由 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].[用户行为次数],
就能在一定程度表征用户对该产品的关注程度,而不管他是正面关注还是负面关注

在上一篇帖子中,介绍了如何构建多维数据集及创建过程中的注意事项,在完成多维数据集的创建之后,我们需要根据多维数据集生成数据仓库,具体创建的方法请参考我的另一个帖子----创建OLAP系统新方法。可能这种方法很少有人使用过,但却是创建OLAP系统最快的一种方法。
在生成数据仓库之后,我们需要在数据仓库中填充测试数据,来实现对多维数据集的测试。
测试数据的生成我想每个人都有各自的方法,我个人比较喜欢利用现有的一些数据,而不会使用程序生成数据,因为我觉得这样的数据不具有规律性,有时候更容易发现一些问题。
在填充测试数据之后,我们就可以处理已经创建的多维数据集,并且对多维数据集进行验证。
多维数据集的验证是一个痛苦的过程,因为你需要尽可能的考虑到客户的需求,这时候考虑得越详细,日后的工作量就会越少,如果这时只是简单的测试一下,那么日后引发的修改量将会非常大。
在验证的过程中,同时要考虑到OLAP查询和报表的需求,因为这两种展现形式对多维数据集的结构要求是有一定区别的



老师在此说的,一语道破olap成功的关键,值得每个用户仔细思考。我在此引用金老师在msdn讲座中的对olap的三个主要功能:报表、钻取、挖掘的精辟解释与大家分享。1、报表:反映目前的状况(企业是否存在问题)。2、钻取:能帮助我们追踪问题产生的原因;3、挖掘:可以预测未来或未知的规律。 我理解金老师强调的是olap发挥它巨大作用是在钻取和挖掘方面,而前几年国内很多银行上数据仓库,投资巨大仅仅实现了报表功能,我认为根本原因正如金老师所说的,业务部门对它的认识不到位。


据Gartner的定义,业务流程管理包括管理和IT两个层面的技术,管理层面主要解决业务流程的分析策略以及业务流程的设计、监控和仿真优化等问题,典型代表是IDS Scheer公司的ARIS软件;而IT层面,则涵盖了业务流程执行和集成,包括中间件、EAI、工作流管理等相关技术,典型代表是IBM的WebSphere、BEA的WebLogic、Ultimus的BPM组件和Webmethods的EAI系统等。在IT层面,BPM市场的供应商从以下四个不同方面提供解决方案:

◆ 业务流程模块化和分析——集中在获得业务流程详细信息和变化对流程的潜在影响;

◆ 工作流自动化——集中在自动化以人为中心的流程上;

◆ 企业程序集成——集中在不同系统之间的信息交换;

◆ 业务活动监控——集中在分析业务流程和活动的效率及效力。

一个完整的BPM解决方案必须提供所有这些方面的能力。但目前来说,只有少数几家供应商可以提供完整的BPM解决方案,大多数的厂商侧重于某一个方面,因此也就有了各自强调与专注的重点,这也就造成了很多企业在应用了BPM软件以后,却产生了各种BPM系统的集成问题。

Analysis Services uses an "attribute-based" model, meaning that all the columns in the underlying data source can be made available for analysis if required, instead of having to go back to the relational data for detail data.


http://blog.vsharing.com/sibin/

0 Comments:

Post a Comment

<< Home