Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
È possibile aggregare i dati di rilevamento del lavoro usando Analytics con OData in due modi: usare $count per i totali semplici o usare l'estensione di aggregazione OData $apply per restituire risultati raggruppati, filtrati e calcolati come JSON.
Suggerimento
È possibile usare l'intelligenza artificiale per facilitare questa attività più avanti in questo articolo, oppure vedere Abilitare l'assistenza AI con Azure DevOps MCP Server per iniziare.
Questo articolo si basa su Costruire query OData per Analisi e Definire query di base usando OData Analytics. Gli esempi si concentrano sui dati degli elementi di lavoro, ma gli stessi principi si applicano ad altri set di entità. Per le query di conteggio semplici, vedere Restituire un conteggio degli elementi.
Nota
Il servizio Analytics viene abilitato e supportato automaticamente nell'ambiente di produzione per tutti i servizi in Azure DevOps Services. L'integrazione di Power BI e l'accesso al feed OData del servizio Analytics sono disponibili a livello generale. Si consiglia di usare il feed OData di Analytics e fornire commenti e suggerimenti.
I dati disponibili dipendono dalla versione. La versione più recente supportata dell'API OData è v2.0e la versione di anteprima più recente è v4.0-preview. Per altre informazioni, vedere Controllo delle versioni dell'API OData.
Nota
Il servizio Analytics viene installato e supportato automaticamente nell'ambiente di produzione per tutte le nuove raccolte di progetti per Azure DevOps Server 2020 e versioni successive. L'integrazione di Power BI e l'accesso al feed OData del servizio Analytics sono disponibili a livello generale. Si consiglia di usare il feed OData di Analytics e fornire commenti e suggerimenti. Se si esegue l'aggiornamento da Azure DevOps Server 2019, è possibile installare il servizio Analytics durante l'aggiornamento.
I dati disponibili dipendono dalla versione. La versione più recente supportata dell'API OData è v2.0e la versione di anteprima più recente è v4.0-preview. Per altre informazioni, vedere Controllo delle versioni dell'API OData.
Prerequisiti
| Categoria | Requisiti |
|---|---|
| livelli di accesso |
-
membro del progetto. - Almeno accesso Base. |
| autorizzazioni | Per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste. Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per accedere ad Analisi. |
Informazioni sull'estensione di aggregazione $apply
OData fornisce un'estensione di aggregazione che introduce la $apply parola chiave per il raggruppamento, il filtro e l'elaborazione di valori aggregati sui dati di rilevamento del lavoro. Le sezioni seguenti illustrano come usare $apply con aggregate, groupby, filtere compute. Per la specifica completa, vedere Estensione OData per l'aggregazione dei dati.
Aggregare i dati usando $apply
Aggiungere il token $apply all'URL della query per attivare le aggregazioni. La sintassi di base è:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
| Parametro | Descrizione |
|---|---|
{entitySetName} |
Set di entità su cui eseguire una query, ad esempio WorkItems. |
{columnToAggregate} |
Campo da aggregare, ad esempio RemainingWork. |
{aggregationType} |
Funzione di aggregazione: sum, min, maxaverage, o countdistinct. |
{newColumnName} |
Alias per la colonna del risultato aggregato. |
Negli esempi seguenti vengono illustrate le operazioni comuni aggregate .
Restituisci la somma di tutto il lavoro rimanente
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(RemainingWork with sum as SumOfRemainingWork)
Restituire l'ultimo identificatore dell'elemento di lavoro
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
Raggruppare i risultati usando groupby
La groupby clausola funziona come SQL GROUP BY . Suddivide i risultati aggregati in base a una o più proprietà.
Contare gli elementi di lavoro per tipo
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType), aggregate($count as Count))
Restituisce un risultato simile al seguente:
{
"value": [
{ "WorkItemType": "Bug", "Count": 3 },
{ "WorkItemType": "Product Backlog Item", "Count": 13 }
]
}
Raggruppare per più proprietà
Aggiungere altre proprietà tra groupby parentesi per creare suddivisioni più dettagliate:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType, State), aggregate($count as Count))
Restituisce una riga per ogni combinazione univoca di tipo e stato ,ad esempio Bug/Active, Bug/Committed, Product Backlog Item/Active.
Raggruppare le entità
È possibile raggruppare le entità correlate usando le proprietà di navigazione. Ad esempio, per contare le aree per progetto:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$apply=groupby((Project/ProjectName), aggregate($count as Count))
Filtro dei risultati aggregati
Usare filter() all'interno $apply per restringere i dati prima o dopo l'aggregazione. Concatenare più filtri usando / (pipe) e posizionare il filtro più selettivo per ottenere prestazioni ottimali.
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))
Nota
La groupby clausola è facoltativa. Usare aggregate da solo per restituire un singolo valore.
Aggregare più campi in una singola chiamata
Elencare più campi all'interno di una singola aggregate clausola, separati da virgole, per evitare round trip aggiuntivi.
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)
Restituisce:
{
"value": [
{ "SumOfCompletedWork": 1525841.29, "SumOfRemainingWork": 73842.39 }
]
}
Calcolare le proprietà calcolate
Inviare tramite pipe i risultati aggregati in compute() per derivare nuovi valori usando espressioni aritmetiche (div, add, sub, mul). Nell'esempio seguente viene calcolata la percentuale di lavoro completata:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)/compute(SumOfCompletedWork div (SumOfCompletedWork add SumOfRemainingWork) as DonePercentage)
Restituisce:
{
"value": [
{ "DonePercentage": 0.9676, "SumOfCompletedWork": 1514698.34, "SumOfRemainingWork": 50715.95 }
]
}
Costruire una query per un diagramma di flusso cumulativo
La query seguente combina filter, groupby, e aggregate sull'insieme di entità WorkItemBoardSnapshot per produrre dati per un diagramma di flusso cumulativo in Power BI o Excel.
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
Questa query filtra in base a un intervallo di date e a un gruppo specifico, raggruppa per colonna data e scheda e restituisce un conteggio per gruppo. Restituisce:
{
"value": [
{ "DateValue": "2015-07-16T00:00:00-07:00", "ColumnName": "Completed", "Count": 324 },
{ "DateValue": "2015-07-16T00:00:00-07:00", "ColumnName": "In Progress", "Count": 5 }
]
}
Suggerimento
Minore è il numero di righe restituite, più veloce viene aggiornato Power BI o Excel. Per ridurre al minimo il set di risultati, usare intervalli di date stretti e filtri specifici per schede e team.
Usare l'intelligenza artificiale per creare query di aggregazione
Se si configura il server MCP di Azure DevOps, è possibile usare gli assistenti di intelligenza artificiale per creare e risolvere i problemi relativi alle query di aggregazione OData.
Esempi di suggerimenti
| Attività | Richiesta di esempio |
|---|---|
| Conteggio per stato | Write an OData aggregation query that counts work items grouped by state in <Contoso> project |
| Somma punti stimati | Create an OData query using $apply to sum story points by iteration path for user stories in <Contoso> project |
| Creare una query CFD | Generate an OData aggregation query for a cumulative flow diagram that groups work items by board column and date in <Contoso> project |
| Filtrare quindi aggregare | Write an OData query that filters to bugs with priority 1 and then counts them grouped by area path in <Contoso> project |
| Aggregazioni multiple | Create an OData query that returns both the count and average story points per sprint for <Contoso> project |
| Eseguire il debug della sintassi $apply | My OData aggregation query returns a 400 error - help me fix the $apply clause for grouping work items by state and type in <Contoso> project |