Analytics ビュー データセットのデザイン

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

各分析ビューでは、Power BI でデータセットが定義されます。 データセットは、視覚化の作成に使用されるテーブルとプロパティです。 Power BI Data Connector for Azure DevOps によって生成されるデータセットには、次の特性があります。

  • Analytics から使用できるエンティティと関連フィールドは、1 つのテーブルにフラット化 (非正規化) されます。 たとえば、"Created By" のユーザー名は、ユーザー ID ではなく文字列 (ユーザー名) としてモデル化されます。 レポートを作成するためにテーブル間にリレーションシップを作成する必要がなくなります。
  • 履歴データは各期間のスナップショットとしてモデル化されるため、傾向レポートは簡単です。

Power BI とデータセットの詳細については、「Power BI - Power BI サービスの基本的な概念」を参照してください。

Analytics OData エンドポイントのフラット化

Analytics OData エンドポイントは、Analytics データの正規化された表現を提供します。 データは主に正規化され、作業項目や関連するタグなど、データ間に存在する "多対多" リレーションシップに関するレポートをサポートします。

Power BI Data Connector は、このデータを 1 つのテーブルとして表します。そのため、 Analytics データ モデル に表示されるリレーションシップを Power BI で再作成する必要はありません。 この表現を使用すると、作業項目タグなどの複雑なフィールドですぐにフィルター処理できます。

このプロセスにより、レポートの起動と実行が大幅に簡素化されます。 ただし、Analytics OData エンドポイントで使用できるすべてのフィールドが、Analytics ビューで選択できるわけではありません。

Analytics ビューで選択可能なフィールド

Analytics ビューで選択できるフィールドは、通常の作業追跡フィールドと Analytics データ ストア フィールドに対応しています。

作業追跡フィールド

次のフィールドを除き、Analytics ビューのすべての作業追跡フィールドを選択できます。

  • ビューが作成された プロジェクト の一部ではないフィールド
  • 説明、履歴、HTML データ型のその他のフィールドなどの長いテキスト フィールド
  • ExternalLinkCount、HyperLinkCount、AttachedFileCount、RelatedLinkCount などの作業項目リンク数フィールド
  • 透かし、IsDeleted などの特定の REST API フィールド
  • チーム、ボード列、ボード名など、 多対多 のリレーションシップを持つフィールド

重要

[作成者]、[割り当て先] などの ID またはユーザー名フィールドは選択可能なフィールドですが、現時点では、作業項目をフィルター処理するためのフィールド条件としてこれらのフィールドを選択することはできません。

各作業項目追跡フィールドの説明については、「Azure Boardsのエンティティとプロパティリファレンス」を参照してください。

分析データ ストア フィールド

分析ビューでは、次の Analytics ベースのフィールドを選択できます。

フィールド 説明
サイクル時間 作業項目が "進行中" の状態カテゴリから "完了" に移動する時間。
日付 (履歴と共に自動的に含まれる) フィルター処理された一連の作業項目の毎日、毎週、または毎月の履歴の表示をサポートします。
Is Current (履歴に自動的に含まれる) Trueを に設定して、フィルター処理された一連の作業項目の最新のスナップショットを表示するデータのフィルター処理をサポートします。
リード タイム 作業項目が "提案済み" の状態カテゴリから "完了" に移動する時間。
親作業項目 ID 作業項目の親の作業項目 ID。
プロジェクト名 プロジェクト フィールドと同じです。
リビジョン 作業項目の履歴のリビジョンに割り当てられている番号。
Tags セミコロンで区切られたタグの一覧。
WorkItemRevisionSK 関連エンティティの結合に使用される作業項目リビジョンの Analytics 一意キー。

状態カテゴリの詳細については、「 ワークフローの状態と状態のカテゴリ」を参照してください。 Analytics データ モデルの詳細については、「分析 用データ モデル」を参照してください。

Analytics で使用できる他のフィールドにアクセスするには、対応するサロゲート キー (SK) または作業項目 ID を [分析] ビューに含めます。 次に、Analytics Navigational プロパティに基づいて必要なマッピング テーブルを作成します。

  • イテレーション (IterationSK)
  • エリア (AreaSK)
  • Teams (AreaSK - Teams Navigational プロパティに基づいてマッピング テーブルを生成する)
  • BoardLocations (AreaSK - BoardLocations ナビゲーション プロパティに基づいてマッピング テーブルを生成する)
  • 日付 (DateSK)
  • プロセス (AreaSK - プロセス ナビゲーション プロパティに基づいてマッピング テーブルを生成)
  • WorkItemLinks (作業項目 ID)

データのリレーションシップ

エンティティ間の良好なリレーションシップを構築するには、 Analytics データ モデル を理解することが重要です。

既定では、基本的なデータが Analytics から返されると、データは次の図に示すように関連します。

エンティティリレーションシップ

タグTeamsユーザー は、他のどのデータにも関連していません。 これらのエンティティの関連付け方法に関連しています。 これらは、いくつかの方法で関連している可能性があります。

  • これらのモデルでは簡単に処理できない多対多リレーションシップ
  • ユーザーと作業項目の間など、エンティティ間には複数のリレーションシップがあります。 これらは次の方法で関連しています。
    • 割当先
    • 作成者
    • 変更者
    • その他

複数のリレーションシップを簡単に処理できます。 たとえば、既定のモデルでは、クエリを編集し、WorkItems テーブルの AssignedTo 列を選択し、列を展開して Users テーブルのすべてのデータを含めることができます。また、[作成者] 列と [変更者] 列についてもこのプロセスを繰り返すことができます。 1 つのテーブルから別のテーブルへの複数のリンクが許可されていません。

この方法で列を展開するもう 1 つの理由は、許可されていない循環リレーションシップを処理するためです。 たとえば、次のパスを使用します。 [プロジェクト > 領域 > ] 作業項目 > プロジェクト。 これは、典型的な循環問題を提示する。 特定のプロジェクトに含まれているのはどれですか? ビルド中のモデルには、領域と作業項目とプロジェクトと作業項目の間にリレーションシップがありますが、循環リレーションシップが完了するため、プロジェクトをエリアに関連付けることはできません。 このシナリオを処理するには、[領域] テーブルの [プロジェクト] 列を展開します。 これを行うには、次の手順を実行します。

  1. [ホーム] タブから [ クエリの編集]を選択します

  2. Areas クエリを選択します。

  3. [プロジェクト] 列 (最後の列) までスクロールし、列の上部にある [展開] アイコンを選択します。

    Areas クエリ、プロジェクト列

  4. ProjectName を除くすべての列をオフにして、[OK] を選択します。

    [プロジェクト] オプションを展開する

これで、プロジェクト別にエリアを一覧表示し、各プロジェクトのエリア数を取得できるようになりました。