共用方式為


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

注意

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

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

提示

摘要

傳統上,從 IoT 裝置收集的資料缺發關聯的資訊,因此很難快速地尋找及分析感應器。 時間序列模型的主要動機是簡化尋找及分析 IoT 或時間序列資料的作業。 為了達到此目標,它藉由提供策劃、維護和擴充時間序列資料的功能,協助準備取用者可用的資料集以進行分析。

案例:Contoso 的新智慧型烤箱

請考慮 Contoso 智慧型烤箱的虛構案例。 在此案例中,假設每個 Contoso 智慧型烤箱都有五個溫度感應器,四個頂端加熱器各使用一個,一個用於烤箱本身。 每個 Contoso 溫度感應器最近才分別傳送、儲存其資料及以視覺效果包含。 為了監視其廚房設備,Contoso 使用每個感應器各自專屬的基本資訊圖表。

雖然 Contoso 對其初始資料和視覺效果解決方案相當滿意,但有幾項限制逐漸變得明顯:

  • 客戶想知道當大部分的頂端加熱器都開啟時,整個烤箱會變得多熱。 Contoso 在分析整個烤箱情況和提出統一答案方面遇到更多困難。
  • Contoso 工程師想確認頂端加熱器同時執行不會造成電力不足。 他們很難交叉參考哪些溫度和電壓感應器相互關聯,以及如何在商店中找到。
  • Contoso 品質保證小組想要稽核並比較兩個感應器版本之間的歷程記錄。 他們很難判斷哪些資料屬於哪個感應器版本。

若無法建構、組織及定義主要智慧型烤箱時間序列模型,每個溫度感應器的資料點都會維持錯位、孤立且資訊量少的狀態。 將這些資料點轉換成可操作的深入解析較為困難,因為每個資料集彼此互相獨立。

這些限制突顯出智慧型資料彙總和視覺效果工具對 Contoso 新型烤箱的重要性:

  • 當您能為資料建立關聯並整合到一個方便查看的檢視畫面中,就證實了資料視覺效果很實用。 以顯示電壓感應器及溫度感應器為例。
  • 要管理數個實體的多維度資料還有比較、縮放和時間範圍功能,可能很難完成。

時間序列模型提供一套方便的解決方案,能解決此虛構範例中遇到的許多情況:

時間序列模型智慧型烤箱圖表範例

  • 時間序列模型在查詢和瀏覽作業中扮演重要角色,因為它允許跨時間範圍,以及在不同感應器和裝置種類之間繪製比較圖表,藉此將資料關聯化。 (A)
  • 資料會進一步關聯化,因為時間序列模型中保存的資料會將時間序列查詢計算保留為變數,並在查詢時重複使用。
  • 時間序列模型會組織及彙總資料,以改善視覺效果和管理功能。 (B)

主要功能

以簡化管理時間序列關聯化的作業為目的,時間序列模型在 Azure 時間序列深入解析 Gen2 中提供下列功能。 它可協助您:

  • 運用純量函數、彙總作業等撰寫及管理計算或公式。
  • 定義上下層式關聯性,以啟用瀏覽、搜尋和參考。
  • 將與執行個體相關聯的屬性定義為執行個體欄位的一部分,並用來建立階層。

元件

時間序列模型有三個主要元件:

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

時間序列模型概觀圖表

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

時間序列模型執行個體

時間序列模型執行個體是時間序列本身的虛擬標記法。

在大部分情況下,系統會根據儲存為時間序列識別碼的 deviceIdassetId 來唯一識別執行個體。

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

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

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

時間序列模型執行個體範例

執行個體屬性

執行個體是由 timeSeriesIdtypeIdnamedescriptionhierarchyIdsinstanceFields 定義。 每個執行個體會對應至一個類型和一或多個階層

屬性 說明
timeSeriesId 與執行個體相關聯之時間序列的唯一識別碼。 在大部分情況下,系統會以 deviceId 或 assetId 等屬性唯一識別執行個體。 在某些情況下,可以使用更具體的複合識別碼,結合最多 3 個屬性。
typeId 與執行個體相關聯的時間序列模型類型之唯一字串識別碼 (區分大小寫)。 根據預設,所有探索到的新執行個體都會與預設類型相關聯。
NAME name 為選用屬性,且區分大小寫。 如果 name 無法使用,會預設為 timeSeriesId。 如果有提供名稱,仍可在 well 中取得 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 環境中設定多個階層。 時間序列模型執行個體可以對應到單一或多個階層 (一對多關係)。

時間序列模型階層範例

階層定義

階層由 idnamesource 定義。

屬性 說明
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 文件

階層範例

思考以下範例:階層 H1instanceFieldNames 定義中包含 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 "building"、"floor" 和 "room" 均未設定。

時間序列 ID1ID4 會在 Azure 時間序列深入解析總管中顯示為階層 H1 的一部分,因為它們已完整定義並正確排序 buildingfloorroom 參數。

其他執行個體會分類在 [無父系執行個體] 下,因為它們不符合指定的資料階層。

時間序列模型類型

時間序列模型「類型」協助您定義執行計算的變數或公式。 所有類型都會與特定集區相關聯。

一個類型可以有一或多個變數。 例如,某個時間序列模型深入解析執行個體類型可能是「溫度感應器」,其中包含的變數有 avg temperaturemin temperaturemax temperature

時間序列模型類型範例

提示

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

類型屬性

時間序列模型類型是由 idnamedescriptionvariables 定義。

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

符合下列 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)"
          }
        }
      }
    }
  ]
}

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

下一步