共用方式為


使用 Power BI 將 Azure Cosmos DB 資料視覺化

適用於:NoSQL

此文章說明將 Azure Cosmos DB 資料連線至 Power BI Desktop 所需的步驟。

您可以使用下列其中一個選項,從 Power BI 桌面連線到 Azure Cosmos DB:

  • 使用 Microsoft Fabric 中的鏡像,將 Azure Cosmos DB 資料複寫至 Fabric OneLake。 資料庫的任何變更,都會以近即時的方式自動同步至 Fabric OneLake,而且不會影響來源資料庫的效能或取用資源單位 (RU)。

    接著,Power BI 報表可使用 DirectLake 模式從 OneLake 直接存取資料。 透過 Fabric 內 Power BI 的增強式 Copilot 功能,您可以利用生成式 AI 取得重要的商業見解。

  • 使用 Azure Synapse Link 建置 Power BI 報告,而不影響您交易式工作負載的效能或成本,也不會影響任何 ETL 管線。

    您可以使用 DirectQuery匯入模式。 運用 DirectQuery,您可以使用來自 Azure Cosmos DB 帳戶的即時資料來建置儀表板/報告,而不需要將資料匯入或複製至 Power BI。

  • 透過適用於 Power BI 的 Azure Cosmos DB 連接器將 Power BI Desktop 連線至 Azure Cosmos DB 帳戶。 此選項僅適用於匯入模式,並且會取用配置給交易式工作負載的 RU。

注意

在 Power BI Desktop 中建立的報表可以發佈至 PowerBI.com。 您無法從 PowerBI.com 直接擷取 Azure Cosmos DB 資料。

必要條件

在依照本 Power BI 教學課程中的指示進行之前,請先確定您可以存取下列資源:

若要在 PowerBI.com 上共用您的報告,您必須有 PowerBI.com 中的帳戶。 若要深入了解 Power BI 和 Power BI Pro,請參閱 https://powerbi.microsoft.com/pricing (英文)。

現在就開始吧

在 Microsoft Fabric 中使用鏡像建置 BI 報表

您可以在現有的 Azure Cosmos DB 容器上啟用鏡像功能,並近即時地在此資料上建置 BI 報表/儀表板。 如需開始使用 Fabric 和鏡像的指示,請瀏覽 Azure Cosmos DB 的鏡像教學課程。

您只要按幾下滑鼠,即可使用 Azure Cosmos DB 入口網站在現有的 Azure Cosmos DB 容器上啟用 Azure Synapse Link,並在此資料上建置 BI 報告。 Power BI 會使用直接查詢模式連線至 Azure Cosmos DB,讓您能夠查詢即時 Azure Cosmos DB 資料,而不會影響您的交易式工作負載。

若要建置 Power BI 報告/儀表板:

  1. 登入 Azure 入口網站並瀏覽至 Azure Cosmos DB 帳戶。

  2. 從 [整合] 區段中,開啟 [Power BI] 窗格,然後選取 [開始使用]

    注意

    目前,此選項僅適用於 API for NoSQL 帳戶。 您可以直接在 Synapse 無伺服器 SQL 集區中建立 T-SQL 檢視,並建置適用於 MongoDB 的 Azure Cosmos DB 的 BI 儀表板。 如需詳細資訊,請參閱「運用 Synapse,使用 Power BI 和無伺服器 Synapse SQL 集區來分析 Azure Cosmos DB 資料」

  3. 從 [啟用 Azure Synapse Link] 索引標籤中,您可以從 [為此帳戶啟用 Azure Synapse Link] 區段中啟用帳戶上的 Synapse Link。 如果您的帳戶已啟用 Synapse Link,則您看不到此索引標籤。此步驟是開始在您的容器上啟用 Synapse Link 的必要條件。

    注意

    啟用 Azure Synapse Link 會影響成本。 如需詳細資料,請參閱 Azure Synapse Link 定價小節。

  4. 接著,從 [為您的容器啟用 Azure Synapse Link] 區段中,選擇啟用 Synapse Link 所需的容器。

    • 如果您已在某些容器上啟用 Synapse Link,則會看到已選取容器名稱旁邊的核取方塊。 您可以根據您想要在 Power BI 中視覺化的資料,選擇性地將其取消選取。

    • 如果未啟用 Synapse Link,您可以在現有的容器上啟用此功能。

      如果正在任何容器上啟用 Synapse Link,則不會包括這些容器中的資料。 您稍後應該回到此索引標籤,並在啟用容器時匯入資料。

    在現有容器啟用 Synapse Link 的進度。

  5. 根據您容器中的資料量,可能需要一段時間才能啟用 Synapse Link。 若要深入了解,請參閱在現有容器上啟用 Synapse Link 文章。

    您可以在入口網站中檢查進度,如下列畫面所示。 進度達到 100% 時,會為容器啟用 Synapse Link。

    已在選取的容器成功啟用 Synapse Link。

  6. 從 [選取工作區] 索引標籤中,選擇 [Azure Synapse Analytics] 工作區,然後選取 [下一步]。 此步驟會針對稍早選取的容器,在 Synapse Analytics 中自動建立 T-SQL 檢視。 如需將 Azure Cosmos DB 連線至 Power BI 時所需 T-SQL 檢視的詳細資訊,請參閱準備檢視文章。

    注意

    您的 Azure Cosmos DB 容器屬性將會在 T-SQL 檢視中以資料行表示,包括深層巢狀 JSON 資料。 這是 BI 儀表板的快速入門。 這些檢視將可在 Synapse 工作區/資料庫中使用;您也可以在 Synapse 工作區中使用這些完全相同的檢視,以進行資料探索、資料科學、資料工程等。請注意,進階案例可能需要更複雜的檢視或這些檢視的微調,以提升效能。 如需詳細資訊, 請參閱使用 Synapse 無伺服器 SQL 集區時,Synapse Link 的最佳做法一文。

  7. 您可以選擇現有工作區,或建立新的工作區。 若要選取現有工作區,請提供 [訂用帳戶]、[工作區] 和 [資料庫] 詳細資料。 Azure 入口網站將會使用您的 Microsoft Entra 認證自動連線至您的 Synapse 工作區,並建立 T-SQL 檢視。 請確定您具有此工作區的 [Synapse 管理員] 權限。

    連線到 Synapse Link 工作區並建立檢視。

  8. 接下來,選取 [下載 .pbid] 以下載 Power BI 資料來源檔案。 開啟下載的檔案。 其包含所需的連線資訊,並且會開啟 Power BI 桌面。

    以 .pbids 格式下載 Power BI Desktop 檔案。

  9. 您現在可以從 Power BI 桌面連線至 Azure Cosmos DB 資料。 會顯示對應至每個容器中資料的 T-SQL 檢視清單。

    例如,下列畫面顯示車隊資料。 您可以載入此資料以進行進一步分析,或在載入前進行轉換。

    對應至每個容器中資料的 T-SQL 檢視。

  10. 您現在可以使用 Azure Cosmos DB 的分析資料來開始建置報告。 只要將資料複寫至分析存放區 (通常會在幾分鐘內發生),就會將資料的任何變更反映在報告中。

