在 Azure 時間序列深入解析 Gen1 環境中診斷與解決問題
注意
「時間序列深入解析」服務將於 2024 年 7 月 7 日淘汰。 請考慮盡快將現有的環境移轉至替代解決方案。 如需淘汰和移轉的詳細資訊,請造訪我們的文件。
警告
這是 Gen1 文章。
本文描述您在 Azure 時間序列深入解析環境中可能遇到的問題。 文章中提供可能的原因和解決方案以便排除問題。
影片
了解常見的 Azure 時間序列深入解析挑戰和風險降低
問題:未顯示資料
如果 Azure 時間序列深入解析總管中未顯示任何資料,請考慮這些常見原因。
原因 A:事件來源資料不是 JSON 格式
Azure 時間序列深入解析現在只支援 JSON 資料。 如需 JSON 範例,請參閱支援的 JSON 樣貌。
原因 B:事件來源機碼遺漏必要的權限
針對 Azure IoT 中樞的 IoT 中樞,您必須提供有服務連線權限的機碼。 選取 iothubowner 或服務原則。 兩者都具有服務連線權限。
針對 Azure 事件中樞中的事件中樞,您需要提供有接聽權限的機碼。 讀取和管理原則都可使用,因為其均有接聽權限。
原因 C:所提供的取用者群組並非 Azure 時間序列深入解析專用
當您註冊 IoT 中樞或事件中樞時,請務必設定您想要用來讀取資料的取用者群組。 此取用者群組「不可是共用的」。 如果取用者群組是共用的,基礎 IoT 中樞或事件中樞會自動且隨機地將其中一個讀者中斷連線。 提供唯一的取用者群組讓 Azure 時間序列深入解析加以讀取。
原因 D:環境才剛佈建
第一次建立環境及其資料之後數分鐘,資料會出現在 Azure 時間序列深入解析總管中。
問題:某些資料會顯示,但遺漏資料
當資料只部分顯示且資料似乎落後時,請考慮這些可能的問題。
原因 A:您的環境正在進行節流
建立有資料的事件來源之後,在佈建環境時,節流是常見的問題。 Azure IoT 中樞和 Azure 事件中樞會將資料儲存長達七天。 Azure 時間序列深入解析一律會從事件來源中最舊的事件 (「先進先出」或 FIFO) 開始讀取。
例如,當您連線到某個單一單位 S1 Azure 時間序列深入解析環境時,如果事件來源中有 5 百萬個事件,Azure 時間序列深入解析每天會讀取約 1 百萬個事件。 這樣看起來像 Azure 時間序列深入解析有五天的延遲。 但實際上是環境正在進行節流。
如果您的事件來源中有舊的事件,您可以使用以下兩種方式之一進行節流:
- 變更您事件來源的保留期限制,以協助移除您不想要顯示在 Azure 時間序列深入解析的舊事件。
- 佈建較大的環境大小 (單位數),以增加舊事件的輸送量。 在上述範例中,如果您將相同的 S1 環境增加到一天五個單位,該環境應該會在一天內趕上。 如果您的穩定狀態事件生產是每天 1 百萬個事件或更少,則您可以在 Azure 時間序列深入解析趕上之後,將事件容量減少到一個單位。
強制執行的節流限制以環境 SKU 類型和容量為基礎。 環境中所有的事件來源皆共用此容量。 如果 IoT 中樞或事件中樞的事件來源推送超過強制限制的資料,您就將經歷節流和延遲情形。
下圖顯示有 S1 SKU 且容量為 3 的 Azure 時間序列深入解析環境。 該環境可以每日輸入 3 百萬個事件。
想像一個從事件中樞內嵌訊息的環境。 其每日輸入速率約為 67,000 則訊息。 此速率可轉譯為大約每分鐘 46 個訊息。
- 如果將每個事件中樞訊息壓平合併為單一 Azure 時間序列深入解析事件,則不會發生節流。
- 如果每個事件中樞訊息被壓平合併為 100 個 Azure 時間序列深入解析事件,則每分鐘應內嵌 4,600 個事件。
容量為 3 的 S1 SKU 環境每分鐘只能輸入 2,100 個事件 (每天 1 百萬個事件 = 每三單位每分鐘 700 個事件 = 每分鐘 2,100 個事件)。
若要概略了解壓平合併邏輯的運作方式,請參閱支援的 JSON 樣貌。
過度節流的建議解決方法
若要修正延遲情形,請增加您環境的 SKU 容量。 如需詳細資訊,請參閱調整 Azure 時間序列見解環境的規模。
原因 B:歷史資料初始擷取使輸入變慢
如果您連線至現有的事件來源,則您的 IoT 中樞可能已經包含資料。 環境會從事件來源訊息保留期間開始時開始提取資料。 無法覆寫此預設處理。 您可以進行節流。 節流可能需要一些時間才會趕上,因為它要內嵌歷史資料。
大型初始擷取的建議解決方法
修正延遲:
將 SKU 容量增加到最大允許值 (在此案例中是 10)。 增加容量之後,輸入程序會開始更快地趕上。 增加容量需支付費用。 您可以從 Azure 時間序列深入解析總管的可用性圖表中看出趕上的速度有多快。
趕上延遲時間之後,即可將 SKU 容量降到正常的輸入速率。
問題:先前有顯示資料,但現在不再顯示
如果 Azure 時間序列深入解析不再內嵌資料,但事件仍會串流到 IoT 中樞或事件中樞,請考慮此潛在原因。
原因 A:您的中樞存取金鑰已重新產生,且您的環境必須進行更新
當您建立事件來源時所提供的金鑰不再有效時,就會發生這個問題。 您會在中樞中看到遙測資料,但 Azure 時間序列深入解析中看不見輸入接收的訊息。 如果您不確定是否已重新產生金鑰,您可以在事件中樞的活動記錄中搜尋「建立或更新命名空間授權規則」。針對 IoT 中樞,請搜尋「建立或更新 IotHub 資源。」
若要使用新的金鑰更新您的 Azure 時間序列深入解析環境,請在Azure 入口網站中開啟中樞資源,並複製新的金鑰。 前往您的 Azure 時間序列深入解析資源,然後選取 [事件來源] :
選取已停止擷取的事件來源或來源、貼上新的金鑰,然後選取 [ 儲存] :
問題:事件來源的時間戳記屬性名稱設定沒有作用
請確認來自事件來源的時間戳記屬性值 (JSON 字串) 格式是 yyyy-MM-ddTHH:mm:ss.FFFFFFFK。 請參考下列範例:2008-04-12T12:53Z。
請留意,時間戳記屬性名稱會區分大小寫。
若要確保系統已擷取時間戳記屬性名稱且正常運作,最簡單方式是使用 Azure 時間序列深入解析總管。 在 Azure 時間序列深入解析總管中,使用圖表,當您輸入時間戳記屬性名稱之後,選取一段時間。 以滑鼠右鍵按一下選取範圍,然後選取 [探索事件] 。
第一個資料行標頭應該是您的時間戳記屬性名稱。 在 [時間戳記] 一字旁,會顯示 ($ts)。
將不會顯示下列值:
- (abc):表示 Azure 時間序列深入解析將資料值讀取為字串。
- 日曆圖示:表示 Azure 時間序列深入解析將資料值讀取為日期時間值。
- #:表示 Azure 時間序列深入解析將資料值讀取為整數。