共用方式為


Power BI 中的即時串流

具有即時串流功能的 Power BI 可協助您即時串流處理資料及更新儀表板。 在 Power BI 中建立的任何視覺效果或儀表板,都能顯示及更新即時資料和視覺效果。 串流資料的裝置與來源可以是工廠感應器、社交媒體來源、服務使用計量,或任何其他時效性資料收集器或傳送器。

此文章將說明如何在 Power BI 中設定和使用即時串流語意模型。

[環境感應器] 儀表板的螢幕擷取畫面,即時顯示資料的結果。

即時語意模型的類型

首先,務必了解設計來要在磚與儀表板中顯示的即時語意模型類型,以及那些語意模型之間有何差異。

下列三種類型的即時語意模型是專為在即時儀表板上顯示而設計:

  • 推送語意模型
  • 串流語意模型
  • PubNub 串流語意模型

此節將說明這些語意模型彼此有何不同。 後續各節描述如何將資料推送到每個語意模型。

推送語意模型

使用「推送語意模型」,將資料推送到 Power BI 服務。 建立語意模型時,Power BI 服務會在服務中自動建立新的資料庫來儲存資料。

由於有個基礎資料庫可在資料送達時將之儲存於其中,因此,您可以使用資料來建立報表。 這些報表及其視覺效果就像任何其他報表視覺效果一樣。 您可以使用 Power BI 的所有報表建置功能,例如,Power BI 視覺效果、資料警示,以及釘選的儀表板磚。

使用推送語意模型建立報表之後,您可以將任何報表視覺效果釘選到儀表板。 在該儀表板上,視覺效果一律會在資料更新時即時更新。 在 Power BI 服務中,每次收到新資料時,儀表板就會觸發磚重新整理。

關於推送語意模型中釘選的磚,有兩項值得注意的考量:

  • 使用 [動態釘選] 選項來釘選整個報表,將不會導致自動更新資料。
  • 當您將視覺效果釘選到儀表板之後,可以使用問與答,以自然語言提問推送語意模型相關問題。 進行問與答查詢之後,您可以將產生的視覺效果釘選回儀表板,而該視覺效果也會即時更新。

串流語意模型

「串流語意模型」也會將資料推送到 Power BI 服務,但有個重要差異︰Power BI 只會將資料儲存到很快就到期的暫存快取。 暫存快取只會用來顯示具有一些暫時性歷程記錄的視覺效果,例如,具有一小時時間範圍的折線圖。

串流語意模型沒有基礎資料庫,所以您無法使用從串流流入的資料來建置報表視覺效果。 因此,您無法使用報表功能,例如,篩選、Power BI 視覺效果和其他報表功能。

將串流語意模型視覺化的唯一方式就是新增一個磚,並使用串流語意模型作為「自訂串流資料」來源。 以串流語意模型為基礎的自訂串流磚已最佳化,可用來快速顯示即時資料。 將資料推送到 Power BI 服務與更新視覺效果之間幾乎沒有延遲,因為資料不需要進入資料庫或從資料庫讀取。

實際上,如果將推送與視覺化資料之間的延遲降到最低至關重要,最好使用串流語意模型及其隨附的串流視覺效果。 您應該以依現況視覺化的格式來推送資料,而不需進行任何其他彙總。 依現況備妥的資料範例包括溫度及預先計算的平均值。

PubNub 串流語意模型

透過「PubNub 串流語意模型」,Power BI Web 用戶端使用 PubNub SDK (英文) 來讀取現有的 PubNub 資料流。 Power BI 服務不會儲存任何資料。 因為 Web 用戶端會直接進行此呼叫,所以,如果您只允許來自您網路且經過核准的輸出流量,則必須將流向 PubNub 的流量列為允許。 如需指示,請參閱關於核准 PubNub 輸出流量的支援文章 (英文)。

就像串流語意模型一樣,PubNub 串流語意模型沒有基礎 Power BI 資料庫。 您無法根據流入的資料建置報表視覺效果,而且無法使用篩選或 Power BI 視覺效果等報表功能。 您只能透過將磚新增到儀表板,並設定 PubNub 資料流作為來源,將 PubNub 串流語意模型視覺化。

以 PubNub 串流語意模型為基礎的磚已最佳化,可用來快速顯示即時資料。 由於 Power BI 會直接連線到 PubNub 資料流,因此,將資料推送到 Power BI 服務與更新視覺效果之間幾乎沒有延遲。

串流語意模型矩陣

下表描述三種類型的即時串流語意模型,並列出其功能和限制。

