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 eseguire query a livello di codice sul modello di dati per Analytics. I metadati OData sono una descrizione leggibile del modello di entità progettato per abilitare il consumo 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 vari tipi di librerie e strumenti che possono essere usati per usare i servizi OData." - Esercitazione di base su OData Organization.

In questo articolo viene spiegato 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 spostamento 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 Costrutti query OData per Analytics.

Nota

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

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

Nota

Il servizio Analisi è 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 analisi sono disponibili in anteprima. Ti consigliamo di usarlo e di fornire commenti e suggerimenti.

I dati disponibili dipendono dalla versione. La versione più recente supportata è 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 un membro di al massimo un set di entità.

EntitySets e EntityTypes definire ognuna delle entità nel modello di Analisi, incluse le proprietà e le relazioni. I tipi di entità definiscono le proprietà e le relazioni denominate 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 tipo di Project 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 spostamento.

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

Proprietà

Set di proprietà dell'entità disponibili per la query. Le annotazioni rappresentano altri dettagli relativi a una determinata proprietà.

Qualsiasi proprietà di Analytics che deve essere visibile agli utenti finali viene annotata con un DisplayNameoggetto .

<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 un'entità singola è utile. Alla fine, probabilmente si vuole filtrare o espandere i dettagli di un'altra entità. A tale scopo, è necessario comprendere come usare le proprietà di spostamento del modello di entità.

Un NavigationaProperty 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 legare le proprietà di spostamento 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 di EntityContainerContainer. Un'entità può essere un membro di al massimo un set di entità. I set di entità forniscono i punti di ingresso principali nel modello di dati e rappresentano una raccolta di entità e associazioni di proprietà di navigazione associate e annotazioni.

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

Aggregations

Le annotazioni di aggregazione definiscono il set di trasformazioni compreso 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