共用方式為


Azure 時間序列深入解析 Gen2 事件來源

注意

時間序列深入解析服務將於 2024 年 7 月 7 日淘汰。 請考慮儘快將現有的環境移轉至替代解決方案。 如需淘汰和移轉的詳細資訊,請造訪我們的文件

您的 Azure 時間序列深入解析 Gen2 環境最多可以有兩個串流事件來源。 支援兩種類型的 Azure 資源作為輸入:

事件必須以UTF-8編碼的JSON傳送。

建立或編輯事件來源

事件來源是您中樞與 Azure 時間序列深入解析 Gen2 環境之間的連結,而且會在資源群組中建立不同類型的Time Series Insights event source個別資源。 IoT 中樞 或事件中樞資源可以與您的 Azure 時間序列深入解析 Gen2 環境或不同的訂用帳戶位於相同的 Azure 訂用帳戶中。 不過,最佳做法是將您的 Azure 時間序列深入解析 環境和 IoT 中樞 或事件中樞存放在同一個 Azure 區域內。

您可以使用 Azure 入口網站Azure CLIAzure Resource Manager 範本REST API 來建立、編輯或移除環境的事件來源。

警告

請勿限制公用因特網存取時間序列深入解析所使用的中樞或事件來源,否則必要的連線將會中斷。

起始選項

建立事件來源時,您可以指定應該收集哪些預先存在的數據。 這是選擇性設定。 下列是可用的選項:

名稱 描述 Azure Resource Manager 範例
EarliestAvailable 內嵌儲存於 IoT 或事件中樞內所有預先存在的資料 "ingressStartAt": {"type": "EarliestAvailable"}
EventSourceCreationTime 在建立事件來源之後,才開始內嵌後續抵達的資料。 忽略在建立事件來源之前,經串流處理過的所有既存資料。 這是 Azure 入口網站 中的預設設定 "ingressStartAt": {"type": "EventSourceCreationTime"}
CustomEnqueuedTime 您的環境會從您的自訂加入佇列時間 (UTC) 開始內嵌資料。 在您所自訂加入佇列時間的當下或之後,加入 IoT 或事件中樞佇列的所有事件都會由系統內嵌並儲存。 在自訂加入佇列時間之前抵達的所有事件,均會予以忽略。 請注意,「加入佇列的時間」是指事件抵達IoT或事件中樞的時間(UTC)。 這與事件主體中的自定義 時間戳屬性 不同。 "ingressStartAt": {"type": "CustomEnqueuedTime", "time": "2021-03-01T17:00:00.20Z"}

重要

  • 如果您選取 [EarliestAvailable],而且有許多預先存在的數據,當 Azure 時間序列深入解析 Gen2 環境處理所有數據時,可能會遇到高初始延遲。
  • 當數據編製索引時,這個高延遲最終應該會消退。 如果您遇到持續高延遲,請透過 Azure 入口網站 提交支援票證。
  • EarliestAvailable

EarliestAvailable 圖表

  • EventSourceCreationTime

EventSourceCreationTime 圖表

  • CustomEnqueuedTime

CustomEnqueuedTime 圖表

串流擷取最佳做法

  • 請為 Azure 時間序列深入解析 Gen2 環境建立唯一的取用者群組,以取用事件來源的數據。 重複使用取用者群組可能會導致隨機中斷連線,並可能導致數據遺失。

  • 在相同的 Azure 區域中設定您的 Azure 時間序列深入解析 Gen2 環境和 IoT 中樞 和/或事件中樞。 雖然可以在不同的區域中設定事件來源,但不支援此案例,我們無法保證高可用性。

  • 請勿超出您環境的 輸送量速率限制 或每個分割區限制。

  • 設定延遲 警示 ,以在處理數據時遇到問題時收到通知。 如需建議的警示條件,請參閱下方的生產工作負載。

  • 僅針對近乎即時和最近的數據使用串流擷取,不支援串流歷程記錄數據。

  • 瞭解屬性的逸出方式,以及 JSON 數據壓平並儲存的方式。

  • 提供事件來源 連接字串 時,請遵循最低許可權原則。 針對事件中樞,請僅設定具有傳送宣告的共用存取原則,而針對 IoT 中樞 僅使用服務聯機許可權。

警告

如果您刪除 IoT 中樞 或事件中樞,並使用相同的名稱重新建立新的資源,您必須建立新的事件來源,並附加新的 IoT 中樞 或事件中樞。 在您完成此步驟之前,將不會內嵌數據。

生產工作負載

除了上述最佳做法之外,建議您針對業務關鍵工作負載實作下列專案。

  • 將您的 IoT 中樞 或事件中樞數據保留時間增加到最多七天。

  • 在 Azure 入口網站 中建立環境警示。 以平臺 計量 為基礎的警示可讓您驗證端對端管線行為。 建立和管理警示的指示如下。 建議的警示條件:

    • IngressReceivedMessagesTimeLag 大於 5 分鐘
    • IngressReceivedBytes 為 0
  • 在 IoT 中樞 或事件中樞分割區之間保持擷取負載平衡。

歷程記錄數據擷取

Azure 時間序列深入解析 Gen2 目前不支援使用串流管線匯入歷程記錄數據。 如果您需要將過去的數據匯入您的環境,請遵循下列指導方針:

  • 請勿平行串流即時和歷程記錄數據。 擷取順序不足的數據會導致查詢效能降低。
  • 以時間排序的方式擷取歷程記錄數據以獲得最佳效能。
  • 請維持在以下的擷取輸送量速率限制內。
  • 如果數據比您的暖存放區保留期間還舊,請停用暖存放區。

事件來源時間戳

設定事件來源時,系統會要求您提供時間戳標識符屬性。 timestamp 屬性是用來追蹤一段時間的事件,這是在查詢 API做為時間戳$ts的時間,以及用於在 Azure 時間序列深入解析 Explorer 中繪製數列的時間。 如果在建立時未提供任何屬性,或事件遺漏 timestamp 屬性,則會使用事件的 IoT 中樞 或事件中樞加入佇列時間做為預設值。 Timestamp 屬性值會以 UTC 儲存。

一般而言,用戶會選擇自定義時間戳屬性,並使用感測器或標記產生讀取的時間,而不是使用預設中樞加入佇列的時間。 當裝置發生間歇性連線中斷,並將一批延遲的訊息轉送至 gen2 Azure 時間序列深入解析 時,這特別必要。

如果您的自定義時間戳位於巢狀 JSON 物件或陣列內,您必須在扁平化和逸出命名慣例之後提供正確的屬性名稱。 例如,此處顯示的 JSON 承載事件來源時間戳應輸入為 "values.time"

時區位移

時間戳必須以 ISO 8601 格式傳送,並以 UTC 儲存。 如果提供時區位移,則會套用位移,然後以UTC格式儲存和傳回的時間。 如果位移的格式不正確,則會忽略它。 如果您的解決方案可能沒有原始位移的內容,您可以在其他個別的事件屬性中傳送位移數據,以確保它已保留,而且您的應用程式可以在查詢響應中參考。

時區位移應格式化為下列其中一項:

±HHMMZ
±HH:MM
±HH:MMZ

下一步