我有一個 Azure 流分析 (ASA) 作業,我用它來將事件從我的 Iot Hub 路由到一些函式應用程式和 blob 存盤。我最近在 ASA 作業中選擇了我的 IoT 集線器時,在輸入預覽中遇到了以下錯誤:
與 EventHub 通信時遇到錯誤:超過了消費者組中每個磁區允許的最大接收器數量,即 5。已連接接收器串列 - [uid 串列]
我最初認為這是由于 ASA 中的輸出太多,因為我有 6 個,但我將其減少到 5 個并且仍然得到錯誤。然后,經過一些研究,問題似乎出在物聯網中心/事件中心方面,有太多接收器試圖訪問同一個消費者組。我從這里得到這個假設:
EventHubReceiverQuotaExceeded 原因:流分析無法連接到磁區,因為已達到使用者組中每個磁區允許的最大接收器數量。建議:確保其他流分析作業或服務總線資源管理器未使用相同的使用者組。
所以我檢查了我的天藍色資源以確保,但我沒有任何其他 ASA 作業,也沒有任何服務總線資源管理器資源。我還進入了物聯網中心,專門為我的 ASA 作業創建了一個新的消費者組,然后更改了我的 ASA 作業以使用這個消費者組。
不走運,我仍然收到錯誤訊息。
關于可能導致這種情況的任何想法?
作為參考,這是我的 ASA 作業查詢:
SELECT
*
INTO
storage
FROM
iothub
SELECT
*
INTO
d2cMessages
FROM
iothub
SELECT
*
INTO
storageQueueFunction
FROM
iothub
WHERE
recType LIKE '3'
SELECT
*
INTO
heartbeatD2CFunctionApp
FROM
iothub
WHERE
recType LIKE '51'
SELECT
*
INTO
ackC2D
FROM
iothub
WHERE
recType LIKE '54'
uj5u.com熱心網友回復:
您的作業中有多個查詢,它們都從 IoT 中心輸入讀取。從檔案:
如果您的流式查詢語法多次參考相同的輸入事件中心資源,則作業引擎可以使用來自同一使用者組的每個查詢的多個讀取器。當對同一個消費者組的參考過多時,作業可能會超過五個的限制并引發錯誤。
一個簡單的解決方法是創建一個臨時結果集,如下所示:
WITH telemetry AS (
SELECT * FROM iotHub
)
然后,您可以將查詢更改為讀取telemetry。
SELECT
*
INTO
storageQueueFunction
FROM
telemetry
WHERE
recType LIKE '3'
解決問題的另一種方法是為事件中心創建多個輸入,每個輸入都有不同的使用者組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527549.html
標籤:天蓝色天蓝色物联网集线器天蓝色的eventhub天蓝色流分析
