Analytics OData-metadata

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Att förstå metadata som är associerade med entitetsmodellen för analys är en förutsättning för att programmatiskt fråga datamodellen för analys. OData-metadata är en maskinläsbar beskrivning av entitetsmodellen som är utformad för att aktivera klientförbrukning.

Anteckning

"Open Data Protocol (OData) är ett dataåtkomstprotokoll som bygger på kärnprotokoll som HTTP och vanliga metoder som REST för webben. Det finns olika typer av bibliotek och verktyg som kan användas för att använda OData-tjänster." - Grundläggande självstudie om OData Organization.

I den här artikeln får du lära dig att:

  • Köra frågor mot metadata i ett specifikt projekt
  • Köra frågor mot metadata i en organisation
  • Identifiera nycklar, egenskaper och navigeringsegenskaper som är associerade med en entitet
  • Identifiera funktionerna i Analytics OData-slutpunkten

Detaljerade beskrivningar för alla OData-element finns i OData-modellen. Information om hur du frågar efter metadata finns i Skapa OData-frågor för analys.

Anteckning

Analytics-tjänsten aktiveras automatiskt och stöds i produktion för alla Azure DevOps-tjänster. Power BI-integrering och åtkomst till OData-flödet för Analystjänsten är allmänt tillgängliga. Vi rekommenderar att du använder den och ger oss feedback. Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0och den senaste förhandsversionen är v4.0-preview. Mer information finns i OData API-versionshantering.

Anteckning

Analytics-tjänsten installeras automatiskt och stöds i produktion för alla nya projektsamlingar för Azure DevOps Server 2020 och senare versioner. Power BI-integrering och åtkomst till OData-flödet för Analystjänsten är allmänt tillgängliga. Vi rekommenderar att du använder den och ger oss feedback. Om du har uppgraderat från Azure DevOps Server 2019 kan du installera Analytics-tjänsten under uppgraderingen.

Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0och den senaste förhandsversionen är v4.0-preview. Mer information finns i OData API-versionshantering.

Anteckning

Analytics-tjänsten är i förhandsversion för Azure DevOps Server 2019. Du kan aktivera eller installera den för en projektsamling. Power BI-integrering och åtkomst till OData-flödet för Analystjänsten finns i förhandsversion. Vi rekommenderar att du använder den och ger oss feedback.

Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0och den senaste förhandsversionen är v4.0-preview. Mer information finns i OData API-versionshantering.

Entitetsuppsättningar och entitetstyper

Entiteter är de viktigaste identitetstyperna i en datamodell. Entitetsuppsättningar är namngivna samlingar av entiteter. Är till exempel Projects en entitetsuppsättning som innehåller Project entiteter. En entitet kan vara medlem i högst en entitetsuppsättning.

EntitySets och definiera var och EntityTypes en av entiteterna i Analytics-modellen, inklusive egenskaper och relationer. Entitetstyper definierar namngivna egenskaper och relationer för en entitet. Entitetstyper kan härledas genom enskilt arv från andra entitetstyper. Nyckeln för en entitetstyp skapas från en delmängd av dess primitiva egenskaper.

I följande exempel visas metadata som är associerade med entitetstypen Project .

<EntityType Name="Project">
  <Key>
    <PropertyRef Name="ProjectSK"/>
  </Key>
  <Property Name="ProjectSK" Type="Edm.Guid" Nullable="false"/>
  <Property Name="ProjectId" Type="Edm.Guid" Nullable="false">
    <Annotation Term="Display.DisplayName" String="Project Id"/>
  </Property>
  <Property Name="ProjectName" Type="Edm.String" Nullable="false">
    <Annotation Term="Display.DisplayName" String="Project Name"/>
  </Property>
  <Property Name="AnalyticsUpdatedDate" Type="Edm.DateTimeOffset"/>
  <Property Name="ProjectVisibility" Type="Microsoft.VisualStudio.Services.Analytics.Model.ProjectVisibility">
    <Annotation Term="Display.DisplayName" String="Project Visibility"/>
  </Property>
  <NavigationProperty Name="Areas" Type="Collection(Microsoft.VisualStudio.Services.Analytics.Model.Area)"/>
  <NavigationProperty Name="Iterations" Type="Collection(Microsoft.VisualStudio.Services.Analytics.Model.Iteration)"/>
  <NavigationProperty Name="Teams" Type="Collection(Microsoft.VisualStudio.Services.Analytics.Model.Team)"/>
</EntityType>

Nycklar

Keys definiera de entitetsegenskaper som är tillgängliga för användning som en navigeringsegenskap.

<Key>
   <PropertyRef Name="ProjectSK"/>
</Key>

Egenskaper

Uppsättningen med "Entitetsegenskaper som är tillgängliga för fråga. Anteckningar representerar annan information om en viss egenskap.

Alla egenskaper för Analys som ska vara synliga för slutanvändare kommenteras med en DisplayName.

