Analytics 视图数据集设计

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

每个分析视图在 Power BI 中定义一个数据集。 数据集是用于创建可视化效果的表和属性。 Power BI Data Connector for Azure DevOps 生成的数据集具有以下特征:

  • Analytics 提供的实体和关联字段平展 (非规范化) 到单个表中。 例如,将“创建者”中的用户名建模为“用户名”) (字符串,而不是用户 ID。 无需在表之间创建关系来创建报表。
  • 历史数据被建模为每个时间段的快照,因此趋势报告非常简单。

若要详细了解 Power BI 和数据集,请参阅 Power BI - Power BI 服务的基本概念

平展 Analytics OData 终结点

Analytics OData 终结点提供 Analytics 数据的规范化表示形式。 数据规范化主要是为了支持报告数据之间存在的“多对多”关系,例如工作项和关联的标记。

Power BI 数据连接器将此数据表示为单个表,因此无需在 Power BI 中重新创建 分析数据模型中 显示的关系。 通过此表示形式,可以立即筛选复杂字段,例如工作项标记。

此过程大大简化了报表的启动和运行过程。 但是,并非通过 Analytics OData 终结点提供的所有字段都可以在分析视图中选择。

分析视图中的可选字段

可以在分析视图中选择的字段对应于常规工作跟踪字段和 Analytics 数据存储字段。

工时跟踪字段

可以选择分析视图中的所有工作跟踪字段,以下字段除外:

  • 不属于创建视图 的项目 的字段
  • 长文本字段(如“说明”、“历史记录”)和 HTML 数据类型的其他字段
  • 工作项链接计数字段,例如 ExternalLinkCount、HyperLinkCount、AttachedFileCount、RelatedLinkCount
  • 特定的 REST API 字段,例如水印、IsDeleted
  • 具有 多对多 关系的字段,例如团队、板列、板名称

重要

标识或人员名称字段(如“创建者”、“分配到”等)是可选择的字段,但目前不能将这些字段选为字段条件来筛选工作项。

有关每个工作项跟踪字段的说明,请参阅Azure Boards的实体和属性参考

分析数据存储字段

可以在分析视图中选择以下基于分析的字段:

字段 说明
周期时间 工作项从状态类别“正在进行”移动到“已完成”的时间。
历史记录) 自动包含的日期 ( 支持查看筛选的工作项集的每日、每周或每月历史记录。
当前 (是否自动包含在历史记录) 通过将 值设置为 True,支持筛选数据以查看筛选的工作项集的最新快照。
提前期 工作项从状态类别“建议”移动到“已完成”的时间。
父工作项 ID 工作项的父级的工作项 ID。
项目名称 等效于项目字段。
修订 为工作项的历史记录修订分配的编号。
标记 以分号分隔的标记列表。
WorkItemRevisionSK 用于联接相关实体的工作项修订的 Analytics 唯一键。

有关状态类别的信息,请参阅 工作流状态和状态类别。 有关分析数据模型的更多详细信息,请参阅 用于分析的数据模型

若要访问通过 Analytics 提供的任何其他字段,请在“分析”视图中包括相应的代理项密钥 (SK) 或工作项 ID。 然后,基于 Analytics 导航属性创建必要的映射表。

  • 迭代 (迭代SK)
  • 区域 (区域SK)
  • Teams (AreaSK - 基于 Teams 导航属性生成映射表)
  • BoardLocations (AreaSK - 基于 BoardLocations 导航属性生成映射表)
  • date (DateSK)
  • 进程 (AreaSK - 基于 进程 导航属性生成映射表)
  • WorkItemLinks (工作项 ID)

数据关系

了解 分析数据模型 对于在实体之间建立良好关系至关重要。

默认情况下,从 Analytics 返回基本数据时,数据是相关的,如下图所示:

实体关系

标记Teams用户 与任何其他数据无关。 它与这些实体之间的关系相关。 它们可以通过以下几种方式关联:

  • 在这些模型中不容易处理的多对多关系
  • 实体之间存在多种关系,例如用户和工作项之间的关系。 它们通过:
    • 分配给
    • 创建者
    • 更改者
    • 等等

可以相当简单地处理多个关系。 例如,在默认模型中,可以编辑查询,选择 WorkItems 表的 AssignedTo 列,然后展开该列以包含 “用户” 表中的所有数据,还可以对“创建者”和“更改者”列重复此过程。 它可让你使用多个链接从一个表到另一个表,这是不允许的。

以这种方式扩展列的另一个原因是处理也不允许的循环关系。 例如,采用以下路径:Projects > Areas > Work Items > Projects。 它提出了一个典型的循环问题。 如果想要查看哪些是给定项目的一部分,该怎么办? 生成的模型在“区域”和“工作项”和“项目”和“工作项”之间具有关系,但“项目”不能与“区域”相关,因为这样可以完成循环关系,因此不允许这样做。 若要处理此方案,可以展开“区域”表中的“项目”列。 为此,请执行以下步骤:

  1. “开始”选项卡中选择“编辑查询”。

  2. 选择 “区域”查询

  3. 滚动到“ 项目”列 (最后一列) ,然后选择列顶部的“展开”图标。

    区域查询,项目列

  4. 取消选中除 ProjectName 以外的所有列,然后选择“确定”。

    展开项目选项

现在,可以按项目列出区域,并获取每个项目中的区域计数。