使用 Power BI 和 OData 查詢搭配資料 連線

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

若要將數據提取至 Power BI,建議您使用開放式數據通訊協定 (OData) 查詢。 OData 是 ISO/IEC 核准的 OASIS 標準,可定義建置和取用 REST API 的最佳做法。 如需詳細資訊,請參閱 OData 檔

若要快速開始使用,請參閱 使用 OData 查詢的範例報表概觀。 如需其他方法的相關信息,請參閱 Power BI 整合概觀

Power BI 可以執行 OData 查詢,以將篩選或匯總的數據集傳回 Power BI。 OData 查詢有兩個優點:

  • 所有篩選都會在伺服器端完成。 只會傳回您需要的數據,這會導致重新整理時間較短。
  • 您可以預先匯總資料伺服器端。 OData 查詢可以執行匯總,例如工作項目匯總和建置失敗率。 匯總是完成伺服器端的,而且只會將匯總值傳回至 Power BI。 透過預先匯總,您可以跨大型數據集執行匯總,而不需要將所有詳細數據提取到Power BI。

在本文中,您將學會如何:

  • 撰寫及測試 OData 查詢。
  • 從 Power BI 執行 OData 查詢。

必要條件

  • 若要檢視分析數據和查詢服務,您必須是具有基本存取權或更高許可權的項目成員。 根據預設,所有專案成員都會獲得查詢分析的許可權,並定義分析檢視。
  • 若要瞭解有關服務與功能啟用和一般數據追蹤活動的其他必要條件,請參閱 存取分析的許可權和必要條件。

使用 Visual Studio Code 撰寫及測試 OData 查詢

撰寫及測試 OData 最簡單的方式是搭配 OData 延伸模組使用 Visual Studio Code Visual Studio Code 是 Windows、Mac 和 Linux 上可用的免費程式碼編輯器。 OData 延伸模組提供語法醒目提示和其他函式,這些函式適用於撰寫和測試查詢。

安裝 Visual Studio Code 和 OData 擴充功能

  1. 安裝 Visual Studio Code

  2. 開啟 Visual Studio Code,選取 [ 延伸模組],然後搜尋 odata。 在結果清單中,選取 vscode-odata,然後加以安裝。

  3. 在 Visual Studio Code 中建立並儲存 OData 檔案,例如 filename.odata。 將它命名為您想要的任何專案,但必須有 .odata 擴充功能才能啟用 OData 擴充功能。

撰寫 OData 查詢

  1. 撰寫 OData 查詢。 如需查詢範例,請參閱 使用 OData 查詢的範例報表概觀。

    下列查詢會傳回特定區域路徑下的前10個工作專案。

  2. 以您的值取代 {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 中撰寫查詢之後,您應該會看到語法醒目提示。

顯示 Visual Studio Code OData 擴充功能的螢幕快照,其中已醒目提示語法。

測試 OData 查詢

  1. 若要測試 OData 查詢,請將游標放在查詢文字中的任何位置,然後選取 [檢視>命令選擇區]。

  2. 在搜尋方塊中,輸入 odata 以顯示所有 OData 命令。

    顯示 Visual Studio Code OData 擴充功能的命令選擇區螢幕快照。

  3. 選取 [OData:開啟]。 此動作會將多行查詢結合成一行URL,並在您的預設瀏覽器開啟它。

    • OData 查詢結果集為 JSON 格式。 若要檢視結果,請安裝瀏覽器的 JSON 格式器擴充功能。 Chrome 和 Microsoft Edge 都有數個選項可供使用。

      顯示 Visual Studio Code OData 擴充功能的 JSON 輸出螢幕快照。

    • 如果查詢發生錯誤,Analytics 服務會以 JSON 格式傳回錯誤。 例如,此錯誤指出查詢選取了不存在的欄位。

      顯示 Visual Studio Code OData 延伸模組 JSON 錯誤的螢幕快照。

確認查詢正常運作之後,您可以從 Power BI 執行查詢。

從 Power BI 執行 OData 查詢

若要從 Power BI 執行 OData 查詢,請遵循下一節中的步驟。

將多行 OData 查詢結合成單行查詢

在 Power BI 中使用查詢之前,您必須將多行 OData 查詢轉換成單行查詢。 若要這麼做,最簡單的方式是搭配 OData 擴充功能使用 Visual Studio Code,並使用 OData:Combine 命令。

注意

filename.odata 檔案中,您可能想要先建立多行查詢文字的複本,然後在複本上執行 OData:合併 。 請先執行此步驟,因為無法將單行查詢轉換成可讀取的多行查詢。

  1. 在 Visual Studio Code 中,將查詢放在查詢文字中的任何位置,然後選取 [檢視>命令選擇區]。 在搜尋方塊中,輸入 odata。 然後在結果清單中,選取 [OData:合併]。

    多行查詢會轉換成單行查詢。

    顯示結合至單行查詢之 Visual Studio Code OData 延伸模組的螢幕快照。

  2. 複製整行以供下一節使用。

從 Power BI 執行查詢

  1. 選取 [取得數據>OData 摘要]。 如需詳細資訊,請參閱 使用 OData 查詢建立 Power BI 報表。

    顯示 Power BI OData 摘要命令的螢幕快照。

  2. 在 [ OData 摘要 ] 視窗中的 [URL ] 方塊中,貼上您在上一節中複製的 OData 查詢,然後選取 [ 確定]。

    .

    Power BI 會顯示預覽頁面。

    顯示 Power BI OData 摘要預覽頁面的螢幕快照。

指定查詢選項

  1. 選取預覽頁面上的 [編輯] 以開啟 Power Query 編輯器。

    顯示 Power BI OData 摘要 Power Query 編輯器 開啟的螢幕快照。

  2. 選取功能區上的 進階編輯器

    顯示已針對Power BI OData 摘要選取 進階編輯器的螢幕快照。

  3. 水平卷動以檢視 [Implementation="2.0"] [查詢] 窗格中的參數

    顯示 Power BI OData 摘要的螢幕快照,其 進階編輯器 捲動到右側。

  4. 取代為 [Implementation="2.0"] 下列字串:

    [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]

    顯示取代字串的螢幕快照。

    注意

    若要防止節流錯誤,請執行下列動作:

    • 指示Power BI 參考 OData v4。
    • 指示 Analytics 服務省略 Null 的任何值,以改善查詢效能。 Power Query 會針對它遇到的每個 Null 值產生另一個查詢,嘗試將 Null 值解析為錯誤。 此動作可能會導致成千上萬的查詢,其會快速超過您的使用量閾值,超過用戶帳戶的節流。

    Power BI 必須執行下列動作,才能針對 Azure DevOps Analytics 服務成功執行 OData 查詢。

  5. 選取 [確定] 以關閉 進階編輯器,然後返回 Power BI Power Query 編輯器。 您可以使用 Power Query 編輯器 來執行下列選擇性動作:

    • Query1 查詢重新命名為更具體的內容。
    • 將資料行轉換成特定類型。 Power BI 會自動偵測類型,但您可能想要將數據行轉換成特定數據類型。
    • 新增計算數據行。
    • 移除資料行。
    • 將數據行展開至特定欄位。

使用數據建立報表

選取 [ 關閉並套用 ] 以儲存您的設定,並將數據提取至 Power BI。 數據重新整理之後,您可以像在 Power BI 中一樣建立報表。

顯示 Power BI 關閉和套用按鈕的螢幕快照。