功能 推送 串流 PubNub
儀表板磚會在推入資料時即時更新
適用於透過報表建置,然後釘選到儀表板的視覺效果。

適用於直接新增到儀表板的自訂串流磚。

適用於直接新增到儀表板的自訂串流磚。
儀表板磚會使用流暢的動畫來更新 否。
資料會永久儲存在 Power BI 中以進行歷程分析 否。
資料會暫時儲存一小時以呈現視覺效果。
否。
根據資料建置 Power BI 報表 否。 否。
資料擷取最大速率 1 個要求
每個要求 16 MB
5 個要求
每個要求 15 KB
N/A
資料不會推送到 Power BI。
資料輸送量限制 每小時 100 萬列 無。 N/A
資料不會推送到 Power BI。

將資料推送到語意模型

此節描述如何建立資料並推送到可在即時串流中使用之三種主要類型的即時語意模型。

您可以使用下列方法,將資料推送到語意模型:

  • Power BI REST API
  • Power BI 串流語意模型 UI
  • Azure 串流分析

使用 Power BI REST API 推送資料

您可以使用 Power BI REST API 來建立資料並傳送到推送語意模型和串流語意模型。 當您使用 Power BI REST API 建立語意模型時,defaultMode 旗標會指定要推送還是串流處理語意模型。

如果未設定任何 defaultMode 旗標,語意模型預設為推送語意模型。 如果將 defaultMode 值設定為 pushStreaming,語意模型既是推送和串流語意模型,又可提供這兩種語意模型類型的優點。

注意

當您使用語意模型且將 defaultMode 旗標設定為 pushStreaming 時,如果要求超過串流語意模型的 15 KB 大小限制,但小於推送語意模型的 16 MB 大小限制,要求就會成功,而且推送語意模型中的資料會更新。 不過,任何串流磚都會暫時失敗。

建立語意模型之後,您可以使用 PostRows REST API 來推送資料。 所有對 REST API 的要求都會使用 Microsoft Entra ID OAuth 來保護。

使用串流語意模型 UI 推送資料

在 Power BI 服務中,您可以選取 [API] 方法來建立語意模型,如下列螢幕擷取畫面所示:

[新增串流語意模型] 選項的螢幕擷取畫面,其中顯示 [API] 選取項目。

當您建立新的串流語意模型時,可以啟用 [歷程資料分析],如下列螢幕擷取畫面所示。 此選項影響重大。

[新增串流語意模型] 的螢幕擷取畫面,其中顯示已啟用 [歷程資料分析]。

當 [歷程資料分析] 停用 (預設為停用) 時,您會建立串流語意模型,如稍早所述。 啟用 [歷程資料分析] 時,您建立的語意模型會同時成為串流語意模型和推送語意模型。 此設定相當於使用 Power BI REST API 來建立語意模型,且將其 defaultMode 設定為 pushStreaming,如先前所述。

注意

使用 Power BI 服務 UI 建立的串流語意模型不需要 Microsoft Entra 驗證。 在這類語意模型中,語意模型擁有者會收到具有 rowkey 的 URL,其授權要求者在不使用 Microsoft Entra ID OAuth 持有人權杖的情況下將資料推送到語意模型。 不過,Microsoft Entra ID 方法仍可將資料推送到語意模型。

使用 Azure 串流分析推送資料

您可以新增 Power BI 作為 Azure 串流分析內的輸出,然後在 Power BI 服務中即時將那些資料流視覺化。 此節描述該流程的技術詳細資料。

Azure 串流分析使用 Power BI REST API 來建立輸出到 Power BI 的資料流,並將 defaultMode 設定為 pushStreaming。 產生的語意模型可以使用推送和串流。 當您建立語意模型時,Azure 串流分析會將 retentionPolicy 旗標設定為 basicFIFO。 使用該設定,支援推送語意模型的資料庫可儲存 200,000 個資料列,而且會以先進先出 (FIFO) 的方式卸除資料列。

重要

如果 Azure 串流分析查詢導致對 Power BI 的輸出非常快速 (例如,每秒一次或兩次),Azure 串流分析就會將輸出批次處理為單一要求。 此批次處理可能導致要求大小超過串流磚限制,因此串流磚可能無法轉譯。 在此情況下,最佳做法是讓資料輸出到 Power BI 的速率變慢。 例如,要求超過 10 秒的最大值,而不是每秒的最大值。

在 Power BI 中設定即時串流語意模型

為了開始使用即時串流,您選擇下列兩種方式之一,以在 Power BI 中取用串流資料:

  • 具有串流資料視覺效果的「磚」
  • 從串流資料建立並在 Power BI 中保存的「語意模型」

