共用方式為


使用分析匯總工作追蹤數據

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

您可以使用搭配 OData 分析的兩種方式之一,取得工作追蹤數據的總和。 第一個方法會根據 OData 查詢傳回簡單的工作項目計數。 第二個方法會根據執行 OData 匯總延伸模組的 OData 查詢,傳回 JSON 格式化的結果。

本文會建置建構適用於 Analytics 的 OData 查詢中提供的資訊,並使用 OData Analytics 定義基本查詢。 此外,本文的查詢著重於擷取工作項目數據,不過,原則適用於查詢其他實體集。

在本文中,您將了解:

  • 關於 OData 匯總延伸模組
  • 如何使用 OData 的匯總延伸模組
  • 如何分組和篩選匯總結果
  • 如何匯總數據以產生累計流程圖

若要瞭解如何產生簡單的計數,請參閱 傳回專案計數(沒有其他數據), 以及 傳回專案和數據計數。

注意

所有 Azure DevOps Services 的生產環境中都會自動啟用及支援 Analytics 服務。 Power BI 整合 及存取 Analytics Service 的 OData 摘要 已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。 可用的數據與版本相關。 最新支援的版本是 v2.0,而最新的預覽版本是 v4.0-preview。 如需詳細資訊,請參閱 OData API 版本控制

注意

Azure DevOps Server 2020 和更新版本的所有新專案集合都會在生產環境中自動安裝並支援 Analytics 服務。 Power BI 整合 及存取 Analytics Service 的 OData 摘要 已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。 如果您從 Azure DevOps Server 2019 升級,則可以在升級期間安裝 Analytics 服務。

可用的數據與版本相關。 最新支援的版本是 v2.0,而最新的預覽版本是 v4.0-preview。 如需詳細資訊,請參閱 OData API 版本控制

注意

Azure DevOps Server 2019 的 Analytics 服務處於預覽狀態。 您可以 啟用或安裝 專案集合。 Power BI 整合 和分析 服務的 OData 摘要 存取處於預覽狀態。 我們鼓勵您使用它,並提供意見反應給我們。

可用的數據與版本相關。 最新支援的版本是 v2.0,而最新的預覽版本是 v4.0-preview。 如需詳細資訊,請參閱 OData API 版本控制

OData 的匯總延伸模塊是什麼?

分析依賴 OData 來撰寫對工作追蹤數據的查詢。 OData 中的彙總是使用引進 關鍵詞的 $apply 擴充功能來達成。 以下有一些如何使用這個關鍵詞的範例。 在適用於數據匯總的 OData 延伸模組中深入瞭解延伸模組

使用 OData 匯總延伸模組匯總數據

既然您已瞭解如何執行簡單的計數,讓我們來檢閱如何使用 URL 結尾基本格式的令牌來觸發匯總 $apply ,如下所示:

/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})

其中:

  • {entitySetName} 是需要查詢的實體
  • {columnToAggregate} 是匯總數據行
  • {aggregationType} 會指定使用的匯總類型
  • {newColumnName} 指定匯總之後具有值的數據行名稱。

使用套用延伸模組的匯總數據

$apply使用延伸模組,您可以在查詢工作追蹤數據時取得計數、總和和其他資訊。

傳回所有剩餘工時的總和

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate(RemainingWork with sum as SumOfRemainingWork)

傳回最後一個工作項目標識碼

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate(WorkItemId with max as MaxWorkItemId)

使用 groupby 子句將結果分組

OData 匯總延伸模組也支援與 groupby SQL GROUP BY 子句相同的子句。 您可以使用這個子句,更詳細地快速細分數位。

例如,下列子句會傳回工作專案的計數:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=aggregate($count as Count)

groupby新增 子句以依類型傳回工作項目的計數:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=groupby((WorkItemType), aggregate($count as Count))

它會傳回類似此範例的結果:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(WorkItemType,Count)","value":[
    {
      "@odata.id":null,"WorkItemType":"Bug","Count":3
    },
    {
      "@odata.id":null,"WorkItemType":"Product Backlog Item","Count":13
    }
  ]
}

