A munkakövetési adatok összesítése az Analytics használatával

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

A munkakövetési adatok összegzését kétféleképpen kaphatja meg az Analytics és az OData használatával. Az első metódus a munkaelemek egyszerű számát adja vissza az OData-lekérdezés alapján. A második metódus JSON formátumú eredményt ad vissza az OData-lekérdezés alapján, amely az OData aggregációs bővítményt használja.

Ez a cikk az OData-lekérdezések létrehozása elemzéshez és alapszintű lekérdezések meghatározása az OData Analytics használatával című cikkben található információkat tartalmazza. Emellett a lekérdezések ebben a cikkben a munkaelemek adatainak lekérésére összpontosítanak, azonban a más entitáskészletek lekérdezésére vonatkozó alapelvek érvényesek.

Ebből a cikkből megismerheti a következőket:

  • Az OData aggregációs bővítmény ismertetése
  • Az OData összesítési bővítményének használata
  • Összesített eredmények csoportosítása és szűrése
  • Adatok összesítése göngyölt folyamatábra létrehozásához

Ha meg szeretné tudni, hogyan hozhat létre egyszerű darabszámokat, olvassa el az Elemek számának visszaadása (más adatok nélkül) és Az elemek és adatok számának visszaadása című témakört.

Megjegyzés

Az Elemzési szolgáltatás éles környezetben automatikusan engedélyezve és támogatva van az összes Azure DevOps Services esetében. Általánosan elérhető a Power BI integrációja és az Elemzési szolgáltatás OData-hírcsatornájának elérése. Javasoljuk, hogy használja, és küldjön nekünk visszajelzést. Az elérhető adatok verziófüggőek. A legújabb támogatott verzió a v2.0, a legújabb előzetes verzió pedig .v4.0-preview További információ: OData API-verziószámozás.

Megjegyzés

Az Analytics szolgáltatás automatikusan települ és támogatott éles környezetben a 2020-Azure DevOps Server és újabb verziók összes új projektgyűjteményéhez. Általánosan elérhető a Power BI integrációja és az Elemzési szolgáltatás OData-hírcsatornájának elérése. Javasoljuk, hogy használja, és küldjön nekünk visszajelzést. Ha Azure DevOps Server 2019-es verzióról frissített, a frissítés során telepítheti az Analytics szolgáltatást.

Az elérhető adatok verziófüggőek. A legújabb támogatott verzió a v2.0, a legújabb előzetes verzió pedig .v4.0-preview További információ: OData API-verziószámozás.

Megjegyzés

Az Analytics szolgáltatás előzetes verzióban érhető el Azure DevOps Server 2019-ben. Engedélyezheti vagy telepítheti egy projektgyűjteményhez. A Power BI-integráció és az Elemzési szolgáltatás OData-hírcsatornájának elérése előzetes verzióban érhető el. Javasoljuk, hogy használja, és küldjön nekünk visszajelzést.

Az elérhető adatok verziófüggőek. A legújabb támogatott verzió a v2.0, a legújabb előzetes verzió pedig .v4.0-preview További információ: OData API-verziószámozás.

Mi az OData összesítési bővítménye?

Az elemzés az OData-ra támaszkodik a munkakövetési adatok lekérdezéseinek létrehozásához. Az OData-ban az összesítések a kulcsszót tartalmazó $apply bővítmény használatával érhetők el. Az alábbi példában bemutatjuk, hogyan használhatja ezt a kulcsszót. További információ a bővítményről: OData Extension for Data Aggregation.

Adatok összesítése az OData aggregációs bővítmény használatával

Most, hogy megismerkedett az egyszerű számlálások végrehajtásával, tekintsük át, hogyan indíthat aggregációkat azzal a $apply jogkivonattal, amelyben az URL-cím végén található alapszintű formátum a következő:

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

Ahol:

  • A(z) {entitySetName} az az entitás, amelyet le kellkérdezni a következőhöz:
  • A(z) {columnToAggregate} az aggregációs oszlop
  • A(z) {aggregationType} megadja a használt összesítés típusát
  • A(z) {newColumnName} megadja annak az oszlopnak a nevét, amelynek értékei az összesítés után szerepelnek.

Összesített adatok az alkalmazásbővítménnyel

A bővítmény használatával $apply számokat, összegeket és további információkat kaphat a munkakövetési adatok lekérdezésekor.

Az összes hátralévő munka összegét adja vissza

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

Az utolsó munkaelem-azonosító visszaadása

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

Eredmények csoportosítása a groupby záradékkal

Az OData aggregációs bővítmény az SQL-záradékkal GROUP BY azonos záradékot is támogatgroupby. Ezzel a záradékkal gyorsan lebonthatja a számokat részletesebben.

A következő tie záradék például a munkaelemek számát adja vissza:

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

Adja hozzá a groupby záradékot a munkaelemek számának típus szerinti visszaadásához:

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

A következő példához hasonló eredményt ad vissza:

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

Több tulajdonság szerint is csoportosíthat, ahogyan az alábbi példában látható:

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

A következő példához hasonló eredményt ad vissza:

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

Az entitások között is csoportosíthat, de az OData-csoportosítás eltér attól, ahogyan általában gondolja.

Tegyük fel például, hogy tudni szeretné, hány terület van egy szervezet vagy gyűjtemény egyes projektjében. Az OData-ban a "count all areas and group them by project" (Minden terület megszámlálása és csoportosítása projekt szerint) kifejezés egyenértékű azzal, hogy "adja meg az összes projektet és az egyes projektekhez tartozó területek számát". Ez a következőhöz hasonló lekérdezést eredményez:

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

Összesített eredmények szűrése

Szűrheti az összesített eredményeket is, de azok alkalmazása kissé eltér attól, mint amikor nem aggregációt használ. Az Analytics kiértékeli a szűrőket egy folyamat mentén, így mindig a legjobb, ha először a legkülönbözőbb szűrést hajtja végre.

A szűrők a következő példához hasonlóan néznek ki:

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

Megjegyzés

Nem kell megadnia a záradékot groupby . Egyszerűen használhatja a aggregate záradékot egyetlen érték visszaadásához.

Több összesítés létrehozása egyetlen híváson belül

Előfordulhat, hogy több információt is meg szeretne adni. Ilyen például a befejezett munka összege és a hátralévő munka összege. Ilyen esetben az alábbiak szerint indíthat különálló hívásokat vagy egyetlen hívást:

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

A következő példához hasonló eredményt ad vissza:

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

Számított tulajdonságok létrehozása egyetlen hívásban való használatra

Előfordulhat, hogy matematikai kifejezéssel kell kiszámítania az eredményhalmazban használható tulajdonságokat. Ilyen például a befejezett munka összege, amely el van osztva a befejezett munka összegével és a hátralévő munka összegével a befejezett munka százalékos arányának kiszámításához. Ilyen esetben ezt a példát használhatja:

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

Összegző folyamatábra létrehozása összesített adatokból

Tegyük fel, hogy halmozott folyamatábrákat szeretne létrehozni a Power BI-ban. Az alábbihoz hasonló lekérdezést is használhat:

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

A példához hasonló eredményt ad vissza. Ezután közvetlenül a választott adatvizualizációban használhatja.

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

Vessünk egy pillantást a lekérdezés tényleges tevékenységére:

  • Az adatok szűrése egy adott csapatra
  • Az adatok szűrése egy adott teendőlistára
  • A munkaelemek számát adja vissza.

A Power BI vagy az Excel frissítésekor minél kevesebb sorra van szükség, annál gyorsabb a frissítés.

Következő lépések