Azure Cosmos DB v2 (Beta)

摘要

項目 說明
發行狀態 Beta
產品 Power BI (語意模型)
Power BI (數據流)
網狀架構 (資料流 Gen2)
支援的驗證類型 摘要金鑰

必要條件

支援的功能

  • Import
  • DirectQuery (Power BI 語意模型)
  • 進階選項
    • 重試次數
    • 啟用 「AVERAGE」 函式傳遞
    • 為多個數據行啟用 「SORT」 Passdown

連線 至 Azure Cosmos DB

若要連線到 Azure Cosmos DB 數據:

  1. 啟動 Power BI Desktop。

  2. 在 [首頁] 索引標籤中,選取 [取得數據]。

  3. 在搜尋方塊中,輸入 Cosmos DB v2

  4. 選取 [Azure Cosmos DB v2][Beta],然後選取 [連線]。

    Screenshot showing Select Azure Cosmos DB v2 selection.

  5. 在 [ Azure Cosmos DB v2 連線] 頁面上,針對 Cosmos 端點,輸入您想要使用的 Azure Cosmos DB 帳戶 URI。 針對 [數據 連線 性模式],選擇適合您使用案例的模式,請遵循下列一般指導方針:

    • 針對較小的數據集,選擇 [ 匯入]。 使用匯入模式時,Power BI 會與 Cosmos DB 搭配運作,匯入整個數據集的內容以用於視覺效果。

    • DirectQuery 模式可讓 查詢下 推至 Cosmos DB 容器來執行,並改善連接器的效能。 對於分割的 Cosmos DB 容器,如果查詢也包含數據分割索引鍵上的篩選條件(WHERE 子句),則具有聚合函數的 SQL 查詢會向下傳遞至 Cosmos DB。 例如,如果分割區索引鍵定義為 「Product」,則可以在 Cosmos DB 伺服器上傳遞並執行 SQL 查詢:

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    注意

    如果您想要對 Cosmos DB 容器執行跨分割匯總函式,請使用 適用於 Azure Cosmos DB 的 Azure Synapse Link。

    其他資訊:

    Screenshot of the connection dialog box showing the Cosmos Endpoint entry and Data connectivity mode set to DirectQuery.

  6. 在設定數據源驗證的提示中,輸入帳戶金鑰。 然後選取 [連線]。 您的資料目錄、資料庫和資料表會出現在 [ 導覽器 ] 對話框中。

  7. 在 [ 顯示選項] 窗格中,選取您要使用的數據集複選框。

    Screenshot of the Navigator emphasizing the data you've selected.

  8. 指定數據分割索引鍵篩選的最佳方式(讓匯總函數可以向下推送至 Cosmos DB),是使用 動態 M 參數。 若要使用動態 M 參數,您可以建立具有唯一數據分割索引鍵值的數據集、建立參數、將它新增為主要數據集的篩選、將它系結至唯一的 Partition 索引鍵數據集,並將它當做主要數據集的交叉分析篩選器。 使用下列步驟來啟用分割區索引鍵篩選的動態 M 參數。

    a. 建立具有唯一數據分割索引鍵值的數據集

    [導覽器] 中,選取 [轉換數據 ] 而不是 [載入 ],以顯示Power Query 編輯器。 以滑鼠右鍵按下查詢數據集,然後選取 [ 複製 ] 以建立新的數據集。

    Screenshot showing how to select duplicate from your existing query in the Power Query editor.

    重新命名新的資料分割索引鍵模型,然後在Cosmos DB資料分割索引鍵數據行上按兩下滑鼠右鍵。 在此範例中, Product 是 Cosmos DB 數據分割索引鍵數據行。 選取 [移除其他數據行],然後選取 [ 移除重複專案]。

    Screenshot showing the unique Partition Keys in Power Query editor.

    b. 建立動態篩選的參數

    在 Power Query 編輯器中,選取 [管理參數>] [新增參數]。 重新命名新的參數,以反映篩選參數,並將有效的值輸入為 Current Value

    Screenshot showing how to create a parameter in the Power Query editor.

    c. 在主要數據集上套用參數化篩選

    選取 [數據分割索引鍵] 數據行的下拉式圖示,然後選取 [文字篩選>等於]。 將篩選類型從 Text 變更為 Parameter。 然後選擇在步驟 B 中建立的參數。 選取 Power Query 編輯器左上角的 [ 關閉及套用 ]。

    Screenshot showing the steps to apply the parameterized filter.

    d. 使用參數係結建立數據分割索引鍵值交叉分析篩選器

    在 Power BI 中,選取 [模型] 索引 標籤 。然後選取 [數據分割索引鍵] 字段。 從 [屬性] 窗格中,選取 [進階>系結至參數]。 選擇在步驟 B 中建立的參數。

    Screenshot showing the steps to bind the parameter.

    選取 [報表] 索引標籤,並新增具有唯一數據分割索引鍵的交叉分析篩選器。

    Screenshot of the slicer.

    e. 從交叉分析篩選器新增視覺效果並套用分割區索引鍵篩選

    由於交叉分析篩選器上所選擇的分割區索引鍵值會系結至 參數(如步驟 d 完成),而且參數化篩選會套用至主要數據集上(如步驟 c 所示),因此選擇的數據分割索引鍵值會套用為主要數據集上的篩選,而具有分割區索引鍵篩選的查詢會傳遞至所有視覺效果中的 Cosmos DB。

    Screenshot of the visualization after the partition key filter is applied.

