Azure 時間序列深入解析 Gen2 中的時間序列模型

注意

時間序列深入解析 (TSI) 服務在 2025 年 3 月之後將不再受到支援。 請考慮儘快將現有的 TSI 環境移轉至替代解決方案。 如需淘汰和移轉的詳細資訊,請流覽我們的

本文說明時間序列模型、功能,以及如何開始在 Azure 時間序列深入解析 Gen2 環境中建置和更新您自己的模型。

提示

摘要

傳統上,從 IoT 裝置收集的資料缺少內容資訊,因此難以快速尋找和分析感應器。 時間序列模型的主要動機是簡化尋找和分析 IoT 或時間序列資料。 它可藉由啟用時間序列資料的策展、維護和擴充來達成此目標,以協助準備取用者就緒的資料集以進行分析。

案例:Contoso 的新智慧烤箱

請考慮 Contoso 智慧烤箱的虛構案例。 在此案例中,假設每個 Contoso 智慧烤箱都有五個溫度感應器,其中一個用於四個頂級燃燒器,一個用於烤箱本身。 直到最近,每個 Contoso 溫度感應器都會個別傳送、儲存及視覺化其資料。 針對其廚房設備監視,Contoso 依賴基本圖表,每個個別感應器各有一個。

雖然 Contoso 對其初始資料和視覺效果解決方案感到滿意,但有數個限制變得很明顯:

  • 客戶想知道當大多數頂級燃燒器開始時,整體烤箱會有多熱。 Contoso 比較難以分析和呈現整體烤箱條件的統一答案。
  • Contoso 工程師想要確認同時執行的頂級燃燒器不會產生效率不佳的耗電量。 很難交叉參考哪些溫度和電壓感應器彼此相關聯,以及如何在商店中找出它們。
  • Contoso 品質保證小組想要稽核並比較兩個感應器版本之間的歷程記錄。 很難判斷哪些資料屬於哪個感應器版本。

由於無法建構、組織及定義整體智慧烤箱時間序列模型,每個溫度感應器都會維持脫位、隔離且資訊較少的資料點。 將這些資料點轉換成可採取動作的深入解析更為困難,因為每個資料集都獨立于其他資料集。

這些限制揭示了智慧型資料匯總和視覺效果工具的重要性,以伴隨 Contoso 的新烤箱:

  • 當您能夠將資料關聯併合並成方便的檢視時,資料視覺效果就很有用。 例如,顯示電壓感應器以及溫度感應器。
  • 管理數個實體的多維度資料以及比較、縮放和時間範圍功能可能難以完成。

時間序列模型提供方便的解決方案 ,適用于此虛構範例中遇到的許多案例:

