了解数据仓库体系结构

更新:2007 年 11 月

Team Foundation 报表仓库是一种传统的数据仓库,由一个以近似星型架构组织的关系数据库和一个在关系数据库顶部生成的 OLAP 数据库组成。下面的关系图显示了 Team Foundation 数据仓库的上层体系结构以及操作存储区、数据仓库和团队报表之间的关系。

数据仓库的上层体系结构

操作存储区

Team Foundation 中的每个工具或插件都使用 Microsoft SQL Server 2005 中的关系数据库来存储其日常操作中的工具所使用的数据。此关系数据库通常称为操作存储区。Team Foundation 的操作存储区包括:

  • 公共结构数据库(TfsIntegration 和 TfsActivityLogging)

  • 工作项跟踪数据库(TfsWorkItemTracking 和 TfsWorkItemTrackingAttachments)

  • 源代码管理数据库 (TfsVersionControl)

  • Team Foundation Build 数据库 (TfsBuild)

  • Team Test 数据库 (TfsBuild)

可能还有为第三方工具创建的操作存储区。

与大多数操作存储区一样,关系数据库的架构是为数据的联机事务性处理而设计和优化的。当工具或插件执行活动时,它将最新信息写入操作存储区。因此,操作存储区中的数据会不断变化和更新,并且所有数据都是最新的。

仓库适配器

由于每个工具或插件都有其自己的架构要求并且数据存储在操作存储区中以优化事务性处理,因此仓库适配器的目的是将操作数据放入数据仓库可用的窗体。仓库适配器是一个托管程序集,它可以从操作存储区中提取数据,将该数据转换成与仓库兼容的标准化格式,并将转换后的数据写入仓库关系数据库。每个操作数据存储区都有一个单独的适配器。

仓库适配器复制和转换基本仓库配置中或在创建新的团队项目时使用的过程模板中指定的那些数据字段。如果您随后更改过程模板以添加或删除写入数据仓库的数据字段,则下次适配器运行时会检测到这些更改。适配器以 RunIntervalSeconds 属性设置的频率定期运行。刷新频率的默认设置是 3,600 秒,因此应仔细考虑适合您的安装的刷新频率。有关更改刷新频率的更多信息,请参见如何:更改 Team System 数据仓库的刷新频率

从操作存储区中自行更新关系数据库时,不要将数据从关系数据库写入多维数据集,这一点很重要。为了避免读取数据和写入数据时发生冲突,需要同步推拉数据的仓库适配器。适配器完成其调用之后,会重新处理多维数据集。

仓库关系数据库

每个工具都描述它在 XML 架构中对数据仓库所起的作用。架构指定作为维度、度量和详细信息写入关系数据库的字段。架构还直接映射到 OLAP 数据库中。

仓库中的数据存储在一组以星型架构组织的表中。星型架构的核心表称为事实数据表,相关表则会表示维度。维度提供将报告分成较小部分的方法。事实数据表中的行通常包含度量值或对维度表的外键引用。该行表示事实数据表所包括的每一项的当前状态。例如,对于存储在“工作项”操作存储区中的每个工作项,“工作项”事实数据表都有一行。

维度表存储针对给定维度存在的值集。可以在不同的事实数据表和多维数据集之间共享维度,这些维度可以由单个事实数据表或多维数据集引用。例如,Person(人员)维度将由“工作项”事实数据表针对 Assigned To(指派给)、Opened By(打开者)、Resolved By(解决者)和 Closed By(关闭者)属性而引用,由“代码改动”事实数据表针对 Checked In(签入者)属性而引用。

度量是从操作数据中获取的值。例如,“Total Churn”(改动项总数)是指示所选变更集中源代码更改数量的度量。“Count”(计数)是一个特殊的度量,只要计数的每一项都有一个记录,它就可以是隐式的。事实数据表中定义的度量构成多维数据集中的一个度量组。

有关数据仓库中的事实、维度和度量的更多信息,请参见了解数据仓库多维数据集的结构

仓库 OLAP 多维数据集

对于显示事件当前状态的报告,事实数据表是一种很好的信息来源。但是,若要报告随时间更改的数据趋势,对于要报告的每个时间增量,都需要复制相同的数据。例如,若要报告工作项或测试结果的每日趋势,仓库每天都需要保留每一项的状态。这将允许多维数据集按天来聚合度量。仓库 OLAP 多维数据集将基础星型架构中的数据和时间数据聚合成多维结构。

每次处理多维数据集时,存储在关系数据库的星型架构中的数据都会被拉到 OLAP 多维数据集,进行聚合并存储。对多维数据集中的数据进行聚合,这样上层报告便是简单的 Select 语句(否则,将需要使用星型结构进行复杂处理)。多维数据集提供一个获取报告数据的中心位置,而不必知道每个操作存储区的架构并且不必单独访问每个存储区。

报表设计器报告

报表设计器是 Visual Studio 的一个组件,允许您将 Team Foundation 数据仓库定义成数据源,然后以交互方式设计报表。报表设计器提供“数据”、“布局”和“预览”的选项卡式窗口,您可以添加数据集以适应新的报表设计器思想,或基于预览结果调整报告布局。除了“数据”、“布局”和“预览”设计图面之外,报表设计器还提供查询生成器、表达式编辑器和向导,以帮助您放置图像或引导您逐步完成创建简单报告的过程。有关使用报表设计器的更多信息,请参见用于 Team System 的自定义报表入门

Excel 报表

Team Foundation 与 Microsoft Excel 集成,使您可以使用 Microsoft Excel 来管理项目和生成报表。Microsoft Excel 提供用于查看和分析多维数据的数据透视表和数据透视图。您可以将这些数据透视表直接绑定到 Team Foundation OLAP 多维数据集,以便与多维数据集中的数据进行交互。有关将 Microsoft Excel 用于报表的更多信息,请参见使用 Microsoft Excel 生成 Team Foundation Server 报告

安全性

Team Foundation 数据仓库的安全性是在数据库级别定义的,而团队报表的安全性则是在团队项目级别定义的。Team Foundation Server 管理员通过授予或撤消用户帐户的权限来确定哪些用户拥有对数据仓库中数据的访问权限。默认情况下,对仓库的写访问权限限制为运行仓库服务的服务帐户。每个工具适配器都具有对数据仓库的写访问权限,因为它在此安全上下文中运行。管理员授权将只读访问权限授予单个用户或用户组。有权查看特定团队项目的仓库中数据的用户具有该项目的所有数据的完全访问权限。但是,有权查看一个团队项目中数据的用户不能自动查看其他团队项目中的数据。有关授予或拒绝对数据仓库的只读访问权限的更多信息,请参见如何:更改 Team System 数据仓库的安全设置

请参见

其他资源

处理多维数据集

报表设计器

Reporting Services 组件概述

Team Foundation Server 数据仓库