TFS 数据仓库的组件

Team Foundation 报表仓库是传统数据仓库,由一个按近似星型架构组织的关系数据库和基于该关系数据库构建的一个 SQL Server Analysis Services 多维数据集组成。 下图显示 Team Foundation 数据仓库的高级体系结构以及操作存储区、数据仓库与团队报表之间的关系。

数据仓库体系结构

操作存储区

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

  • 公共结构数据库 (Tfs_Configuration)

  • 团队项目集合数据库 (Tfs_Collection)

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

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

仓库适配器

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

仓库适配器会复制并转换在基本仓库配置中或创建新团队项目时使用的过程模板中指定的数据字段。 如果随后更改过程模板以添加或删除写入数据仓库中的数据字段,则会在适配器下次运行时检测到这些更改。 适配器使用通过 RunIntervalSeconds 属性设置的频率定期运行。 刷新频率的默认设置是两个小时(7,200 秒),因此请仔细考虑适用于安装的适当刷新频率。 有关更改刷新频率的更多信息,请参见为数据仓库和 Analysis Services 多维数据集更改过程控制设置

在关系数据库自己从操作存储区更新时,数据不会从关系数据库写入多维数据集,这十分重要。 为了避免读取和写入数据发生冲突,会同步推送和请求数据的仓库适配器。 适配器完成其调用之后,多维数据集会重新进行处理。

关系数据库或数据仓库

每个工具都采用 XML 架构描述其对数据仓库的贡献。 该架构将写入关系数据库的字段指定为维度、度量值和详细信息。 该架构还直接映射到多维数据集中。

仓库中的数据存储在一组以星型架构组织的表中。 星型架构的核心表称为事实数据表,而相关表表示维度。 通过维度可以将报表分解为较小部分。 事实数据表中的行通常包含维度表的度量值或外键引用的值。 行表示事实数据表所涵盖的每个项的当前状态。 例如,工作项事实数据表对于工作项操作存储区中存储的每个工作项都有相应的一行。

维度表存储对于给定维度存在的值的集合。 维度可能在不同的事实数据表与多维数据集之间共享,并且可能由单个事实数据表或数据多维数据集引用。 例如,一个 Person 维度将由工作项事实数据表针对“分配给”、“打开者”、“解决者”和“关闭者”属性而引用,并且将由代码改动事实数据表针对“签入者”而引用。

度量值是取自操作数据的值。 例如,“改动项总数”是度量值,指示所选变更集中的源代码更改数。 “计数”是特殊度量值,因为它可以是隐式的,只要进行计数的每个项都有一个记录即可。 事实数据表中定义的度量值组成多维数据集中的度量值组。

有关数据仓库中的事实、维度和度量值的更多信息,请参见 Visual Studio 的 Analysis Services 多维数据集中提供的透视和度量值组

Analysis Services 多维数据集

事实数据表是显示事务当前状态的报表的良好信息来源。 但是,若要针对随时间而变化的数据报告趋势,需要为每个要报告的时间增量复制相同的数据。 例如,若要针对工作项或测试结果报告每日趋势,仓库需要每一天保留每个项的状态。 这样便使数据多维数据集可以按天聚合度量值。 多维数据集将来自基础星型架构的数据和时间数据聚合为多维结构。

每次处理数据多维数据集时,关系数据库中以星型架构存储的数据便会拉取到多维数据集中、进行聚合并存储。 多维数据集中的数据会进行聚合,从而使高级报表是简单的选择语句,否则这类报表需要使用星型架构进行复杂处理。 多维数据集提供了一个中心位置来获取报表的数据,而不必知道每个操作存储区的架构并且不必单独访问每个存储区。

报表设计器报表

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

Excel 报表

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

安全性

Team Foundation 数据仓库的安全性在数据库级别定义,而团队报表的安全性处于团队项目级别。 Team Foundation Server 管理员通过对用户的帐户授予或撤消权限,来确定可以访问数据仓库中的数据的人员。 默认情况下,对仓库的写入访问权限限制为运行仓库服务的服务帐户。 每个工具适配器都具有对数据仓库的写入访问权限,因为它在此安全上下文中运行。 管理员向各个用户或用户组授予只读访问权限。 有权查看仓库中的数据的用户对所有团队项目集合中所有团队项目的所有数据具有完全访问权限。 有关授予或拒绝对数据仓库的只读访问权限的更多信息,请参见授予相关权限,供在 TFS 中查看或创建报表