不論使用哪個選項,您都必須在 Power BI 中設定串流資料。 讓即時串流語意模型可在 Power BI 中運作:

  1. 在現有或新的儀表板中,選取 [新增磚]

  2. 在 [新增磚] 頁面上,選取 [自訂串流資料],然後選取 [下一步]

    [新增磚] 頁面的螢幕擷取畫面,其中顯示 [自訂串流資料] 選取項目。

  3. 在 [新增自訂串流資料磚] 頁面上,您可以選取現有的語意模型,或選取 [管理語意模型],在您已經建立串流語意模型時匯入該串流語意模型。 如果您尚未設定串流資料,請選取 [新增串流語意模型] 以開始使用。

    儀表板的螢幕擷取畫面,其中顯示 [新增自訂串流資料磚] 中的 [新增串流語意模型] 連結。

  4. 在 [新增串流語意模型] 頁面上,選取 [API]、[Azure Stream] 或 [PubNub],然後選取 [下一步]

    [新增串流語意模型] 選項的螢幕擷取畫面,其中顯示 [API]、[Azure Stream] 和 [PubNub] 選項。

建立串流語意模型

有三種方式能建立 Power BI 可取用及視覺化的即時串流資料摘要:

  • 使用即時串流端點的 Power BI REST API
  • Azure 串流
  • PubNub

此節描述 Power BI REST API 和 PubNub 選項,並說明如何從串流資料來源建立串流磚或語意模型。 然後,您可以使用語意模型來建置報表。 如需 Azure Stream 選項的詳細資訊,請參閱來自 Azure 串流分析的 Power BI 輸出

使用 Power BI REST API

Power BI REST API 讓開發人員能夠更輕鬆地進行即時串流處理。 在 [新增串流語意模型] 畫面上,選取 [API],然後選取 [下一步] 之後,您可以提供讓 Power BI 能夠連線並使用端點的項目。 如需 API 的詳細資訊,請參閱使用 Power BI REST API

[新增串流語意模型] 對話方塊的螢幕擷取畫面,其中顯示用於連線的 Power BI REST API 項目。

如果您想要讓 Power BI 儲存此資料流傳送的資料,讓您能夠對收集的資料進行報告和分析,請啟用 [歷程資料分析]

當您成功建立資料流之後,就會獲得 REST API URL 端點。 您的應用程式可以使用 POST 要求來呼叫端點,將串流資料推送到 Power BI 語意模型。 在您的 POST 要求中,確定要求本文符合 Power BI 使用者介面所提供的範例 JSON。 例如,將您的 JSON 物件包裝在陣列中。

警告

針對您在 Power BI 服務 UI 中建立的串流語意模型,語意模型擁有者會取得含有「資源金鑰」的 URL。 此金鑰會在不使用 Microsoft Entra ID OAuth 持有人權杖的情況下,授權要求者將資料推送到語意模型。 當您使用這種類型的語意模型和方法時,請記住 URL 中具有祕密金鑰的含意。

使用 PubNub

將 PubNub 串流與 Power BI 整合,可協助您在 Power BI 中建立並使用低延遲的 PubNub 資料流。 當您在 [新增串流語意模型] 畫面上選取 [PubNub],然後選取 [下一步] 時,您會看到下列畫面:

[新增串流語意模型] 對話方塊的螢幕擷取畫面,其中顯示用於連線的 PubNub 項目。

重要

您可以使用 PubNub 存取管理員 (PAM) 驗證金鑰來保護 PubNub 通道。 此金鑰會與有權存取儀表板的所有使用者共用。 如需 PubNub 存取控制的詳細資訊,請參閱管理存取 (英文)。

PubNub 資料流通常很大量,而且不一定適合使用其原始格式進行儲存和歷程分析。 若要使用 Power BI 對 PubNub 資料進行歷程分析,您必須彙總原始 PubNub 串流並將其傳送到 Power BI,例如使用 Azure 串流分析

Power BI 中即時串流的範例

