總結
| 項目 | 說明 |
|---|---|
| 發佈狀態 | Beta |
| 支援的產品 | Power BI (語意模型) Power BI (數據流) Fabric(Dataflow Gen2) |
| 支援的驗證類型 | Power BI Desktop、 具有網關的 Power Query Online 和 Power Query Online 的基本(使用者名稱/密碼) |
| 函數參考文件 |
直接查詢函式支援 Power Query M 函式參考 |
先決條件
支援的功能
- 匯入模式
- 直接查詢模式 (Power BI 語意模型)
- 原生 MongoDB 查詢
從 Power Query Desktop 連線到適用於 MongoDB 的 Azure Cosmos DB 虛擬核心資料庫
若要從 Power Query Desktop 連線到適用於 MongoDB 的 Azure Cosmos DB 虛擬核心,請執行下列步驟:
在「取得資料」體驗中,選取「Azure Cosmos DB for MongoDB 虛擬核心」。 Power Query Desktop 中的 取得數據 體驗會因應用程式而異。 如需應用程式 Power Query Desktop 取得數據 體驗的詳細資訊,請移至 取得數據的位置。
在 適用於 MongoDB 的 Azure Cosmos DB 虛擬核心中,提供 Cosmos DB 端點。 選擇性地提供資料庫名稱和集合名稱。 如果未提供資料庫名稱,則即將推出的 [ 導覽器 ] 畫面會顯示所有資料庫及其各自的集合。 同時指定資料庫和集合名稱只會顯示該集合。 指定沒有資料庫名稱的集合名稱會導致連接錯誤。
請選擇資料連線模式:匯入 或 DirectQuery。
請選擇 [確定]。
如果您是第一次連線到此資料庫,請先輸入您的使用者名稱和密碼,再選取 [連線]。
在 [導覽器] 中,選取您想要的資料庫資訊。 集合清單會出現在每個資料庫底下。 選取一或多個集合,然後選取 [ 載入 ] 以載入數據,或選取 [ 轉換數據 ] 以繼續在 Power Query 編輯器中轉換數據。 如果先前提供選擇性的資料庫名稱和集合名稱,資料庫和集合清單就會受到影響。
從 Power Query Online 連接到 Azure Cosmos DB for MongoDB vCore 資料庫
若要從 Power Query Online 連線到適用於 MongoDB 的 Azure Cosmos DB 虛擬核心資料庫:
在「取得數據體驗」中,選取 [Azure Cosmos DB 適用於 MongoDB 的虛擬核心] 選項。 不同的應用程式透過不同的方式來體驗 Power Query Online 的資料取得功能。 如需有關如何從您的應用程式進入 Power Query Online 資料獲取體驗的詳細資訊,請移至 何處取得資料。
在出現的 [適用於 MongoDB 的 Azure Cosmos DB 虛擬核心 ] 對話框中,輸入 Cosmos DB 端點。 選擇性地提供資料庫名稱和集合名稱。 如果未提供資料庫名稱,則即將推出的 [ 導覽器 ] 畫面會顯示所有資料庫及其各自的集合。 同時指定資料庫和集合名稱只會顯示該集合。 指定沒有資料庫名稱的集合名稱會導致連接錯誤。
您可以選取現有的連線或數據閘道。 您可以指定基本身份驗證種類,以在 聯機 認證區段中指定與端點相關聯的使用者名稱和密碼,然後選取 [ 下一步]。
選取一或多個數據表來匯入和使用,然後選取 [轉換數據] 以在 Power Query 編輯器中轉換數據。
原生 Mongo 查詢
自定義 Value.NativeQuery 函式可讓原生 MongoDB 查詢傳送至數據源。 下列範例示範如何在一開始載入數據時,使用函式來建立數據表。 不過,您可以隨時叫用 轉換數據 選項的此函式。
原生 Mongo 查詢 僅支援 直接查詢 模式。
使用 [導覽器],選取至少一個集合,然後選擇 [ 轉換數據]。
選擇 [進階編輯器]。 [ 進階編輯器] 對話框會顯示用來擷取所選集合中所有數據的初始查詢。
Value.NativeQuery 函式會採用兩個引數:來源和查詢本身。
source變數會填入連線至資料庫所需的所有資訊。 如有需要,請更新查詢對象集合的名稱。 集合不一定與 導覽器中選取的集合相同。第二個自變數是有效的 MongoDB 查詢,以雙引號括住。 查詢內的引號會以另一個引號逸出,例如,
"num1"""$num1""選擇 [完成] 以轉換數據。
由於執行查詢之後,Cosmos DB 不會傳回任何結構描述資訊,因此產生的資料表會將所有資料行類型識別為 任何資料行類型。 使用 [偵測數據類型 ] 轉換數據行,或手動變更感興趣的數據行數據類型。 如有需要,請更新結果數據表的名稱。
關閉 Power Query 編輯器 並套用變更之後,產生的數據表會出現在 [ 資料 ] 窗格中。
請參閱疑難解答和限制以了解Value.NativeQuery函式的限制。
直接查詢支援
直接查詢 支援下列 Power Query 函式:
-
Date.From、DateTime.From、DateTimeZone.From、Date.Day、Date.DayOfWeek、Date.DayOfYear、Date.Month、Date.WeekOfYear、Date.Year -
List.Average、List.Contains、List.First、List.Last、List.Max、List.Min、List.Sum -
Int64.From、Currency.From、Percentage.From、Text.From、Logical.From、Logical.FromText、Logical.ToText -
Number.Abs、Number.Mod、Number.Round、Number.RoundAwayFromZero、Number.RoundDown、Number.RoundTowardZero、Number.RoundUp Table.RowCount-
Time.Hour、Time.Minute、Time.Second -
Value.Add、Value.Divide、Value.Equals、Value.Multiply、Value.NullableEquals、Value.Subtract
疑難解答和限制
由於尚未支援Power Query 文字函式,在直接查詢模式中轉換數據時,兩者都不會在數據行上使用文字篩選。
- 這類篩選的範例: 開頭為、 結尾為、 包含等等。
- 錯誤訊息似乎類似 不支援的作業:不支援的函式調用:『Text.StartsWith』
使用 直接查詢時,並非所有Power Query函式都受到支援,請切換至匯入 模式 ,或發出 原生 Mongo 查詢 ,以完成一或多個遺漏 Power Query 函式的意圖。
使用 原生 Mongo 查詢時,不會傳回任何架構資訊。 所有數據行都會被視為
any,而且必須手動轉換成所需的數據類型。自定義
Value.NativeQuery函式只會取樣從查詢傳回的第一份檔,以便建構結果數據表。 後果是,如果後續檔中有更多的字段,這些欄位就不會包含在結果數據表中。 要麼投影特定數據行,要麼查詢特定補償視圖。自定義
Value.NativeQuery函式只能與 直接查詢 搭配使用,而不能與 匯入模式搭配使用。Power BI 會在套用內建篩選條件時,從日期類型卸除毫秒。 因此,如果日期類型中有毫秒,則這些內建篩選無法運作。
OLE 負時間值(日期為 1899 年 12 月 30 日之前)的
Date.From、DateTime.From和DateTimeZone.From無法運作。如果使用 Power BI
DateTimeZone.From函式,會產生 (400) 錯誤請求,這是來自 Cosmos DB 伺服器的錯誤,因為 Cosmos DB for MongoDB 尚未新增dateFromString功能。不支援包含特殊字元的功能變數名稱(例如、
$.、、@等)。使用 直接查詢遇到除法 0 時,查詢會失敗。 這與一般
#infinityPower BI結果不同,但與 MongoDB 行為一致。下列數據類型目前視為字串。 因此,搭配這些數據類型使用值無法用於直接查詢中的篩選,因為下推失敗:
- decimal128
- regularExpression
- 時間戳記
您想要在 Power BI 中使用的任何欄位的建議是確保該欄位位於集合內的每個檔中。 它可確保它一律會顯示在Power BI中。