目录
总体架构设计
构建多维数据集
多维数据集验证及数据仓库生成
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#
构建Analysis Services数据库是整个过程中最困难的一步,并不在于它要求多高的技术水平,而是它需要对客户需求准确的理解。作为一个开发人员来讲,理解客户需求是非常困难的,这也就意味着你很难去设定哪些是维度,哪些是量度,以及它们的属性。而这些也是客户无法帮助我们的,因为他们根本不懂什么是维度和量度。
这时,一个既懂开发技术,又能够清楚了解客户业务的人就难得可贵了。
Analysis Services数据库的建设是后面工作的基础,因为它将直接决定数据仓库、前端展现和ETL的设计。所以对它的设计一定要全方面的进行考虑,尤其是以后客户额外需求所带来的影响,即可扩展性,这也是我发现目前大多数Analysis Services数据库设计所欠缺的考虑。
Analysis Services数据库的设计需要注意以下几个方面:
1.尽量保证量度不包含任何实际的意义。
这一点怎样理解,例如,有时我们会将收入、成本、费用设置为不同的量度,这在以后的扩展方面会存在一定的问题。而应该将设置一个维度称为指标(其中包括这三个成员),而设置一个量度称为金额。关于这种设计的优势我会在以后的帖子中详细说明。
2.尽量将KPI和计算成员设置在Analysis Services数据库中,而不要设置在前端展现软件中,这样可以减少计算成员的设置数量,同时也易于维护。
3.在尽可能的应用脚本功能。在Analysis Services数据库中你可以使用脚本功能实现很多强大的功能,包括计算成员的设置、聚合的函数、度量的汇总和格式的设置等等。
4.创建标准的维度。每一个维度都要按照要求创建成标准的维度,例如主键必须为整型、包括排序键以及自定义汇总列等等,这样在后期扩展功能时会非常方便。
5.首先创建一个大而全的多维数据集,然后再通过透视图切分成小的多维数据集,这样可以减少存储和维护量。
在完成多维数据集的创建之后,我们需要根据多维数据集生成数据仓库,生成数据仓库之后,我们需要在数据仓库中填充测试数据,来实现对多维数据集的测试。
测试数据的生成我想每个人都有各自的方法,我个人比较喜欢利用现有的一些数据,而不会使用程序生成数据,因为我觉得这样的数据不具有规律性,有时候更容易发现一些问题。
在填充测试数据之后,我们就可以处理已经创建的多维数据集,并且对多维数据集进行验证。
多维数据集的验证是一个痛苦的过程,因为你需要尽可能的考虑到客户的需求,这时候考虑得越详细,日后的工作量就会越少,如果这时只是简单的测试一下,那么日后引发的修改量将会非常大。
在验证的过程中,同时要考虑到OLAP查询和报表的需求,因为这两种展现形式对多维数据集的结构要求是有一定区别的。