Azure Cosmos DB v2 (Beta)
摘要
項目 | 說明 |
---|---|
發行狀態 | Beta |
產品 | Power BI (語意模型) Power BI (數據流) 網狀架構 (資料流程 Gen2) |
支援的驗證類型 | 摘要金鑰 |
必要條件
支援的功能
- Import
- DirectQuery (Power BI 語意模型)
- 進階選項
- 重試次數
- 啟用 「AVERAGE」 函式傳遞
- 為多個數據行啟用 「SORT」 Passdown
連線至 Azure Cosmos DB
若要連線到 Azure Cosmos DB 數據:
啟動 Power BI Desktop。
在 [首頁] 索引標籤中,選取 [取得數據]。
在搜尋方塊中,輸入 Cosmos DB v2。
選取 [Azure Cosmos DB v2(Beta],然後選取 [ 聯機]。
在 [ 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。
其他資訊:
在設定數據源驗證的提示中,輸入帳戶金鑰。 然後選取 [連線]。 您的資料目錄、資料庫和資料表會出現在 [ 導覽器 ] 對話框中。
在 [ 顯示選項] 窗格中,選取您要使用的數據集複選框。
指定數據分割索引鍵篩選的最佳方式(讓匯總函數可以向下推送至 Cosmos DB),是使用 動態 M 參數。 若要使用動態 M 參數,您可以建立具有唯一數據分割索引鍵值的數據集、建立參數、將它新增為主要數據集的篩選、將它系結至唯一的 Partition 索引鍵數據集,並將它當做主要數據集的交叉分析篩選器。 使用下列步驟來啟用分割區索引鍵篩選的動態 M 參數。
a. 建立具有唯一數據分割索引鍵值的數據集:
在 [導覽器] 中,選取 [轉換數據 ] 而不是 [載入 ],以顯示Power Query 編輯器。 以滑鼠右鍵按下查詢數據集,然後選取 [ 複製 ] 以建立新的數據集。
重新命名新的資料分割索引鍵模型,然後在Cosmos DB資料分割索引鍵數據行上按兩下滑鼠右鍵。 在此範例中, Product 是 Cosmos DB 數據分割索引鍵數據行。 選取 [移除其他數據行],然後選取 [ 移除重複專案]。
b. 建立動態篩選的參數:
在 Power Query 編輯器中,選取 [管理參數>] [新增參數]。 重新命名新的參數,以反映篩選參數,並將有效的值輸入為 Current Value。
c. 在主要數據集上套用參數化篩選:
選取 [數據分割索引鍵] 數據行的下拉式圖示,然後選取 [文字篩選>等於]。 將篩選類型從 Text 變更為 Parameter。 然後選擇在步驟 B 中建立的參數。 選取 Power Query 編輯器左上角的 [ 關閉及套用 ]。
d. 使用參數係結建立數據分割索引鍵值交叉分析篩選器:
在 Power BI 中,選取 [模型] 索引 標籤 。然後選取 [數據分割索引鍵] 字段。 從 [屬性] 窗格中,選取 [進階>系結至參數]。 選擇在步驟 B 中建立的參數。
選取 [報表] 索引標籤,並新增具有唯一數據分割索引鍵的交叉分析篩選器。
e. 從交叉分析篩選器新增視覺效果並套用分割區索引鍵篩選:
由於交叉分析篩選器上所選擇的分割區索引鍵值會系結至 參數(如步驟 d 完成),而且參數化篩選會套用至主要數據集上(如步驟 c 所示),因此選擇的數據分割索引鍵值會套用為主要數據集上的篩選,而具有分割區索引鍵篩選的查詢會傳遞至所有視覺效果中的 Cosmos DB。
進階選項
Power Query 提供一組進階選項,您可以視需要新增至查詢。
下表列出您可以在Power Query 中設定的所有進階選項。
進階選項 | 描述 |
---|---|
重試次數 | 如果 、 或 429 - Too Many Requests 的 HTTP 傳回碼408 - Request Timeout 412 - 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 函式傳遞]。
連接器目前不支援具有大型分割區索引鍵的 Azure Cosmos DB 容器。
由於伺服器限制,下列語法已停用匯總傳遞:
當查詢未篩選數據分割索引鍵,或當數據分割索引鍵篩選使用 OR 運算元搭配 WHERE 子句最上層的另一個述詞時。
當查詢有一或多個數據分割索引鍵出現在 WHERE 子句中的 IS NOT NULL 子句時。
V2 連接器不支援複雜的數據類型,例如數位、對象和階層式結構。 針對這些案例,我們建議 使用適用於 Azure Cosmos DB 的網狀架構鏡像功能。
V2 連接器會使用前 1,000 份檔的取樣來提出推斷的架構。 當只有檔的一部分更新時,不建議用於架構演進案例。 例如,在具有大量檔之容器中,新加入的屬性可能不會包含在推斷的架構中。 針對這些案例,我們建議 使用適用於 Azure Cosmos DB 的網狀架構鏡像功能。
V2 連接器目前不支援物件屬性中的非字串值。
由於伺服器限制,下列語法已停用篩選傳遞:
- 當 WHERE 子句中參考包含一或多個匯總數據行的查詢時。