Metadados OData de Análise

Serviços do Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Compreender os metadados associados ao modelo de entidade para Análise é um pré-requisito para consultar programaticamente o modelo de Dados para Análise. Os metadados OData são uma descrição legível pelo computador do modelo de entidade concebido para permitir o consumo do cliente.

Nota

"O Open Data Protocol (OData) é um protocolo de acesso a dados criado em protocolos principais como HTTP e metodologias geralmente aceites, como REST para a Web. Existem vários tipos de bibliotecas e ferramentas que podem ser utilizadas para consumir serviços OData." - Tutorial Básico da Organização OData.

Neste artigo, irá aprender a:

  • Consultar os metadados num projeto específico
  • Consultar os metadados numa organização
  • Identificar as chaves, propriedades e propriedades de navegação associadas a uma Entidade
  • Identificar as capacidades do ponto final OData da Análise

Para obter descrições detalhadas para todos os elementos OData, veja Modelo OData. Para obter informações sobre como consultar os metadados, veja Construir consultas OData para Análise.

Nota

O serviço Analytics é ativado e suportado automaticamente em produção para todos os Serviços do Azure DevOps. A integração e o acesso do Power BI ao feed OData do Serviço de Análise estão geralmente disponíveis. Encorajamo-lo a utilizá-lo e a dar-nos feedback. Os dados disponíveis dependem da versão. A versão suportada mais recente é v2.0, e a versão de pré-visualização mais recente é v4.0-preview. Para obter mais informações, veja Controlo de versões da API OData.

Nota

O serviço Analytics é instalado e suportado automaticamente em produção para todas as novas coleções de projetos para Azure DevOps Server 2020 e versões posteriores. A integração e o acesso do Power BI ao feed OData do Serviço de Análise estão geralmente disponíveis. Encorajamo-lo a utilizá-lo e a dar-nos feedback. Se atualizou a partir do Azure DevOps Server 2019, pode instalar o serviço Analytics durante a atualização.

Os dados disponíveis dependem da versão. A versão suportada mais recente é v2.0, e a versão de pré-visualização mais recente é v4.0-preview. Para obter mais informações, veja Controlo de versões da API OData.

Nota

O serviço Analytics está em pré-visualização para Azure DevOps Server 2019. Pode ativá-la ou instalá-la para uma coleção de projetos. A integração e o acesso do Power BI ao feed OData do Serviço de Análise estão em Pré-visualização. Encorajamo-lo a utilizá-lo e a dar-nos feedback.

Os dados disponíveis dependem da versão. A versão suportada mais recente é v2.0, e a versão de pré-visualização mais recente é v4.0-preview. Para obter mais informações, veja Controlo de versões da API OData.

Conjuntos de entidades e tipos de entidade

As entidades são os principais tipos de identidade num modelo de dados. Os conjuntos de entidades são coleções nomeadas de entidades. Por exemplo, Projects é um conjunto de entidades que Project contém entidades. Uma entidade pode ser membro de, no máximo, um conjunto de entidades.

EntitySets e EntityTypes defina cada uma das entidades no modelo Análise, incluindo propriedades e relações. Os tipos de entidade definem as propriedades e relações nomeadas de uma entidade. Os tipos de entidade podem derivar por herança única de outros tipos de entidade. A chave de um tipo de entidade é formada a partir de um subconjunto das respetivas propriedades primitivas.

O exemplo seguinte mostra os metadados associados ao Project tipo de entidade.

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

Chaves

Keys defina as propriedades entidade disponíveis para utilização como Propriedade de Navegação.

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

Propriedades

O conjunto de "Propriedades da entidade disponíveis para consulta. As anotações representam outros detalhes sobre uma determinada propriedade.

Qualquer propriedade do Analytics que deve ser visível para os utilizadores finais é anotada com um 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 é outra anotação comum utilizada para definir o identificador de sistema para uma propriedade específica.

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

Consultar uma Entidade individual é útil. Eventualmente, é provável que queira filtrar ou expandir os detalhes de outra Entidade. Para tal, tem de compreender como utilizar as Propriedades de Navegação do modelo entidade.

Um NavigationaProperty com um tipo de coleção representa uma relação muitos-para-muitos no modelo.

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

ReferentialConstraints associar propriedades de navegação a uma chave específica de uma entidade, representando uma relação muitos-para-um no modelo.

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

Contentores (capacidades OData)

Conjuntos de Entidades

As entidades são os principais tipos de identidade num modelo de dados. Os conjuntos de entidades são coleções nomeadas de entidades. Por exemplo, WorkItems e WorkItemRevisions estão EntitySets dentro do EntityContainer nome Container. Uma entidade pode ser membro de, no máximo, um conjunto de entidades. Os conjuntos de entidades fornecem os pontos de entrada principais no modelo de dados e representam uma coleção de entidades e enlaces e anotações de propriedades de Navegação associados.

A seguinte sintaxe indica o modelo de dados do Projects conjunto de entidades. Para obter uma descrição de cada conjunto de entidades, veja Modelo de dados para Análise.

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

Capacidades

As capacidades definem o conjunto de funções compreendidas pelo ponto final OData da Análise.

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

Agregações

As anotações de agregação definem o conjunto de transformações compreendidas pelo ponto final OData da Análise.

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

Passos seguintes