Power BI 中的即時串流

Power BI 與即時串流可協助您即時串流數據及更新儀錶板。 在Power BI 中建立的任何視覺效果或儀錶板都可以顯示及更新實時數據和視覺效果。 串流數據的裝置和來源可以是工廠感測器、社交媒體來源、服務使用計量,或許多其他時間敏感的數據收集器或傳輸器。

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

Screenshot of the Environmental sensors dashboard, showing the results of the data in real-time.

即時語意模型的類型

首先,請務必瞭解設計在磚和儀錶板中顯示的即時語意模型類型,以及這些語意模型的差異。

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

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

本節說明這些語意模型彼此有何不同。 後續各節說明如何將數據推送至每個語意模型。

推送語意模型

透過推送語意模型,數據會推送至 Power BI 服務。 建立語意模型時,Power BI 服務 會自動在服務中建立新的資料庫來儲存數據。

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

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

從推送語意模型記下釘選磚有兩個考慮:

  • 使用 [釘選即時 ] 選項釘選整個報表,將不會導致數據自動更新。
  • 將視覺效果釘選到儀錶板后,您可以使用 Q&A ,以自然語言詢問推播語意模型相關問題。 進行 問答 查詢之後,您可以將產生的視覺效果釘選回儀錶板,該視覺效果也會即時更新。

串流語意模型

串流語意模型也會將數據推送至 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。
數據輸送量的限制 1M 列/小時 無。 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,則語意模型既是推送和串流語意模型,又提供這兩種語意模型類型的優點。

注意

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

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

使用串流語意模型 UI 來推送數據

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

Screenshot of the New streaming semantic model choices, showing the API selection.

當您建立新的串流語意模型時,您可以啟用 歷史數據分析,如下列螢幕快照所示。 此選取專案有顯著的影響。

Screenshot of the New streaming semantic model, showing Historic data analysis enabled.

停用歷史數據分析,根據預設,您可以依照先前所述建立串流語意模型。 啟用歷史數據分析,您建立的語意模型會同時成為串流語意模型和推送語意模型。 此設定相當於使用Power BI REST API 建立語意模型,並將其 defaultMode 設定為 pushStreaming,如先前所述。

注意

使用 Power BI 服務 UI 建立的串流語意模型不需要 Microsoft Entra 驗證。 在這類語意模型中,語意模型擁有者會收到具有 rowkey 的 URL,此 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. 在 [ 新增磚 ] 頁面上,選取 [自定義串流數據],然後選取 [ 下一步]。

    Screenshot of the Add a tile page, showing the Custom Streaming Data selection.

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

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

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

    Screenshot of the New streaming semantic model choices, showing API, Azure Stream, and PubNub options.

建立串流語意模型

有三種方式可以建立 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

Screenshot of the New streaming semantic model dialog, showing the Power BI REST API entries for a connection.

如果您想要讓 Power BI 儲存此數據流傳送的數據,以便對收集的數據進行報告和分析,請啟用 歷程記錄數據分析

成功建立數據流之後,您會取得 REST API URL 端點。 您的應用程式可以使用要求將串流數據推送至 Power BI 語意模型來呼叫端點 POST 。 在您的 POST 要求中,請確定要求本文符合 Power BI 使用者介面所提供的範例 JSON。 例如,將您的 JSON 對象包裝在數位中。

警告

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

使用 PubNub

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

Screenshot of the New streaming semantic model dialog, showing the PubNub entries for connection.

重要

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

PubNub 數據流通常是大量的,而且不一定適合以原始形式儲存和歷程分析。 若要使用Power BI進行 PubNub 資料的歷史分析,您必須匯總原始 PubNub 資料流,並將其傳送至 Power BI,例如使用 Azure 串流分析

Power BI 中的即時串流範例

以下是 Power BI 中即時串流運作方式的範例。 此範例會使用 PubNub 的公開可用數據流。 請遵循範例來查看您自己即時串流的值。

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

  2. 在 [ 新增磚 ] 畫面上,選取 [自定義串流數據],然後選取 [ 下一步]。

    Screenshot of the dashboard, showing the Add tile with the Custom streaming data selection.

  3. 在 [ 新增自定義串流數據磚 ] 頁面上,選取 [ 新增串流語意模型]。

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

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

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

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

    Screenshot of the New streaming semantic model dialog, showing how to create a Semantic model name and entries in the Sub-key and Channel name fields.

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

    Screenshot of the New streaming semantic model dialog, showing defaults for the Semantic model name and Values from stream fields.

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

  8. 選取 [自定義串流數據],然後選取 [ 下一步]。

  9. 在 [ 新增自定義串流數據磚 ] 頁面上,選取新的串流語意模型,然後選取 [ 下一步]。

    使用範例語意模型來玩弄。 藉由將值欄位新增至折線圖和新增其他圖格,您可以取得看起來像下列螢幕快照的即時儀錶板:

    Screenshot of the Environmental sensors dashboard, showing the results in real-time.

繼續建立您自己的語意模型,並將實時數據串流至 Power BI。

問題和回答

以下是 Power BI 中即時串流的一些常見問題和解答。

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

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

您可以個別將實時報表磚釘選到儀錶板,然後您可以變更篩選。 不過,實時報表磚不會在數據推送時即時更新。 您必須選取儀錶板頁面上右上方的 [重新整理] 圖示,手動更新視覺效果

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

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

串流語意模型的設計目的是要顯示最新的數據。 您可以使用 卡片 串流視覺效果類型,輕鬆地查看最新的數值。 卡片視覺效果不支援 DateTimeText 數據類型。

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

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

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

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

在推送語意模型上,您可以使用 刪除資料列 REST API 呼叫。 無法從串流語意模型清除數據,不過數據會在一小時后自行清除。

如果您將 Azure 串流分析輸出設定為 Power BI,但在 Power BI 中看不到,則發生什麼問題?

請採取下列步驟來針對問題進行疑難解答:

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

自動重新整理頁面

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

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