以下範例為 Power BI 中即時串流的運作方式。 此範例使用來自 PubNub 的公開可用串流。 依照此範例進行,以親自了解即時串流的價值。

  1. 在 Power BI 服務中,選取或建立新的儀表板。 在畫面頂端,選取 [編輯]>[新增磚]

  2. 在 [新增磚] 畫面上,選取 [自訂串流資料],然後選取 [下一步]

    儀表板的螢幕擷取畫面,其中顯示含有 [自訂串流資料] 區段的 [新增磚]。

  3. 在 [新增自訂串流資料磚] 頁面上,選取 [新增串流語意模型]

    儀表板的螢幕擷取畫面,其中顯示 [新增自訂串流資料磚] 中的 [新增串流語意模型] 連結。

  4. 在 [新增串流語意模型] 頁面上,選取 [PubNub],然後選取 [下一步]

  5. 在下一個畫面上,輸入語意模型名稱,在接下來的兩個欄位中輸入下列值,然後選取 [下一步]

    • 子機碼:sub-c-99084bc5-1844-4e1c-82ca-a01b18166ca8
    • 通道名稱:pubnub-sensor-network

    [新增串流語意模型] 對話方塊的螢幕擷取畫面,其中顯示如何在 [子機碼] 和 [通道名稱] 欄位中建立語意模型名稱和項目。

  6. 在下一個畫面上,保留自動填入的值,然後選取 [建立]

    [新增串流語意模型] 對話方塊的螢幕擷取畫面,其中顯示串流欄位中語意模型名稱和值的預設值。

  7. 回到 Power BI 工作區,建立新的儀表板,然後在畫面頂端選取 [編輯]>[新增磚]

  8. 選取 [自訂串流資料],然後選取 [下一步]

  9. 在 [新增自訂串流資料磚] 頁面上,選取新的串流語意模型,然後選取 [下一步]

    試用範例語意模型。 透過將值欄位新增至折線圖並新增其他磚,您可能會獲得看起來類似下列螢幕擷取畫面的即時儀表板:

    [環境感應器] 儀表板的螢幕擷取畫面,其中即時顯示結果。

接著建立您自己的語意模型,並將即時資料串流處理到 Power BI。

問題和回答

以下是關於在 Power BI 中即時串流處理的一些常見問題與解答。

您可以在推送或串流語意模型上使用篩選嗎?

串流語意模型不支援篩選。 針對推送語意模型,您可以建立報表、篩選報表,然後將篩選過的視覺效果釘選到儀表板。 不過,一旦視覺效果位於儀表板之後,就無法變更篩選。

您可以將動態報表磚分別釘選到儀表板,然後就能變更篩選。 不過,動態報表磚將不會在推入資料時進行即時更新。 您必須選取儀表板頁面右上方的 [重新整理] 圖示,手動更新視覺效果。

當您將篩選套用至含有 DateTime 欄位 (具有毫秒精確度) 的推送語意模型時,不支援等價運算子。 大於 (>) 或小於 (<) 之類的運算子均可正常運作。

如何查看推送或串流語意模型的最新值?

串流語意模型是設計來顯示最新資料。 您可以使用 [卡片] 串流視覺效果類型,輕鬆查看最新數值。 卡片視覺效果不支援 DateTimeText 資料類型。

針對推送語意模型,如果您的結構描述中有時間戳記,您可以嘗試使用 last N 篩選來建立報表視覺效果。

如何對即時語意模型進行模型化?

無法對串流語意模型進行模型化,因為資料不會永久儲存。 針對推送語意模型,您可以使用建立語意模型 REST API 來建立具有關聯性與量值的語意模型,並使用更新資料表 REST API 來將量值新增至現有資料表。

如何清除推送或串流語意模型上的所有值?

在推送語意模型上,您可以使用刪除資料列 REST API 呼叫。 目前沒有任何方式可清除串流語意模型的資料,但資料會在一個小時之後自行清除。

如果您設定了對 Power BI 的 Azure 串流分析輸出,但卻沒看到其出現在 Power BI,是出了什麼問題?

請採取下列步驟,針對此問題進行疑難排解:

  1. 重新啟動 Azure 串流分析作業。
  2. 嘗試在 Azure 串流分析中重新授權您的 Power BI 連線。
  3. 確定您會在 Power BI 服務中,檢查您針對 Azure 串流分析輸出指定的相同工作區。
  4. 確定 Azure 串流分析查詢會使用 INTO 關鍵字,明確輸出到 Power BI 輸出。
  5. 判斷 Azure 串流分析作業是否有資料流經其中。 只有在傳輸資料時,才會建立語意模型。
  6. 查看 Azure 串流分析記錄,以查看是否有任何警告或錯誤。

自動重新整理頁面

您可以在報表頁面層級使用自動頁面重新整理,來設定視覺效果 (只有在取用頁面時才處於作用中狀態) 的重新整理間隔。 自動頁面重新整理僅適用於 DirectQuery 資料來源。 最小重新整理間隔取決於報表發佈所在的工作區類型及進階工作區的容量管理員設定。

如需自動頁面重新整理的詳細資訊,請參閱 Power BI 中的自動頁面重新整理