<Property Name="ProjectSK" Nullable="false" Type="Edm.Guid"/>
<Property Name="ProjectId" Nullable="false" Type="Edm.Guid">
   <Annotation String="Project Id" Term="Display.DisplayName"/>
</Property>
<Property Name="ProjectName" Nullable="false" Type="Edm.String">
   <Annotation String="Project Name" Term="Display.DisplayName"/>
</Property>

ReferenceName är en annan vanlig anteckning som används för att definiera systemidentifieraren för en specifik egenskap.

<Property Name="State" Type="Edm.String">
   <Annotation String="State" Term="Display.DisplayName"/>
   <Annotation String="System.State" Term="Ref.ReferenceName"/>
</Property>

Det är användbart att fråga en enskild entitet. Så småningom vill du förmodligen filtrera eller expandera information om en annan entitet. För att göra det måste du förstå hur du använder navigeringsegenskaperna för entitetsmodellen.

En NavigationaProperty med en samlingstyp representerar en många-till-många-relation i modellen.

<NavigationProperty Name="Teams" Type="Collection(Microsoft.VisualStudio.Services.Analytics.Model.Team)"/>

ReferentialConstraints koppla navigeringsegenskaper till en specifik nyckel för en entitet som representerar en många-till-en-relation i modellen.

<NavigationProperty Name="Project" Type="Microsoft.VisualStudio.Services.Analytics.Model.Project">
   <ReferentialConstraint ReferencedProperty="ProjectSK" Property="ProjectSK"/>
</NavigationProperty>

Containrar (OData-funktioner)

EntitySets

Entiteter är de viktigaste identitetstyperna i en datamodell. Entitetsuppsättningar är namngivna samlingar av entiteter. Och finns EntitySets till exempel WorkItemRevisionsWorkItems i med EntityContainer namnet Container. En entitet kan vara medlem i högst en entitetsuppsättning. Entitetsuppsättningar tillhandahåller de primära startpunkterna i datamodellen och representerar en samling entiteter och associerade navigeringsegenskapsbindningar och anteckningar.

Följande syntax anger datamodellen för entitetsuppsättningen Projects . En beskrivning av varje entitetsuppsättning finns i Datamodell för analys.

<EntitySet Name="Projects" EntityType="Microsoft.VisualStudio.Services.Analytics.Model.Project">
  <NavigationPropertyBinding Path="Areas" Target="Areas"/>
  <NavigationPropertyBinding Path="Iterations" Target="Iterations"/>
  <NavigationPropertyBinding Path="Teams" Target="Teams"/>
  <Annotation Term="Org.OData.Display.V1.DisplayName" String="Projects"/>
</EntitySet>

Funktioner

Funktioner definierar den uppsättning funktioner som förstås av Analytics OData-slutpunkten.

<Annotation Term="Org.OData.Capabilities.V1.FilterFunctions">
   <Collection>
      <String>contains</String>
      <String>endswith</String>
      <String>startswith</String>
      <String>length</String>
      <String>indexof</String>
      <String>substring</String>
      <String>tolower</String>
      <String>toupper</String>
      <String>trim</String>
      <String>concat</String>
      <String>year</String>
      <String>month</String>
      <String>day</String>
      <String>hour</String>
      <String>minute</String>
      <String>second</String>
      <String>fractionalseconds</String>
      <String>round</String>
      <String>floor</String>
      <String>ceiling</String>
      <String>date</String>
      <String>time</String>
      <String>isof</String>
      <String>cast</String>
   </Collection>
</Annotation>

Sammansättningar

Sammansättningsanteckningar definierar uppsättningen transformeringar som förstås av Analytics OData-slutpunkten.

<Annotation Term="Org.OData.Aggregation.V1.ApplySupported">
   <Record>
      <PropertyValue Property="Transformations">
         <Collection>
            <String>aggregate</String>
            <String>filter</String>
            <String>groupby</String>
            <String>compute</String>
            <String>expand</String>
         </Collection>
      </PropertyValue>
      <PropertyValue Property="CustomAggregationMethods ">
         <Collection>
           <String>ax.ApproxCountDistinct</String>
           <String>ax.StandardDeviation</String>
           <String>ax.StandardDeviationP</String>
           <String>ax.Variance</String>
           <String>ax.VarianceP</String>
         </Collection>
      </PropertyValue>
   </Record>
</Annotation>
<Annotation Term="Org.OData.Capabilities.V1.BatchSupportType" Bool="true"/>
<Annotation Term="Org.OData.Capabilities.V1.BatchSupportType">
   <Record>
      <PropertyValue Property="Supported" Bool="true"/>
      <PropertyValue Property="ContinueOnErrorSupported" Bool="false"/>
      <PropertyValue Property="ReferencesInRequestBodiesSupported" Bool="false"/>
      <PropertyValue Property="ReferencesAcrossChangeSetsSupported" Bool="false"/>
      <PropertyValue Property="EtagReferencesSupported" Bool="false"/>
   </Record>
</Annotation>

Nästa steg