Time Series Model smart oven charting example

  • 時間序列模型在查詢和導覽中扮演著重要的角色,因為它可藉由允許在時間範圍和感應器和裝置類型之間繪製比較,使資料內容化。 ( A
  • 資料會進一步內容化,因為時間序列模型中保存的資料會保留時間序列查詢計算作為變數,並在查詢時間重複使用。
  • 時間序列模型會組織及匯總資料,以改善視覺效果和管理功能。 ( B

主要功能

為了簡化且毫不費力地管理時間序列內容化,時間序列模型可在 Azure 時間序列深入解析 Gen2 中啟用下列功能。 它可協助您:

  • 利用純量函式、匯總作業等等撰寫和管理計算或公式。
  • 定義父子關聯性,以啟用導覽、搜尋和參考。
  • 定義與實例相關聯的屬性、定義為 實例欄位 ,並使用它們來建立階層。

元件

時間序列模型有三個核心元件:

這些元件會結合以指定時間序列模型並組織您的資料。

Time Series Model overview chart

時間序列模型可以透過 [Azure 時間序列深入解析總 管] 建立和管理。 時間序列模型設定可以透過 模型設定 API 來管理。

時間序列模型實例

時間序列模型 實例 是時間序列本身的虛擬標記法。

在大部分情況下,實例都是由 deviceId assetId 唯一識別的,這些識別碼會儲存為時間序列識別碼。

實例具有與其相關聯的 描述性資訊,稱為實例屬性 ,例如時間序列識別碼、類型、名稱、描述、階層和實例欄位。 實例屬性至少包含階層資訊。

實例欄位 是描述性資訊的集合,可包含階層層級的值,以及製造商、操作員等等。

為 Azure 時間序列深入解析 Gen2 環境設定事件來源之後,系統會自動探索並建立時間序列模型中的實例。 您可以使用時間序列模型查詢,透過Azure 時間序列深入解析總管來建立或更新實例。

Contoso Wind Farm 示範 提供數個即時實例範例。

Time Series Model instance example

實例屬性

實例是由 timeSeriesId、typeId name description hierarchyId instanceFields 所定義。 每個實例只會對應到一個 類型 ,以及一或多個 階層

屬性 說明
timeSeriesId 實例所關聯之時間序列的唯一識別碼。 在大部分情況下,實例是由 deviceId 或 assetId 等屬性唯一識別。 在某些情況下,可以使用結合最多 3 個屬性的更特定複合識別碼。
typeId 實例相關聯的時間序列模型類型,區分大小寫的唯一字串識別碼。 根據預設,所有探索到的新實例都會與預設類型相關聯。
NAME name 屬性是選擇性且區分大小寫。 如果 名稱 無法使用,則預設為 timeSeriesId 。 如果提供名稱, timeSeriesId 仍可在中 取得
description 實例的文字描述。
hierarchyIds 定義實例所屬的階層。
instanceFields 實例的屬性,以及定義實例的任何靜態資料。 它們會定義階層或非階層屬性的值,同時支援編制索引來執行搜尋作業。

注意

階層是使用實例欄位所建置。 您可以為進一步的 實例屬性定義新增其他 instanceFields。

實例具有下列 JSON 標記法:

{
  "timeSeriesId": ["PU2"],
  "typeId": "545314a5-7166-4b90-abb9-fd93966fa39b",
  "hierarchyIds": ["95f0a8d1-a3ef-4549-b4b3-f138856b3a12"],
  "description": "Pump #2",
  "instanceFields": {
    "Location": "Redmond",
    "Fleet": "Fleet 5",
    "Unit": "Pump Unit 3",
    "Manufacturer": "Contoso",
    "ScalePres": "0.54",
    "scaleTemp": "0.54"
  }
}

提示

針對實例 API 建立、讀取、更新和刪除 (CRUD) 支援,請閱讀 資料查詢 一文和 實例 API REST 檔

時間序列模型階層

時間序列模型 階層 會藉由指定屬性名稱及其關聯性來組織實例。

您可以在指定的 Azure 時間序列深入解析 Gen2 環境中設定多個階層。 時間序列模型實例可以對應至單一階層或多個階層(多對多關聯性)。

Contoso Wind Farm 示範 會顯示標準實例和類型階層。

Time Series Model hierarchy example

階層定義

階層是由階層 識別碼 名稱和 來源 所定義。

屬性 說明
id 階層的唯一識別碼,例如,當您定義 實例時,會使用這個識別碼。
NAME 用來提供階層名稱的字串。
來源 指定組織階層或路徑,這是使用者想要建立之階層的由上至下父子順序。 父子屬性會對應實例欄位。

階層以 JSON 表示為:

{
  "hierarchies": [
    {
      "id": "6e292e54-9a26-4be1-9034-607d71492707",
      "name": "Location",
      "source": {
        "instanceFieldNames": [
          "state",
          "city"
        ]
      }
    },
    {
      "id": "a28fd14c-6b98-4ab5-9301-3840f142d30e",
      "name": "ManufactureDate",
      "source": {
        "instanceFieldNames": [
          "year",
          "month"
        ]
      }
    }
  ]
}

在先前的 JSON 範例中:

  • Location 定義具有父 states 代和子 cities 系的階層。 每個 location 都可以有多個 states ,而後者又可以有多個 cities
  • ManufactureDate 定義具有父 year 代和子 month 系的階層。 每個 ManufactureDate 都可以有多個 years ,而後者又可以有多個 months

提示

如需階層 API 建立、讀取、更新和刪除 (CRUD) 支援,請閱讀 資料查詢 一文和 階層 API REST 檔

階層範例

請考慮階層 H1 在其 instanceFieldNames 定義中具有 buildingfloorroom 範例:

{
  "id": "aaaaaa-bbbbb-ccccc-ddddd-111111",
  "name": "H1",
  "source": {
    "instanceFieldNames": [
      "building",
      "floor",
      "room"
    ]
  }
}

假設上一個定義中使用的實例欄位和數個時間序列,階層屬性和值會顯示如下表所示:

時間序列識別碼 執行個體欄位
ID1 「building」 = 「1000」, 「floor」 = 「10」, 「room」 = 「55」
ID2 「building」 = 「1000」, 「room」 = 「55」
ID3 「floor」 = 「10」
ID4 「building」 = 「1000」, 「floor」 = 「10」
ID5 未設定任何「建築物」、「樓層」或「房間」。

時間序列 ID1 ID4 會顯示為 Azure 時間序列深入解析 Explorer 階層 H1 的一部分,因為它們已完整定義並正確排序 建築物 樓層 房間 參數。

其他類別會分類為 未父系實例 ,因為它們不符合指定的資料階層。

時間序列模型類型

時間序列模型 類型 可協助您定義執行計算的變數或公式。 類型與特定實例相關聯。

類型可以有一或多個變數。 例如,時間序列模型實例可能是溫度感應器類型 ,其包含變數 平均溫度 最小值溫度 最高溫度

Contoso Wind Farm 示範 會將與其個別實例相關聯的數個時間序列模型類型視覺化。

Time Series Model type example

提示

如需類型 API 建立、讀取、更新和刪除 (CRUD) 支援,請閱讀 資料查詢 一文和 類型 API REST 檔

類型屬性

時間序列模型類型是由 識別碼 名稱 描述 變數 所定義。

屬性 說明
id 類型區分大小寫的唯一字串識別碼。
NAME 用來提供型別名稱的字串。
description 型別的字串描述。
變數 指定與型別相關聯的變數。

類型符合下列 JSON 範例:

{
  "types": [
    {
      "id": "1be09af9-f089-4d6b-9f0b-48018b5f7393",
      "name": "DefaultType",
      "description": "Default type",
      "variables": {
        "EventCount": {
          "kind": "aggregate",
          "value": null,
          "filter": null,
          "aggregation": {
            "tsx": "count()"
          }
        },
        "Interpolated Speed": {
          "kind": "numeric",
          "value": {
              "tsx": "$event['Speed-Sensor'].Double"
          },
          "filter": null,
          "interpolation": {
              "kind": "step",
              "boundary": {
                  "span": "P1D"
              }
          },
          "aggregation": {
              "tsx": "right($value)"
          }
        }
      }
    }
  ]
}

時間序列模型類型可以有許多變數,可指定事件的公式和計算規則。 深入瞭解 如何定義時間序列模型變數

下一步