Power BI と OData クエリを使用してデータに接続する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Power BI にデータをプルするには、Open Data Protocol (OData) クエリを使用することをお勧めします。 OData は、REST API の構築と使用に関するベスト プラクティスを定義する ISO/IEC 承認 OASIS 標準です。 詳細については、 OData のドキュメントを参照してください。
すぐに開始するには、OData クエリを使用するサンプル レポートの 概要を確認してください。 その他の方法については、 Power BI 統合の概要を参照してください。
Power BI では OData クエリを実行できます。このクエリは、フィルター処理または集計された一連のデータを Power BI に返すことができます。 OData クエリには、次の 2 つの利点があります。
- すべてのフィルター処理はサーバー側で行われます。 必要なデータのみが返されるため、更新時間が短くなります。
- データ サーバー側を事前に集計できます。 OData クエリでは、作業項目のロールアップやビルドエラー率などの集計を実行できます。 集計はサーバー側で実行され、集計値のみが Power BI に返されます。 事前集計を使用すると、すべての詳細データを Power BI にプルしなくても、大規模なデータセット間で集計を実行できます。
この記事では、次のことについて説明します。
- OData クエリを記述してテストします。
- Power BI から OData クエリを実行します。
前提条件
- アクセス レベル: Basic 以上のプロジェクトのメンバーである必要があります。
- Permission: 既定では、プロジェクト メンバーは Analytics にクエリを実行してビューを作成する権限を持ちます。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。
Visual Studio Code を使用して OData クエリを記述およびテストする
OData を記述してテストする最も簡単な方法は、 Visual Studio Code OData 拡張機能を使用することです。 Visual Studio Code は、Windows、Mac、Linux で使用できる無料のコード エディターです。 OData 拡張機能には、構文の強調表示や、クエリの記述とテストに役立つその他の関数が用意されています。
Visual Studio Code と OData 拡張機能をインストールする
Visual Studio Code をインストールします。
Visual Studio Code を開き、 Extensions を選択し、 odata を検索します。 結果の一覧で vscode-odata を選択し、インストールします。
filename.odata
など、Visual Studio Code で OData ファイルを作成して保存します。 任意の名前を付けますが、OData 拡張機能機能を有効にするには、.odata
拡張機能が必要です。
OData クエリを記述する
OData クエリを記述します。 クエリの例については、「 OData クエリを使用するサンプル レポートの概要を参照してください。
次のクエリは、特定の領域パスの上位 10 個の作業項目を返します。
{organization}
、{project}
、{area path}
を独自の値で置き換えます。https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems? $select=WorkItemId,Title,WorkItemType,State,CreatedDate &$filter=startswith(Area/AreaPath,'{area path}') &$orderby=CreatedDate desc &$top=10
プロジェクト間でクエリを実行するには、
/{project}
を完全に省略します。
詳細については、 OData クエリのクイック リファレンスを参照してください。
Visual Studio Code でクエリを記述すると、構文が強調表示されます。
OData クエリをテストする
OData クエリをテストするには、クエリ テキスト内の任意の場所にカーソルを置き、 View>Command Palette を選択します。
検索ボックスに「 odata 」と入力して、すべての OData コマンドを表示します。
OData: Open を選択します。 このアクションは、複数行クエリを 1 行の URL に結合し、既定のブラウザーで開きます。
OData クエリ結果セットは JSON 形式です。 結果を表示するには、ブラウザーの JSON フォーマッタ拡張機能をインストールします。 Chrome と Microsoft Edge の両方で、いくつかのオプションを使用できます。
クエリにエラーがある場合、Analytics サービスは JSON 形式でエラーを返します。 たとえば、このエラーは、クエリが存在しないフィールドを選択したことを示します。
クエリが正しく動作することを確認したら、Power BI から実行できます。
Power BI から OData クエリを実行する
Power BI から OData クエリを実行するには、次のセクションの手順に従います。
複数行の OData クエリを 1 行のクエリに結合する
Power BI でクエリを使用する前に、複数行の OData クエリを 1 行のクエリに変換する必要があります。 これを行う最も簡単な方法は、OData 拡張機能でVisual Studio Codeを使用しOData: Combine コマンドを使用することです。
Note
filename.odata ファイルで、最初に複数行のクエリ テキストのコピーを作成してから、コピーで OData: Combine を実行できます。 単一行クエリを読み取り可能な複数行クエリに変換する方法がないため、最初にこの手順を実行します。
Visual Studio Code でクエリ テキスト内の任意の場所にクエリを配置し、 View>Command Palette を選択します。 検索ボックスに「 odata」と入力します。 次に、結果の一覧で OData: Combine を選択します。
複数行クエリは、単一行クエリに変換されます。
次のセクションで使用する行全体をコピーします。
Power BI からクエリを実行する
[データの取得OData フィード>を選択します。 詳細については、「 OData クエリを使用して Power BI レポートを作成するを参照してください。
OData フィード ウィンドウの URL ボックスに、前のセクションでコピーした OData クエリを貼り付け、OK を選択します。
Power BI にプレビュー ページが表示されます。
クエリ オプションを指定する
プレビュー ページで Edit を選択して、Power Query エディターを開きます。
リボンの詳細エディターを選択します。
Query ペインで
[Implementation="2.0"]
パラメーターを表示するには、水平方向にスクロールします。[Implementation="2.0"]
を次の文字列に置き換えます。[Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]
Note
調整エラーを防ぐには、次の操作を行います。
- OData v4 を参照するように Power BI に指示します。
- クエリのパフォーマンスを向上させる null 値を省略するように Analytics サービスに指示します。 Power Query は、検出されたすべての null 値に対して別のクエリを生成することで、null 値をエラーとして解決しようとします。 このアクションにより、何千ものクエリが発生し、使用しきい値をすぐに超えて、ユーザー アカウントが調整される可能性があります。
Power BI が Azure DevOps Analytics Service に対して OData クエリを正常に実行するには、次のアクションが必要です。
OKを選択して詳細エディターを閉じ、Power BI Power Query エディターに戻ります。 Power Query エディターを使用して、次の省略可能なアクションを実行できます。
Query1
クエリの名前をより具体的なものに変更します。- 列を特定の型に変換します。 Power BI は型を自動検出しますが、列を特定のデータ型に変換することもできます。
- 計算列を追加します。
- 列を削除する。
- 列を特定のフィールドに展開します。
データを使用してレポートを作成する
閉じて適用を選択して設定を保存し、データを Power BI にプルします。 データの更新後は、Power BI で通常と同様にレポートを作成できます。