Condividi tramite


Metadati OData di Analisi

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

Comprendere i metadati associati al modello di entità per Analytics è un prerequisito per l'esecuzione di query a livello di codice sul modello di dati per Analytics. I metadati OData sono una descrizione leggibile dal computer del modello di entità progettato per abilitare l'utilizzo del client.

Nota

"Open Data Protocol (OData) è un protocollo di accesso ai dati basato su protocolli di base come HTTP e metodologie comunemente accettate come REST per il Web. Esistono diversi tipi di librerie e strumenti che possono essere usati per utilizzare i servizi OData". - Esercitazione di base dell'organizzazione OData.

Questo articolo descrive come:

  • Eseguire query sui metadati in un progetto specifico
  • Eseguire query sui metadati in un'organizzazione
  • Identificare le chiavi, le proprietà e le proprietà di navigazione associate a un'entità
  • Identificare le funzionalità dell'endpoint OData di Analytics

Per descrizioni dettagliate per tutti gli elementi OData, vedere Modello OData. Per informazioni sull'esecuzione di query sui metadati, vedere Costruire query OData per Analytics.

Nota

Il servizio Analytics viene abilitato e supportato automaticamente nell'ambiente di produzione per tutti i Servizi DevOps di Azure. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili a livello generale. Ti invitiamo a usarlo e a inviare commenti e suggerimenti. I dati disponibili dipendono dalla versione. La versione supportata più recente è 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 di analisi sono disponibili a livello generale. Ti invitiamo a usarlo e a inviare commenti e suggerimenti. Se è stato eseguito l'aggiornamento da Azure DevOps Server 2019, è possibile installare il servizio Analytics durante l'aggiornamento.

I dati disponibili dipendono dalla versione. La versione supportata più recente è 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 è disponibile in anteprima per Azure DevOps Server 2019. È possibile abilitarlo o installarlo per una raccolta di progetti. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili in anteprima. Ti invitiamo a usarlo e a inviare commenti e suggerimenti.

I dati disponibili dipendono dalla versione. La versione supportata più recente è v2.0e la versione di anteprima più recente è v4.0-preview. Per altre informazioni, vedere Controllo delle versioni dell'API OData.

Set di entità e tipi di entità

Le entità sono i tipi di identità principali in un modello di dati. I set di entità sono raccolte denominate di entità. Ad esempio, Projects è un set di entità contenente Project entità. Un'entità può essere membro al massimo di un set di entità.

EntitySets e EntityTypes definiscono ognuna delle entità nel modello di Analisi, incluse le proprietà e le relazioni. I tipi di entità definiscono le proprietà denominate e le relazioni di un'entità. I tipi di entità possono derivare da un'ereditarietà singola da altri tipi di entità. La chiave di un tipo di entità viene formata da un subset delle relative proprietà primitive.

Nell'esempio seguente vengono illustrati i metadati associati al Project tipo di entità.

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

Chiavi

Keys definire le proprietà dell'entità disponibili per l'uso come proprietà di navigazione.

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

Proprietà

Set di 'Proprietà entità disponibili per la query. Le annotazioni rappresentano altri dettagli su una determinata proprietà.

Qualsiasi proprietà di Analytics che deve essere visibile agli utenti finali viene annotata con un oggetto 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 è un'altra annotazione comune usata per definire l'identificatore di sistema per una proprietà specifica.

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

L'esecuzione di query su una singola entità è utile. Alla fine, è probabile che si voglia filtrare o espandere i dettagli di un'altra entità. A tale scopo, è necessario comprendere come usare le proprietà di navigazione del modello di entità.

Un NavigationProperty oggetto con un tipo di raccolta rappresenta una relazione molti-a-molti nel modello.

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

ReferentialConstraints collegare le proprietà di navigazione a una chiave specifica di un'entità, che rappresenta una relazione molti-a-uno nel modello.

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

Contenitori (funzionalità OData)

EntitySet

Le entità sono i tipi di identità principali in un modello di dati. I set di entità sono raccolte denominate di entità. Ad esempio, WorkItems e WorkItemRevisions si trovano EntitySets all'interno dell'oggetto EntityContainer denominato Container. Un'entità può essere membro al massimo di un set di entità. I set di entità forniscono i punti di ingresso primari nel modello di dati e rappresentano una raccolta di entità e associazioni di proprietà e annotazioni di navigazione associate.

La sintassi seguente indica il modello di dati del Projects set di entità. Per una descrizione di ogni set di entità, vedere Modello di dati per Analisi.

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

Funzionalità

Le funzionalità definiscono il set di funzioni comprese dall'endpoint OData di Analytics.

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

Aggregazioni

Le annotazioni di aggregazione definiscono il set di trasformazioni comprese dall'endpoint OData di Analytics.

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

Passaggi successivi