Analyse-OData-Metadaten

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

Das Verständnis der Metadaten, die dem Entitätsmodell für Analytics zugeordnet sind, ist eine Voraussetzung für die programmgesteuerte Abfrage des Datenmodells für Analytics. OData-Metadaten sind eine maschinenlesbare Beschreibung des Entitätsmodells, das den Clientverbrauch ermöglicht.

Hinweis

"Das Open Data Protocol (OData) ist ein Datenzugriffsprotokoll, das auf Kernprotokollen wie HTTP und häufig akzeptierten Methoden wie REST für das Web basiert. Es gibt verschiedene Arten von Bibliotheken und Tools, mit denen OData-Dienste genutzt werden können." - OData Organization Basic-Lernprogramm.

In diesem Artikel lernen Sie Folgendes:

  • Abfragen der Metadaten für ein bestimmtes Projekt
  • Abfragen der Metadaten in einer Organisation
  • Identifizieren der Schlüssel, Eigenschaften und Navigationseigenschaften, die einer Entität zugeordnet sind
  • Identifizieren der Funktionen des Analytics OData-Endpunkts

Ausführliche Beschreibungen für alle OData-Elemente finden Sie unter OData-Modell. Informationen zum Abfragen der Metadaten finden Sie unter Erstellen von OData-Abfragen für Analytics.

Hinweis

Der Analysedienst wird automatisch aktiviert und in der Produktion für alle Azure DevOps-Dienste unterstützt. Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind allgemein verfügbar. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben. Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Hinweis

Der Analysedienst wird automatisch installiert und in der Produktion für alle neuen Projektsammlungen für Azure DevOps Server 2020 und höhere Versionen unterstützt. Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind allgemein verfügbar. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben. Wenn Sie ein Upgrade von Azure DevOps Server 2019 durchgeführt haben, können Sie den Analysedienst während des Upgrades installieren.

Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Hinweis

Der Analysedienst befindet sich in der Vorschau für Azure DevOps Server 2019. Sie können es für eine Projektsammlung aktivieren oder installieren. Die Power BI-Integration und der Zugriff auf den OData-Feed des Analytics-Diensts befinden sich in der Vorschau. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben.

Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Entitätssätze und Entitätstypen

Entitäten sind die Kernidentitätstypen in einem Datenmodell. Entitätssätze sind benannte Auflistungen von Entitäten. Ist beispielsweise ein Entitätssatz, Projects der Entitäten enthält Project . Eine Entität kann ein Mitglied von höchstens einem Entitätssatz sein.

EntitySets und EntityTypes definieren Sie alle Entitäten im Analysemodell, einschließlich Eigenschaften und Beziehungen. Entitätstypen definieren die benannten Eigenschaften und Beziehungen einer Entität. Entitätstypen können von einer einzelnen Vererbung von anderen Entitätstypen abgeleitet werden. Der Schlüssel eines Entitätstyps wird aus einer Teilmenge seiner Grundtypeigenschaften gebildet.

Das folgende Beispiel zeigt die Metadaten, die dem Entitätstyp Project zugeordnet sind.

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

Schlüssel

Keys definieren Sie die Entitätseigenschaften, die für die Verwendung als Navigational-Eigenschaft verfügbar sind.

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

Eigenschaften

Die Gruppe der für die Abfrage verfügbaren Entitätseigenschaften. Anmerkungen stellen weitere Details zu einer bestimmten Eigenschaft dar.

Jede Eigenschaft von Analytics, die für Endbenutzer sichtbar sein sollte, wird mit einem DisplayNameKommentar versehen.

<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 ist eine weitere allgemeine Anmerkung, die zum Definieren des Systembezeichners für eine bestimmte Eigenschaft verwendet wird.

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

Das Abfragen einer einzelnen Entität ist nützlich. Schließlich möchten Sie wahrscheinlich Details einer anderen Entität filtern oder erweitern. Dazu müssen Sie verstehen, wie Sie die Navigationseigenschaften des Entitätsmodells verwenden.

A NavigationProperty with a collection type represents a many-to-many relationship in the model.

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

ReferentialConstraints Binden Von Navigationseigenschaften an einen bestimmten Schlüssel einer Entität, die eine n:1-Beziehung im Modell darstellt.

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

Container (OData-Funktionen)

EntitySets

Entitäten sind die Kernidentitätstypen in einem Datenmodell. Entitätssätze sind benannte Auflistungen von Entitäten. Sie befinden EntitySets sich z. B WorkItems WorkItemRevisions. innerhalb des EntityContainer benannten Container. Eine Entität kann ein Mitglied von höchstens einem Entitätssatz sein. Entitätssätze stellen die primären Einstiegspunkte in das Datenmodell bereit und stellen eine Auflistung von Entitäten und zugeordneten Navigationseigenschaftenbindungen und Anmerkungen dar.

Die folgende Syntax gibt das Datenmodell des Projects Entitätssatzes an. Eine Beschreibung der einzelnen Entitätssätze finden Sie unter "Datenmodell für Analytics".

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

Capabilities

Funktionen definieren den Satz von Funktionen , die vom Analytics OData-Endpunkt verstanden werden.

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

Aggregationen

Aggregationsanmerkungen definieren den Satz von Transformationen , die vom Analytics OData-Endpunkt verstanden werden.

<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ächste Schritte