共用方式為


Azure Cosmos DB for MongoDB 虛擬核心

總結

項目 說明
發佈狀態 Beta
支援的產品 Power BI (語意模型)
Power BI (數據流)
Fabric(Dataflow Gen2)
支援的驗證類型 Power BI Desktop、
具有網關的
Power Query Online 和
Power Query Online 的基本(使用者名稱/密碼)
函數參考文件 直接查詢函式支援
Power Query M 函式參考

先決條件

支援的功能

從 Power Query Desktop 連線到適用於 MongoDB 的 Azure Cosmos DB 虛擬核心資料庫

若要從 Power Query Desktop 連線到適用於 MongoDB 的 Azure Cosmos DB 虛擬核心,請執行下列步驟:

  1. 在「取得資料」體驗中,選取「Azure Cosmos DB for MongoDB 虛擬核心」。 Power Query Desktop 中的 取得數據 體驗會因應用程式而異。 如需應用程式 Power Query Desktop 取得數據 體驗的詳細資訊,請移至 取得數據的位置

  2. 適用於 MongoDB 的 Azure Cosmos DB 虛擬核心中,提供 Cosmos DB 端點。 選擇性地提供資料庫名稱和集合名稱。 如果未提供資料庫名稱,則即將推出的 [ 導覽器 ] 畫面會顯示所有資料庫及其各自的集合。 同時指定資料庫和集合名稱只會顯示該集合。 指定沒有資料庫名稱的集合名稱會導致連接錯誤。

    螢幕擷取畫面顯示適用於 MongoDB 的 Azure Cosmos DB 虛擬核心資料庫連線。

  3. 請選擇資料連線模式:匯入DirectQuery

  4. 請選擇 [確定]

  5. 如果您是第一次連線到此資料庫,請先輸入您的使用者名稱和密碼,再選取 [連線]。

    螢幕擷取畫面顯示 Azure Cosmos DB for MongoDB vCore 資料庫認證。

  6. [導覽器] 中,選取您想要的資料庫資訊。 集合清單會出現在每個資料庫底下。 選取一或多個集合,然後選取 [ 載入 ] 以載入數據,或選取 [ 轉換數據 ] 以繼續在 Power Query 編輯器中轉換數據。 如果先前提供選擇性的資料庫名稱和集合名稱,資料庫和集合清單就會受到影響。

    螢幕擷取畫面顯示適用於 MongoDB 的 Azure Cosmos DB 虛擬核心載入或轉換。

從 Power Query Online 連接到 Azure Cosmos DB for MongoDB vCore 資料庫

若要從 Power Query Online 連線到適用於 MongoDB 的 Azure Cosmos DB 虛擬核心資料庫:

  1. 在「取得數據體驗」中,選取 [Azure Cosmos DB 適用於 MongoDB 的虛擬核心] 選項。 不同的應用程式透過不同的方式來體驗 Power Query Online 的資料取得功能。 如需有關如何從您的應用程式進入 Power Query Online 資料獲取體驗的詳細資訊,請移至 何處取得資料

    螢幕擷取畫面顯示 Power Query 線上的 Azure Cosmos DB vCore for MongoDB 圖示。

  2. 在出現的 [適用於 MongoDB 的 Azure Cosmos DB 虛擬核心 ] 對話框中,輸入 Cosmos DB 端點。 選擇性地提供資料庫名稱和集合名稱。 如果未提供資料庫名稱,則即將推出的 [ 導覽器 ] 畫面會顯示所有資料庫及其各自的集合。 同時指定資料庫和集合名稱只會顯示該集合。 指定沒有資料庫名稱的集合名稱會導致連接錯誤。

    螢幕擷取畫面顯示 Power Query 線上中適用於 MongoDB 的 Azure Cosmos DB 虛擬核心連線對話方塊。

  3. 您可以選取現有的連線或數據閘道。 您可以指定基本身份驗證種類,以在 聯機 認證區段中指定與端點相關聯的使用者名稱和密碼,然後選取 [ 下一步]。

  4. 選取一或多個數據表來匯入和使用,然後選取 [轉換數據] 以在 Power Query 編輯器中轉換數據。

原生 Mongo 查詢

自定義 Value.NativeQuery 函式可讓原生 MongoDB 查詢傳送至數據源。 下列範例示範如何在一開始載入數據時,使用函式來建立數據表。 不過,您可以隨時叫用 轉換數據 選項的此函式。

