분석 OData 메타데이터

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

Analytics의 엔터티 모델과 연결된 메타데이터를 이해하는 것은 프로그래밍 방식으로 분석용 데이터 모델을 쿼리하기 위한 필수 구성 요소입니다. OData 메타데이터는 클라이언트 사용을 사용하도록 설계된 엔터티 모델에 대한 컴퓨터에서 읽을 수 있는 설명입니다.

참고

"OData(Open Data Protocol)는 HTTP와 같은 핵심 프로토콜과 웹용 REST와 같은 일반적으로 허용되는 방법론을 기반으로 하는 데이터 액세스 프로토콜입니다. OData 서비스를 사용하는 데 사용할 수 있는 다양한 종류의 라이브러리와 도구가 있습니다." - OData 조직 기본 자습서.

이 문서에서는 다음 방법을 설명합니다.

  • 특정 프로젝트의 메타데이터 쿼리
  • organization 메타데이터 쿼리
  • 엔터티와 연결된 키, 속성 및 탐색 속성 식별
  • Analytics OData 엔드포인트의 기능 식별

모든 OData 요소에 대한 자세한 설명은 OData 모델을 참조하세요. 메타데이터 쿼리에 대한 자세한 내용은 Analytics에 대한 OData 쿼리 생성을 참조하세요.

참고

Analytics 서비스는 모든 Azure DevOps Services 대해 프로덕션에서 자동으로 사용하도록 설정되고 지원됩니다. Power BI 통합 및 Analytics Service의 OData 피드 에 대한 액세스는 일반적으로 사용할 수 있습니다. 이를 사용하고 피드백을 제공하는 것이 좋습니다. 사용 가능한 데이터는 버전에 따라 다릅니다. 지원되는 최신 버전은 이며 v2.0최신 미리 보기 버전은 입니다 v4.0-preview. 자세한 내용은 OData API 버전 관리를 참조하세요.

참고

Analytics 서비스는 Azure DevOps Server 2020 이상 버전에 대한 모든 새 프로젝트 컬렉션에 대해 프로덕션에 자동으로 설치되고 지원됩니다. Power BI 통합 및 Analytics Service의 OData 피드 에 대한 액세스는 일반적으로 사용할 수 있습니다. 이를 사용하고 피드백을 제공하는 것이 좋습니다. Azure DevOps Server 2019에서 업그레이드한 경우 업그레이드하는 동안 Analytics 서비스를 설치할 수 있습니다.

사용 가능한 데이터는 버전에 따라 다릅니다. 지원되는 최신 버전은 이며 v2.0최신 미리 보기 버전은 입니다 v4.0-preview. 자세한 내용은 OData API 버전 관리를 참조하세요.

참고

Analytics 서비스는 2019년 Azure DevOps Server 미리 보기로 제공됩니다. 프로젝트 컬렉션에 사용하도록 설정하거나 설치할 수 있습니다. Power BI 통합 및 Analytics Service의 OData 피드 에 대한 액세스는 미리 보기로 제공됩니다. 이를 사용하고 피드백을 제공하는 것이 좋습니다.

사용 가능한 데이터는 버전에 따라 다릅니다. 지원되는 최신 버전은 이며 v2.0최신 미리 보기 버전은 입니다 v4.0-preview. 자세한 내용은 OData API 버전 관리를 참조하세요.

엔터티 집합 및 엔터티 형식

엔터티는 데이터 모델의 핵심 ID 형식입니다. 엔터티 집합은 엔터티의 명명된 컬렉션입니다. 예를 들어 는 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 기능)

EntitySets

엔터티는 데이터 모델의 핵심 ID 형식입니다. 엔터티 집합은 엔터티의 명명된 컬렉션입니다. 예를 들어 및 WorkItems 는 명명Container된 내에 있습니다 EntitySetsEntityContainer.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>

기능

기능은 Analytics 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>

집계

집계 주석은 Analytics 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>

다음 단계