Agregace dat sledování práce pomocí Analýzy

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Součet dat o sledování práce můžete získat jedním ze dvou způsobů pomocí analýzy s OData. První metoda vrátí jednoduchý počet pracovních položek na základě dotazu OData. Druhá metoda vrátí výsledek ve formátu JSON na základě dotazu OData, který provádí rozšíření agregace OData.

Tento článek vychází z informací uvedených v tématu Vytváření dotazů OData pro analýzu a Definování základních dotazů pomocí OData Analytics. Dotazy v tomto článku jsou také zaměřeny na načítání dat pracovních položek, ale principy platí pro dotazování jiných sad entit.

V tomto článku se dozvíte:

  • O rozšíření agregace OData
  • Jak používat rozšíření agregace pro OData
  • Seskupení a filtrování agregovaných výsledků
  • Agregace dat za účelem vygenerování diagramu kumulativního toku

Informace o tom, jak generovat jednoduché počty, najdete v tématech Vrácení počtu položek (žádná další data) a Vrácení počtu položek a dat.

Poznámka

Služba Analytics je automaticky povolená a podporovaná v produkčním prostředí pro všechny Azure DevOps Services. Integrace Power BI a přístup k datovému kanálu OData ve službě Analytics jsou obecně dostupné. Doporučujeme, abyste ho použili a poskytli nám zpětnou vazbu. Dostupná data závisí na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Poznámka

Služba Analytics se automaticky nainstaluje a podporuje v produkčním prostředí pro všechny nové kolekce projektů pro Azure DevOps Server 2020 a novější verze. Integrace Power BI a přístup k datovému kanálu OData ve službě Analytics jsou obecně dostupné. Doporučujeme, abyste ho použili a poskytli nám zpětnou vazbu. Pokud jste upgradovali z Azure DevOps Server 2019, můžete během upgradu nainstalovat službu Analytics.

Dostupná data závisí na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Poznámka

Služba Analytics je ve verzi Preview pro Azure DevOps Server 2019. Můžete ho povolit nebo nainstalovat pro kolekci projektů. Integrace Power BI a přístup k datovému kanálu OData ve službě Analytics jsou ve verzi Preview. Doporučujeme, abyste ho použili a poskytli nám zpětnou vazbu.

Dostupná data závisí na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Co je rozšíření agregace pro OData?

Analýza spoléhá na OData při vytváření dotazů na data sledování práce. Agregací v OData se dosahuje pomocí rozšíření, které zavádí $apply klíčové slovo. Níže uvádíme několik příkladů použití tohoto klíčového slova. Další informace o rozšíření najdete v tématu Rozšíření OData pro agregaci dat.

Agregace dat pomocí rozšíření agregace OData

Teď, když jste viděli, jak provádět jednoduché počty, si projdeme, jak aktivovat agregace pomocí tokenu $apply , kde základní formát na konci adresy URL je následující:

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

Kde:

  • {entitySetName} je entita, na kterou se musí dotazovat.
  • {columnToAggregate} je sloupec agregace.
  • {aggregationType} určí typ použité agregace.
  • {newColumnName} určuje název sloupce s hodnotami po agregaci.

Agregovaná data pomocí rozšíření Apply

$apply Pomocí rozšíření můžete při dotazování na data sledování práce získat počty, součty a další informace.

Vrácení součtu všech zbývajících prací

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

Vrácení identifikátoru poslední pracovní položky

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

Seskupení výsledků pomocí klauzule groupby

Rozšíření agregace OData také podporuje groupby klauzuli, která je identická s klauzulí SQL GROUP BY . Tuto klauzuli můžete použít k rychlému podrobnějšímu rozdělení čísel.

Například následující klauzule vrátí počet pracovních položek:

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

Přidejte klauzuli groupby , která vrátí počet pracovních položek podle typu:

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

Vrátí výsledek podobný tomuto příkladu:

{
  "@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
    }
  ]
}

Můžete také seskupit podle několika vlastností, jak je uvedeno v tomto příkladu:

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

Vrátí výsledek podobný tomuto příkladu:

{
  "@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
    }
  ]
}

Můžete také seskupit mezi entitami, ale seskupení OData se liší od toho, jak byste o tom normálně přemýšleli.

Předpokládejme například, že chcete vědět, kolik oblastí je v každém projektu v organizaci nebo kolekci. V OData je výraz "count all areas and group them by project" ekvivalentní výrazu "give me all projects and a count of areas for each project" (spočítat všechny oblasti a seskupit je podle projektu). Výsledkem bude dotaz podobný následujícímu:

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

Filtrování agregovaných výsledků

Agregované výsledky můžete také filtrovat, ale použijí se trochu jinak, než když agregaci nepoužíváte. Analýza vyhodnocuje filtry podél kanálu, takže je vždy nejlepší nejprve provést nejdůraznější filtrování.

Filtry vypadají jako v tomto příkladu:

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))

Poznámka

Klauzuli nemusíte zadávat groupby . Klauzuli aggregate můžete jednoduše použít k vrácení jedné hodnoty.

Generování více agregací v rámci jednoho volání

Můžete chtít zadat více informací. Příkladem je součet dokončené práce a samostatně součet zbývající práce. V takovém případě můžete provést samostatná volání nebo jedno volání následujícím způsobem:

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

Vrátí výsledek, který vypadá jako v tomto příkladu:

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

Generování počítaných vlastností pro použití v rámci jednoho volání

K výpočtu vlastností pro použití v sadě výsledků může být potřeba použít matematický výraz. Příkladem je součet dokončené práce, který je vydělený součtem dokončené práce plus součtem zbývající práce pro výpočet procenta dokončené práce. V takovém případě můžete použít tento příklad:

/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
    }
  ]
}

Generování kumulativního vývojového diagramu z agregovaných dat

Řekněme, že chcete vytvořit kumulativní vývojový diagram v Power BI. Můžete použít dotaz podobný následujícímu:

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

Vrátí výsledek podobný tomuto příkladu. Pak ho můžete použít přímo v rámci vizualizace dat podle svého výběru.

{
  "@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"
    }
  ]
}

Pojďme se podívat, co tento dotaz ve skutečnosti dělá:

  • Filtruje data pro konkrétní tým.
  • Filtruje data na konkrétní backlog.
  • Vrátí počet pracovních položek.

Při aktualizaci Power BI nebo Excelu platí, že čím méně řádků je potřeba, tím rychleji k aktualizaci dojde.

Další kroky