您也可以依多個屬性分組,如下列範例所示:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=groupby((WorkItemType, State), aggregate($count as Count))

它會傳回類似此範例的結果:

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(WorkItemType,State,Count)",
  "value": [
    {
      "@odata.id": null,
      "State": "Active",
      "WorkItemType": "Bug",
      "Count": 2
    },
    {
      "@odata.id": null,
      "State": "Committed",
      "WorkItemType": "Bug",
      "Count": 1
    },
    {
      "@odata.id": null,
      "State": "Active",
      "WorkItemType": "Product Backlog Item",
      "Count": 5
    },
    {
      "@odata.id": null,
      "State": "Committed",
      "WorkItemType": "Product Backlog Item",
      "Count": 8
    }
  ]
}

您也可以跨實體分組,不過 OData 群組與通常思考的方式不同。

例如,假設您想要知道組織或集合中每個專案中有多少個區域。 在 OData 中,「計算所有區域並依專案分組」相當於「給我所有專案和每個專案的區域計數」。 這會產生類似下列的查詢:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
  $apply=groupby((Project/ProjectName), aggregate($count as Count))

篩選彙總的結果

您也可以篩選匯總結果,不過其套用方式與未使用匯總時稍有不同。 分析會沿著管道評估篩選,因此最好先執行最離散的篩選。

篩選看起來像下列範例:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $apply=
    filter(Iteration/IterationName eq 'Sprint 89')/
    filter(WorkItemType eq 'User Story')/
    groupby((State), aggregate($count as Count))

注意

您不需要提供 groupby 子句。 您可以直接使用 aggregate 子句來傳回單一值。

在單一呼叫內產生多個匯總

您可能想要提供多個資訊片段。 例如已完成工時的總和,以及個別剩餘工時的總和。 在這種情況下,您可以進行個別呼叫或單一呼叫,如下所示:

/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)

其會傳回類似此範例的結果:

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
    {
      "@odata.id":null,"SumOfCompletedWork":1525841.2900000005,"SumOfRemainingWork":73842.39
    }
  ]
}

產生匯出屬性以在單一呼叫內使用

您可能需要使用數學表示式來計算屬性,以用於結果集。 例如,已完成工時的總和除以已完成工時的總和加上剩餘工時的總和,以計算已完成工時百分比。 在這種情況下,您可以使用下列範例:

/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)/compute(SumOfCompletedWork div (SumOfCompletedWork add SumOfRemainingWork) as DonePercentage)

{
  "@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
    {
      "@odata.id":null,"DonePercentage":0.96760221857946638,"SumOfRemainingWork":50715.95,"SumOfCompletedWork":1514698.3400000033
    }
  ]
}

從匯總數據產生累積流程圖

假設您想要在Power BI 中建立 累積流程圖 。 您可以使用類似下列查詢的查詢:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemBoardSnapshot?$apply=filter(DateValue gt 2015-07-16Z and DateValue le 2015-08-16Z)/filter(BoardName eq 'Stories' and Team/TeamName eq '{teamName}')/groupby((DateValue, ColumnName), aggregate(Count with sum as Count))&$orderby=DateValue

它會傳回類似這個範例的結果。 然後,您可以直接在您選擇的數據視覺效果內使用它。

{
  "@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemBoardSnapshot(DateValue,ColumnName,Count)",
  "value": [
    {
      "@odata.id": null,
      "DateValue": "2015-07-16T00:00:00-07:00",
      "Count": 324,
       "ColumnName": "Completed"
    },
    {
      "@odata.id": null,
      "DateValue": "2015-07-16T00:00:00-07:00",
      "Count": 5,
      "ColumnName": "In Progress"
    }
  ]
}

讓我們看看此查詢的實際用途:

  • 將數據篩選至特定小組
  • 將數據篩選至特定的待辦專案
  • 傳回工作專案的計數。

重新整理Power BI或Excel時,所需的數據列越少,重新整理的速度就越快。

下一步