Agregowanie danych śledzenia pracy przy użyciu usługi Analytics
Azure DevOps Services | Azure DevOps Server 2022 r. — Azure DevOps Server 2019 r.
Możesz uzyskać sumę danych śledzenia pracy na jeden z dwóch sposobów przy użyciu analizy z usługą OData. Pierwsza metoda zwraca prostą liczbę elementów roboczych na podstawie zapytania OData. Druga metoda zwraca wynik w formacie JSON na podstawie zapytania OData, które wykonuje ćwiczenie rozszerzenia agregacji OData.
Ten artykuł kompiluje informacje zawarte w artykule Konstruowanie zapytań OData dla analizy i Definiowanie podstawowych zapytań przy użyciu analizy OData. Ponadto zapytania dotyczą pobierania danych elementów roboczych, jednak zasady dotyczą wykonywania zapytań dotyczących innych zestawów jednostek.
Z tego artykułu dowiesz się:
- Informacje o rozszerzeniu agregacji OData
- Jak używać rozszerzenia agregacji dla OData
- Jak grupować i filtrować zagregowane wyniki
- Jak agregować dane w celu wygenerowania diagramu przepływu skumulowanego
Aby dowiedzieć się, jak wygenerować proste liczby, zobacz Zwracanie liczby elementów (bez innych danych) i Zwracanie liczby elementów i danych.
Uwaga
Usługa Analytics jest automatycznie włączona i obsługiwana w środowisku produkcyjnym dla wszystkich Azure DevOps Services.
Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania nam opinii.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Uwaga
Usługa Analytics jest automatycznie instalowana i obsługiwana w środowisku produkcyjnym dla wszystkich nowych kolekcji projektów w Azure DevOps Server 2020 r. i nowszych wersjach. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania nam opinii. W przypadku uaktualnienia z Azure DevOps Server 2019 możesz zainstalować usługę Analytics podczas uaktualniania.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Uwaga
Usługa Analytics jest dostępna w wersji zapoznawczej dla Azure DevOps Server 2019 r. Możesz ją włączyć lub zainstalować dla kolekcji projektów. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są dostępne w wersji zapoznawczej. Zachęcamy do korzystania z niego i przekazywania nam opinii.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Co to jest rozszerzenie agregacji dla OData?
Analiza opiera się na usłudze OData, aby tworzyć zapytania dotyczące danych śledzenia pracy. Agregacje w usłudze OData są osiągane przy użyciu rozszerzenia, które wprowadza $apply
słowo kluczowe . Poniżej przedstawiono kilka przykładów użycia tego słowa kluczowego. Dowiedz się więcej o rozszerzeniu w temacie OData Extension for Data Aggregation (Rozszerzenie OData dla agregacji danych).
Agregowanie danych przy użyciu rozszerzenia agregacji OData
Teraz, gdy już wiesz, jak wykonywać proste liczby, zobaczmy, jak wyzwalać agregacje przy użyciu tokenu $apply
, w którym podstawowy format na końcu adresu URL jest następujący:
/{entitySetName}?$apply=aggregate({columnToAggregate} with {aggregationType} as {newColumnName})
Gdzie:
- {entitySetName} to jednostka, o którą należy wykonywać zapytania
- {columnToAggregate} to kolumna agregacji
- Element {aggregationType} określi typ użytej agregacji
- {newColumnName} określa nazwę kolumny, która ma wartości po agregacji.
Zagregowane dane przy użyciu rozszerzenia apply
$apply
Za pomocą rozszerzenia można uzyskać liczniki, sumy i dodatkowe informacje podczas wykonywania zapytań dotyczących danych śledzenia pracy.
Zwraca sumę wszystkich pozostałych prac
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(RemainingWork with sum as SumOfRemainingWork)
Zwracanie ostatniego identyfikatora elementu roboczego
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate(WorkItemId with max as MaxWorkItemId)
Grupowanie wyników przy użyciu klauzuli groupby
Rozszerzenie agregacji OData obsługuje również klauzulę identyczną groupby
z klauzulą SQL GROUP BY
. Możesz użyć tej klauzuli, aby szybko podzielić liczby bardziej szczegółowo.
Na przykład następująca klauzula thie zwraca liczbę elementów roboczych:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=aggregate($count as Count)
Dodaj klauzulę , groupby
aby zwrócić liczbę elementów roboczych według typu:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType), aggregate($count as Count))
Zwraca wynik podobny do tego przykładu:
{
"@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
}
]
}
Możesz również grupować według wielu właściwości, jak w tym przykładzie:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$apply=groupby((WorkItemType, State), aggregate($count as Count))
Zwraca wynik podobny do tego przykładu:
{
"@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
}
]
}
Można również grupować między jednostkami, jednak grupowanie OData różni się od tego, jak zwykle o tym można myśleć.
Załóżmy na przykład, że chcesz wiedzieć, ile obszarów należy do każdego projektu w organizacji lub kolekcji. W usłudze OData "zlicz wszystkie obszary i pogrupuj je według projektu" jest równoważne "nadaj mi wszystkie projekty i liczbę obszarów dla każdego projektu". Spowoduje to wyświetlenie zapytania podobnego do następującego:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$apply=groupby((Project/ProjectName), aggregate($count as Count))
Filtrowanie zagregowanych wyników
Można również filtrować zagregowane wyniki, jednak są one stosowane nieco inaczej niż wtedy, gdy nie używasz agregacji. Analiza ocenia filtry wzdłuż potoku, dzięki czemu zawsze najlepiej jest najpierw wykonywać najbardziej dyskretne filtrowanie.
Filtry wyglądają jak w tym przykładzie:
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))
Uwaga
Nie musisz podawać klauzuli groupby
. Możesz po prostu użyć klauzuli aggregate
, aby zwrócić pojedynczą wartość.
Generowanie wielu agregacji w ramach jednego wywołania
Możesz podać wiele informacji. Przykładem jest suma wykonanej pracy i oddzielnie suma pozostałej pracy. W takim przypadku można wykonać oddzielne wywołania lub jedno wywołanie w następujący sposób:
/WorkItems?$apply=aggregate(CompletedWork with sum as SumOfCompletedWork, RemainingWork with sum as SumOfRemainingWork)
Zostanie zwrócony wynik podobny do tego przykładu:
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/$metadata#WorkItems(SumOfCompletedWork,SumOfRemainingWork)","value":[
{
"@odata.id":null,"SumOfCompletedWork":1525841.2900000005,"SumOfRemainingWork":73842.39
}
]
}
Generowanie właściwości obliczeniowych do użycia w ramach jednego wywołania
Może być konieczne użycie wyrażenia matematycznego do obliczenia właściwości do użycia w zestawie wyników. Przykładem jest suma ukończonych prac podzielonych przez sumę ukończonych prac oraz sumę pozostałych prac w celu obliczenia wartości procentowej wykonanej pracy. W takim przypadku można użyć następującego przykładu:
/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
}
]
}
Generowanie diagramu przepływu skumulowanego na podstawie zagregowanych danych
Załóżmy, że chcesz utworzyć skumulowany diagram przepływu w usłudze Power BI. Możesz użyć zapytania podobnego do poniższego:
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
Zwraca wynik podobny do tego przykładu. Następnie możesz użyć jej bezpośrednio w wybranej wizualizacji danych.
{
"@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"
}
]
}
Przyjrzyjmy się temu, co rzeczywiście robi to zapytanie:
- Filtruje dane do określonego zespołu
- Filtruje dane do określonej listy prac
- Zwraca liczbę elementów roboczych.
Podczas odświeżania usługi Power BI lub programu Excel jest wymagana mniejsza liczba wierszy, tym szybciej odbywa się odświeżanie.
Następne kroki
Pokrewne artykuły:
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla