Azure 時間序列深入解析 Gen2 中的時間序列模型
注意
時間序列深入解析 (TSI) 服務在 2025 年 3 月之後將不再受到支援。 請考慮儘快將現有的 TSI 環境移轉至替代解決方案。 如需淘汰和移轉的詳細資訊,請流覽我們的 檔 。
本文說明時間序列模型、功能,以及如何開始在 Azure 時間序列深入解析 Gen2 環境中建置和更新您自己的模型。
提示
- 移至 Contoso Wind Farm 示範 環境,以取得即時時間序列模型範例。
- 瞭解如何 使用 Azure 時間序列深入解析 Explorer 來處理時間序列模型 。
摘要
傳統上,從 IoT 裝置收集的資料缺少內容資訊,因此難以快速尋找和分析感應器。 時間序列模型的主要動機是簡化尋找和分析 IoT 或時間序列資料。 它可藉由啟用時間序列資料的策展、維護和擴充來達成此目標,以協助準備取用者就緒的資料集以進行分析。
案例:Contoso 的新智慧烤箱
請考慮 Contoso 智慧烤箱的虛構案例。 在此案例中,假設每個 Contoso 智慧烤箱都有五個溫度感應器,其中一個用於四個頂級燃燒器,一個用於烤箱本身。 直到最近,每個 Contoso 溫度感應器都會個別傳送、儲存及視覺化其資料。 針對其廚房設備監視,Contoso 依賴基本圖表,每個個別感應器各有一個。
雖然 Contoso 對其初始資料和視覺效果解決方案感到滿意,但有數個限制變得很明顯:
- 客戶想知道當大多數頂級燃燒器開始時,整體烤箱會有多熱。 Contoso 比較難以分析和呈現整體烤箱條件的統一答案。
- Contoso 工程師想要確認同時執行的頂級燃燒器不會產生效率不佳的耗電量。 很難交叉參考哪些溫度和電壓感應器彼此相關聯,以及如何在商店中找出它們。
- Contoso 品質保證小組想要稽核並比較兩個感應器版本之間的歷程記錄。 很難判斷哪些資料屬於哪個感應器版本。
由於無法建構、組織及定義整體智慧烤箱時間序列模型,每個溫度感應器都會維持脫位、隔離且資訊較少的資料點。 將這些資料點轉換成可採取動作的深入解析更為困難,因為每個資料集都獨立于其他資料集。
這些限制揭示了智慧型資料匯總和視覺效果工具的重要性,以伴隨 Contoso 的新烤箱:
- 當您能夠將資料關聯併合並成方便的檢視時,資料視覺效果就很有用。 例如,顯示電壓感應器以及溫度感應器。
- 管理數個實體的多維度資料以及比較、縮放和時間範圍功能可能難以完成。
時間序列模型提供方便的解決方案 ,適用于此虛構範例中遇到的許多案例:
- 時間序列模型在查詢和導覽中扮演著重要的角色,因為它可藉由允許在時間範圍和感應器和裝置類型之間繪製比較,使資料內容化。 ( A )
- 資料會進一步內容化,因為時間序列模型中保存的資料會保留時間序列查詢計算作為變數,並在查詢時間重複使用。
- 時間序列模型會組織及匯總資料,以改善視覺效果和管理功能。 ( B )
主要功能
為了簡化且毫不費力地管理時間序列內容化,時間序列模型可在 Azure 時間序列深入解析 Gen2 中啟用下列功能。 它可協助您:
- 利用純量函式、匯總作業等等撰寫和管理計算或公式。
- 定義父子關聯性,以啟用導覽、搜尋和參考。
- 定義與實例相關聯的屬性、定義為 實例欄位 ,並使用它們來建立階層。
元件
時間序列模型有三個核心元件:
這些元件會結合以指定時間序列模型並組織您的資料。
時間序列模型可以透過 [Azure 時間序列深入解析總 管] 建立和管理。 時間序列模型設定可以透過 模型設定 API 來管理。
時間序列模型實例
時間序列模型 實例 是時間序列本身的虛擬標記法。
在大部分情況下,實例都是由 deviceId 或 assetId 唯一識別的,這些識別碼會儲存為時間序列識別碼。
實例具有與其相關聯的 描述性資訊,稱為實例屬性 ,例如時間序列識別碼、類型、名稱、描述、階層和實例欄位。 實例屬性至少包含階層資訊。
實例欄位 是描述性資訊的集合,可包含階層層級的值,以及製造商、操作員等等。
為 Azure 時間序列深入解析 Gen2 環境設定事件來源之後,系統會自動探索並建立時間序列模型中的實例。 您可以使用時間序列模型查詢,透過Azure 時間序列深入解析總管來建立或更新實例。
Contoso Wind Farm 示範 提供數個即時實例範例。
實例屬性
實例是由 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 示範 會顯示標準實例和類型階層。
階層定義
階層是由階層 識別碼 、 名稱和 來源 所定義。
屬性 | 說明 |
---|---|
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 定義中具有 building
、 floor
和 room
的 範例:
{
"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 示範 會將與其個別實例相關聯的數個時間序列模型類型視覺化。
提示
如需類型 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)"
}
}
}
}
]
}
時間序列模型類型可以有許多變數,可指定事件的公式和計算規則。 深入瞭解 如何定義時間序列模型變數
下一步
探索您可以使用時間序列模型變數建立 的公式和計算