Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Pomocí Analýzy s OData můžete získat součet dat sledování práce jedním ze dvou způsobů. 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ý využívá rozšíření agregace OData.
Tento článek sestaví informace poskytnuté v dotazech OData pro analýzu a definuje základní dotazy pomocí OData Analytics. Dotazy jsou také v tomto článku zaměřeny na načítání dat pracovních položek, ale zásady 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ů
- Jak agregovat data za účelem vygenerování diagramu kumulativního toku
Pokud chcete zjistit, jak generovat jednoduché počty, přečtěte si článek Vrácení počtu položek (žádná jiná 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 služby v rámci Azure DevOps Services. Integrace Power BI a přístup k datovému kanálu OData služby Analytics jsou obecně dostupné. Doporučujeme používat datový kanál OData Analytics a poskytovat zpětnou vazbu.
Dostupná data jsou závislá na verzi. Nejnovější podporovaná verze rozhraní OData API je v2.0
a 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 služby Analytics jsou obecně dostupné. Doporučujeme používat datový kanál OData Analytics a poskytovat zpětnou vazbu. Pokud upgradujete z Azure DevOps Serveru 2019, můžete během upgradu nainstalovat službu Analytics.
Dostupná data jsou závislá na verzi. Nejnovější podporovaná verze rozhraní OData API je v2.0
a nejnovější verze Preview je v4.0-preview
. Další informace najdete v tématu Správa verzí rozhraní API OData.
Požadavky
Kategorie | Požadavky |
---|---|
úrovně přístupu |
-
člen projektu. - Alespoň základní přístup. |
oprávnění | Ve výchozím nastavení mají členové projektu oprávnění provádět dotazy v analýze a vytvářet zobrazení. Další informace o požadavcích týkajících se aktivace služeb a funkcí a obecných aktivit sledování údajů najdete v tématu Oprávnění a požadavky pro přístup k analytickým službám. |
Co je rozšíření agregace pro OData?
Analýza spoléhá na OData při vytváření dotazů na údaje o sledování práce. Agregace v OData jsou dosahovány pomocí rozšíření, které představuje $apply
klíčové slovo. Níže máme několik příkladů použití tohoto klíčového slova. Další informace o rozšíření najdete v 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, se podíváme, jak aktivovat agregace pomocí $apply
tokenu, kde je základní formát na konci adresy URL následující:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
Kde:
- {entitySetName} je entita, na kterou je potřeba se dotazovat.
- {columnToAggregate} je sloupec agregace.
- {aggregationType} určuje typ použité agregace.
- {newColumnName} určuje název sloupce, který má hodnoty po agregaci.
Agregovaná data pomocí rozšíření apply
Pomocí rozšíření $apply
můžete získat počty, součty a další informace při dotazování na data sledování práce.
Vraťte součet 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í posledního identifikátoru pracovní položky
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
Seskupení výsledků pomocí příkazu groupby
Rozšíření agregace OData také podporuje groupby
klauzuli, která je identická s klauzulí SQL GROUP BY
. Pomocí této klauzule můžete rychle rozdělit čísla podrobněji.
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
pro vrácení počtu 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 více vlastností jako 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 napříč entitami, ale seskupení OData se liší od toho, jak byste o tom běžně uvažovali.
Předpokládejme například, že jste chtěli vědět, kolik oblastí je v každém projektu v organizaci nebo kolekci. V OData je "count all areas and group them by project" (spočítat všechny oblasti a seskupit je podle projektu) ekvivalentem "give me all projects and a count of areas for each project" (poskytnout mi všechny projekty a počet oblastí pro každý projekt). Výsledkem je dotaz podobný tomuto:
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ž v případě, že nepoužíváte agregaci. Analýza vyhodnocuje filtry podél potrubí, takže je vždy nejlepší nejprve provést nejdiskrétně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 groupby
nemusíte zadávat. 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ádět 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ý bude vypadat 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í k použití v rámci jednoho volání
K výpočtu vlastností pro použití v sadě výsledků možná budete muset použít matematický výraz. Příkladem je součet dokončené práce, která je rozdělena součtem dokončené práce a součtem zbývající práce k výpočtu 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 v Power BI vytvořit kumulativní vývojový diagram . 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 ve zvolené vizualizaci dat.
{
"@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 skutečně dělá:
- Filtruje data konkrétnímu týmu.
- Filtruje data na konkrétní backlog.
- Vrátí počet pracovních položek.
Při aktualizaci Power BI nebo Excelu je potřeba méně řádků, tím rychleji se aktualizace provede.