原生 Mongo 查詢 僅支援 直接查詢 模式。

  1. 使用 [導覽器],選取至少一個集合,然後選擇 [ 轉換數據]。

    螢幕擷取畫面顯示強調轉換資料的原生 Mongo 查詢導覽器。

  2. 選擇 [進階編輯器]。 [ 進階編輯器] 對話框會顯示用來擷取所選集合中所有數據的初始查詢。

    螢幕擷取畫面顯示修改前的原生 Mongo 查詢進階編輯器初始畫面。

  3. Value.NativeQuery 函式會採用兩個引數:來源和查詢本身。 source變數會填入連線至資料庫所需的所有資訊。 如有需要,請更新查詢對象集合的名稱。 集合不一定與 導覽器中選取的集合相同。

    螢幕擷取畫面顯示變更後的原生 Mongo 查詢初始進階編輯器。

  4. 第二個自變數是有效的 MongoDB 查詢,以雙引號括住。 查詢內的引號會以另一個引號逸出,例如, "num1"""$num1""

  5. 選擇 [完成] 以轉換數據。

  6. 由於執行查詢之後,Cosmos DB 不會傳回任何結構描述資訊,因此產生的資料表會將所有資料行類型識別為 任何資料行類型。 使用 [偵測數據類型 ] 轉換數據行,或手動變更感興趣的數據行數據類型。 如有需要,請更新結果數據表的名稱。

    螢幕擷取畫面顯示 Mongo 原生查詢的轉換資料類型。

  7. 關閉 Power Query 編輯器 並套用變更之後,產生的數據表會出現在 [ 資料 ] 窗格中。

    顯示原生 Mongo 查詢轉換資料類型最終結果的螢幕擷取畫面。

請參閱疑難解答和限制以了解Value.NativeQuery函式的限制。

直接查詢支援

直接查詢 支援下列 Power Query 函式:

  • Date.FromDateTime.FromDateTimeZone.FromDate.DayDate.DayOfWeekDate.DayOfYearDate.MonthDate.WeekOfYearDate.Year
  • List.AverageList.ContainsList.FirstList.LastList.MaxList.MinList.Sum
  • Int64.FromCurrency.FromPercentage.FromText.FromLogical.FromLogical.FromTextLogical.ToText
  • Number.AbsNumber.ModNumber.RoundNumber.RoundAwayFromZeroNumber.RoundDownNumber.RoundTowardZeroNumber.RoundUp
  • Table.RowCount
  • Time.HourTime.MinuteTime.Second
  • Value.AddValue.DivideValue.EqualsValue.MultiplyValue.NullableEqualsValue.Subtract

疑難解答和限制

  • 由於尚未支援Power Query 文字函式,在直接查詢模式中轉換數據時,兩者都不會在數據行上使用文字篩選

    • 這類篩選的範例: 開頭為、 結尾為包含等等。
    • 錯誤訊息似乎類似 不支援的作業:不支援的函式調用:『Text.StartsWith』
  • 使用 直接查詢時,並非所有Power Query函式都受到支援,請切換至匯入 模式 ,或發出 原生 Mongo 查詢 ,以完成一或多個遺漏 Power Query 函式的意圖。

  • 使用 原生 Mongo 查詢時,不會傳回任何架構資訊。 所有數據行都會被視為 any ,而且必須手動轉換成所需的數據類型。

  • 自定義 Value.NativeQuery 函式只會取樣從查詢傳回的第一份檔,以便建構結果數據表。 後果是,如果後續檔中有更多的字段,這些欄位就不會包含在結果數據表中。 要麼投影特定數據行,要麼查詢特定補償視圖。

  • 自定義 Value.NativeQuery 函式只能與 直接查詢 搭配使用,而不能與 匯入模式搭配使用。

  • Power BI 會在套用內建篩選條件時,從日期類型卸除毫秒。 因此,如果日期類型中有毫秒,則這些內建篩選無法運作。

  • OLE 負時間值(日期為 1899 年 12 月 30 日之前)的 Date.FromDateTime.FromDateTimeZone.From 無法運作。

  • 如果使用 Power BI DateTimeZone.From 函式,會產生 (400) 錯誤請求,這是來自 Cosmos DB 伺服器的錯誤,因為 Cosmos DB for MongoDB 尚未新增 dateFromString 功能。

  • 不支援包含特殊字元的功能變數名稱(例如、$.、、 @等)。

  • 使用 直接查詢遇到除法 0 時,查詢會失敗。 這與一般 #infinity Power BI結果不同,但與 MongoDB 行為一致。

  • 下列數據類型目前視為字串。 因此,搭配這些數據類型使用值無法用於直接查詢中的篩選,因為下推失敗:

    • decimal128
    • regularExpression
    • 時間戳記
  • 您想要在 Power BI 中使用的任何欄位的建議是確保該欄位位於集合內的每個檔中。 它可確保它一律會顯示在Power BI中。