使用 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 查詢的範例報表概觀。 如需其他方法的相關信息,請參閱 關於PowerBI整合。
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 擴充功能
開啟 Visual Studio Code,選取 [ 延伸模組],然後搜尋 odata。 在結果清單中,選取 vscode-odata,然後加以安裝。
在 Visual Studio Code 中建立並儲存 OData 檔案,例如 filename.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}
。
如需詳細資訊,請參閱 範例報表和快速參考索引。
在 Visual Studio Code 中撰寫查詢之後,您應該會看到語法醒目提示。
測試 OData 查詢
若要測試 OData 查詢,請將游標放在查詢文字中的任何位置,然後選取 [檢視>命令選擇區]。
在搜尋方塊中,輸入 odata 以顯示所有 OData 命令。
選取 [OData:開啟]。 此動作會將多行查詢結合成一行URL,並在您的預設瀏覽器開啟它。
OData 查詢結果集為 JSON 格式。 若要檢視結果,請安裝瀏覽器的 JSON 格式器擴充功能。 Chrome 和 Microsoft Edge 都有數個選項可供使用。
如果查詢發生錯誤,Analytics 服務會以 JSON 格式傳回錯誤。 例如,此錯誤指出查詢選取了不存在的欄位。
確認查詢正常運作之後,您可以從 Power BI 執行查詢。
從 Power BI 執行 OData 查詢
若要從 Power BI 執行 OData 查詢,請遵循下一節中的步驟。
將多行 OData 查詢結合成單行查詢
在 Power BI 中使用查詢之前,您必須將多行 OData 查詢轉換成單行查詢。 若要這麼做,最簡單的方式是搭配 OData 擴充功能使用 Visual Studio Code,並使用 OData:Combine 命令。
注意
在 filename.odata 檔案中,您可能想要先建立多行查詢文字的複本,然後在複本上執行 OData:合併 。 請先執行此步驟,因為無法將單行查詢轉換成可讀取的多行查詢。
在 Visual Studio Code 中,將游標放在查詢文字中的任何位置,然後選取 [檢視>命令選擇區]。 在搜尋方塊中,輸入 odata。 然後在結果清單中,選取 [OData:合併]。
多行查詢會轉換成單行查詢。
複製整行以供下一節使用。
從 Power BI 執行查詢
選取 [取得數據>OData 摘要]。 如需詳細資訊,請參閱 使用 OData 查詢建立 Power BI 報表。
在 [ OData 摘要 ] 視窗中的 [URL ] 方塊中,貼上您在上一節中複製的 OData 查詢,然後選取 [ 確定]。
Power BI 會顯示預覽頁面。
指定查詢選項
選取預覽頁面上的 [編輯],以開啟 Power Query 編輯器。
選取功能區上的 進階編輯器。
水平卷動以檢視
[Implementation="2.0"]
[查詢] 窗格中的參數。取代為
[Implementation="2.0"]
下列字串:[Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]
這項變更有助於防止節流錯誤。 新的值會執行下列動作:
- 指示Power BI 參考 OData v4。
- 指示 Analytics 服務省略 Null 的任何值,以改善查詢效能。
Power Query 會針對它遇到的每個 Null 值產生另一個查詢,嘗試將 Null 值解析為錯誤。 此動作可能會導致數千個查詢。 這些查詢可以快速超過您的使用量閾值,超過用戶帳戶的節流。
選取 [完成] 以關閉 進階編輯器,然後返回 Power BI Power Query 編輯器。 您可以使用 Power Query 編輯器 來執行下列選擇性動作:
- 將
Query1
查詢重新命名為更具體的內容。 - 將資料行轉換成特定類型。 Power BI 會自動偵測類型,但您可能想要將數據行轉換成特定數據類型。
- 新增計算數據行。
- 移除資料行。
- 將數據行展開至特定欄位。
- 將
使用數據建立報表
選取 [ 關閉並套用 ] 以儲存您的設定,並將數據提取至 Power BI。 數據重新整理之後,您可以像在 Power BI 中一樣建立報表。