使用 Power BI 連接器來建置 BI 報告

注意

目前僅支援 Azure Cosmos DB for NoSQL 和 API for Gremlin 帳戶的 Azure Cosmos DB 與 Power BI 連接器連線。

  1. 執行 Power BI Desktop。

  2. 您可以 [取得資料]、檢視 [最近使用的來源],或直接從歡迎畫面 [開啟其他報表]。 選取右上角的 [X],即可關閉畫面。 Power BI Desktop 的 [報告] 檢視隨即顯示。

    Power BI Desktop 報表檢視 - Power BI 連接器

  3. 選取 [首頁] 功能區,然後按一下 [取得資料]。 此時應會出現 [取得資料] 視窗。

  4. 按一下 [Azure]、選取 [Azure Cosmos DB (搶鮮版 (Beta))],然後按一下 [連線]

    Power BI Desktop 取得資料 - Power BI 連接器

  5. 在 [預覽版連接器] 頁面上,按一下 [繼續]。 [Azure Cosmos DB] 視窗隨即出現。

  6. 依照下列所示方式指定您要從中擷取資料的 Azure Cosmos DB 帳戶端點 URL,然後按一下 [確定]。 若要使用您的帳戶,可以從 Azure 入口網站 [金鑰] 刀鋒視窗的 [URI] 方塊中擷取 URL。 您可以視需要提供資料庫名稱、集合名稱,或使用導覽器來選取資料庫和集合,以識別資料的來源。

  7. 如果是第一次連接到此端點,系統會提示您提供帳戶金鑰。 如果是您自己的帳戶,請從 Azure 入口網站 [唯讀金鑰] 刀鋒視窗的 [主要金鑰] 方塊中擷取金鑰。 輸入適當的金鑰,然後按一下 [連接]

    建議您在建置報告時使用唯讀金鑰。 這樣可避免不必要地將主要金鑰暴露於潛在的安全性風險下。 您可以從 Azure 入口網站的 [金鑰] 刀鋒視窗取得唯讀金鑰。

  8. 順利連接帳戶後,會出現 [瀏覽器] 窗格。 [瀏覽器] 會顯示帳戶下的資料庫清單。

  9. 按一下並展開報告資料來源的資料庫。 現在,選取要從中擷取資料的集合。

    [預覽] 窗格會顯示 [記錄] 項目的清單。 一份文件會顯示為 Power BI 中的 [記錄] 類型。 同樣地,文件內的巢狀 JSON 區塊也是 [記錄] 。 若要以資料行檢視屬性文件,請按一下具有相反方向的兩個箭頭的灰色按鈕,該相反箭頭象徵展開資料列。 該按鈕位於容器名稱右邊的相同預覽窗格中。

  10. [Power BI Desktop 報告] 檢視可做為您開始建立報告以視覺化資料的起始點。 您可以將欄位拖放到 [報告] 畫布上,以建立報告。

  11. 有兩種方式可以重新整理資料:臨機操作和排程。 只要按一下 [立即重新整理] 即可重新整理資料。 如需排程重新整理選項的詳細資訊,請參閱 Power BI 文件。

已知問題與限制

  • 對於分割的 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。 當彙總函式中存在 DISTINCT 時,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 的 Fabric 鏡像](/articles/cosmos-db/analytics-and-business-intelligence-overview.md 功能。

  • V2 連接器會使用前 1,000 份文件的取樣來提出推斷的結構描述。 當只有部分文件更新時,不建議用於結構描述演進案例。 例如,新增至包含數千文件的容器中的一個文件的屬性,可能不會包含在推斷的結構描述中。 針對這些案例,建議使用適用於 Azure Cosmos DB 的 Fabric 鏡像功能。

  • V2 連接器目前不支援物件屬性中的非字串值。

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

  • 當 WHERE 子句中參考包含一或多個彙總資料行的查詢時。

下一步