Метаданные OData аналитики

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

Понимание метаданных, связанных с моделью сущностей для Аналитики, является необходимым условием для программного запроса модели данных для аналитики. Метаданные OData — это машиночитаемое описание модели сущности, предназначенное для обеспечения использования клиентом.

Примечание

"Open Data Protocol (OData) — это протокол доступа к данным, основанный на основных протоколах, таких как HTTP, и распространенных методологиях, таких как REST для Интернета. Существуют различные виды библиотек и инструментов, которые можно использовать для использования служб OData". - OData Organization Basic Tutorial.

Из этой статьи вы узнаете о следующем.

  • Запрос метаданных для определенного проекта
  • Запрос метаданных в организации
  • Определение ключей, свойств и свойств навигации, связанных с сущностью
  • Определение возможностей конечной точки OData аналитики

Подробные описания всех элементов OData см. в разделе Модель OData. Сведения о запросе метаданных см. в статье Создание запросов OData для Аналитики.

Примечание

Служба аналитики автоматически включается и поддерживается в рабочей среде для всех Azure DevOps Services. Интеграция Power BI и доступ к веб-каналу OData службы аналитики являются общедоступными. Мы рекомендуем вам использовать его и оставить отзыв. Доступные данные зависят от версии. Последняя поддерживаемая версия — v2.0, а последняя предварительная версия — v4.0-preview. Дополнительные сведения см. в разделе Управление версиями API OData.

Примечание

Служба аналитики автоматически устанавливается и поддерживается в рабочей среде для всех новых коллекций проектов для Azure DevOps Server 2020 и более поздних версий. Интеграция Power BI и доступ к веб-каналу OData службы аналитики являются общедоступными. Мы рекомендуем вам использовать его и оставить отзыв. Если вы обновили с Azure DevOps Server 2019 года, вы можете установить службу Аналитики во время обновления.

Доступные данные зависят от версии. Последняя поддерживаемая версия — v2.0, а последняя предварительная версия — v4.0-preview. Дополнительные сведения см. в разделе Управление версиями API OData.

Примечание

Служба аналитики доступна в предварительной версии для Azure DevOps Server 2019 г. Его можно включить или установить для коллекции проектов. Интеграция Power BI и доступ к веб-каналу OData службы аналитики доступны в предварительной версии. Мы рекомендуем вам использовать его и оставить отзыв.

Доступные данные зависят от версии. Последняя поддерживаемая версия — v2.0, а последняя предварительная версия — v4.0-preview. Дополнительные сведения см. в разделе Управление версиями API OData.

Наборы сущностей и типы сущностей

Сущности являются основными типами удостоверений в модели данных. Наборы сущностей — это именованные коллекции сущностей. Например, — это набор сущностей, Projects содержащий сущности Project . Сущность может быть членом не более одного набора сущностей.

EntitySets и EntityTypes определяют каждую из сущностей в модели аналитики, включая свойства и связи. Типы сущностей определяют именованные свойства и связи сущности. Типы сущностей могут наследоваться одним наследованием от других типов сущностей. Ключ типа сущности формируется из подмножества его примитивных свойств.

В следующем примере показаны метаданные, связанные с типом сущности 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>

Ключи

Keys определите свойства сущности, доступные для использования в качестве свойства навигации.

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

Свойства

Набор свойств сущности, доступных для запроса. Заметки представляют другие сведения о данном свойстве.

Любое свойство Analytics, которое должно быть видимым для конечных пользователей, замечается с помощью 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 — это еще одна распространенная заметка, используемая для определения системного идентификатора для определенного свойства.

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

Запрос отдельной сущности полезен. В конечном итоге вы, вероятно, захотите отфильтровать или развернуть сведения о другой сущности. Для этого необходимо понять, как использовать свойства навигации модели сущности.

Объект NavigationaProperty с типом коллекции представляет связь "многие ко многим" в модели.

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

ReferentialConstraints привязка свойств навигации к определенному ключу сущности, представляющего связь "многие к одному" в модели.

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

Контейнеры (возможности OData)

Наборы сущностей

Сущности являются основными типами удостоверений в модели данных. Наборы сущностей — это именованные коллекции сущностей. Например, WorkItems и находятся EntitySets в именованной EntityContainerContainer.WorkItemRevisions Сущность может быть членом не более одного набора сущностей. Наборы сущностей предоставляют основные точки входа в модель данных и представляют коллекцию сущностей и связанных привязок свойств навигации и заметок.

Следующий синтаксис указывает модель данных набора сущностей Projects . Описание каждого набора сущностей см. в разделе Модель данных для аналитики.

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

Возможности

Возможности определяют набор функций , понятных конечной точке OData аналитики.

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

Статистические схемы

Заметки агрегирования определяют набор преобразований, понятных конечной точке OData аналитики.

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

Дальнейшие действия