進階選項

Power Query 提供一組進階選項,您可以視需要新增至查詢。

下表列出您可以在Power Query 中設定的所有進階選項。

進階選項 描述
重試次數 如果 、 或 429 - Too Many Requests的 HTTP 傳回碼408 - Request Timeout412 - Precondition Failed為 ,則重試多少次。 重試的預設數目為5。
啟用 AVERAGE 函式傳遞 指定連接器是否允許將AVG聚合函數傳遞至Cosmos DB。 預設值為 1,連接器預設會嘗試將 AVG 聚合函數向下傳遞至 Cosmos DB。 如果自變數包含AVG聚合函數的字串、布爾值或 Null 值,Cosmos DB 伺服器會傳回未定義的結果集。 當設定為 0 值時,AVG 聚合函數不會傳遞至 Cosmos DB 伺服器,而連接器會處理執行 AVG 匯總作業本身。
為多個數據行啟用SORT Passdown 指定連接器是否允許在 SQL 查詢的 ORDER BY 子句中指定時,將多個數據行傳遞至 Cosmos DB。 默認值為 0,如果在 ORDER BY 子句中指定多個數據行,連接器預設不會傳遞數據行,而是自行處理執行順序。 當設定為 1 的值時,連接器會在 SQL 查詢的 ORDER BY 子句中指定時,嘗試將多個數據行傳遞至 Cosmos DB。 若要允許將多個數據行傳遞至 Cosmos DB,請務必在個別集合中的數據行上設定複合索引。 針對數據分割集合,只有在查詢包含分割索引鍵上的篩選時,才會將具有 ORDER BY 的 SQL 查詢傳遞至 Cosmos DB。 此外,如果在 ORDER BY 子句中指定了八個以上的數據行,連接器就不會傳遞 ORDER BY 子句,而是會處理排序執行本身。

已知問題與限制

  • 對於分割的 Cosmos DB 容器,如果查詢也包含數據分割索引鍵上的篩選條件(WHERE 子句),則具有聚合函數的 SQL 查詢會向下傳遞至 Cosmos DB。 如果匯總查詢未包含數據分割索引鍵的篩選,則匯總是由連接器執行。

  • 如果連接器在套用 TOP 或 LIMIT 之後呼叫,則不會傳遞聚合函數。 Cosmos DB 會在處理查詢時處理 TOP 作業。 例如,在下列查詢中,TOP 會在子查詢中套用,而聚合函數則套用在該結果集的頂端:

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • 如果在聚合函數中提供 DISTINCT,連接器就不會在聚合函數中提供 DISTINCT 子句時,將聚合函數向下傳遞至 Cosmos DB。 在聚合函數中出現時,Cosmos DB SQL API 不支援 DISTINCT。

  • 對於 SUM 聚合函數,如果 SUM 中的任何自變數為字串、布爾值或 Null,Cosmos DB 會傳回未定義為結果集。 不過,如果有 Null 值,連接器會將查詢傳遞至 Cosmos DB,讓數據源在 SUM 計算中以零取代 Null 值。

  • 對於AVG聚合函數,如果SUM中的任何自變數為字元串、布爾值或 Null,Cosmos DB 會傳回未定義的結果集。 連接器會公開連接屬性,以停用將AVG聚合函數傳遞至Cosmos DB,以防需要覆寫此預設Cosmos DB行為。 停用AVG傳遞時,它不會傳遞至Cosmos DB,而連接器會處理執行AVG匯總作業本身。 如需詳細資訊,請移至 [進階選項] 中的 [啟用 AVERAGE 函式傳遞]。

  • 連線 or 目前不支援具有大型分割區索引鍵的 Azure Cosmos DB 容器。

  • 由於伺服器限制,下列語法已停用匯總傳遞:

    • 當查詢未篩選數據分割索引鍵,或當數據分割索引鍵篩選使用 OR 運算元搭配 WHERE 子句最上層的另一個述詞時。

    • 當查詢有一或多個數據分割索引鍵出現在 WHERE 子句中的 IS NOT NULL 子句時。

  • 由於伺服器限制,下列語法已停用篩選傳遞:

    • 當 WHERE 子句中參考包含一或多個匯總數據行的查詢時。