選擇時間序列識別碼的最佳做法

注意

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

本文摘要說明 Azure 時間序列深入解析 Gen2 環境時間序列識別碼的重要性,以及選擇時間序列識別碼的最佳做法。

選擇時間序列識別碼

選取適當的時間序列識別碼非常重要。 選擇時間序列識別碼就像選擇資料庫的分割區索引鍵一樣。 此為建立 Azure 時間序列深入解析 Gen2 環境時所需。

請觀看環境佈建教學課程,獲得時間序列識別碼的詳細說明。 您會檢視兩個不同的 JSON 遙測承載範例,以及每個範例的正確時間序列識別碼選取項目。

重要

時間序列識別碼為:

  • 「區分大小寫的字串」屬性:字母和字元大小寫用於搜尋、比較、更新及分割時。
  • 「固定」屬性:建立後就無法變更。

提示

如果您的事件來源是 IoT 中樞,您的時間序列識別碼可能會是 iothub-connection-device-id。如果您打算使用 IoT 隨插即用裝置型號,或在沒有元件的情況下使用,您應該在複合索引鍵中加入 dt-subject,以免未來需要。

要遵循的索引鍵最佳做法包括:

  • 挑選具有許多相異值 (例如數百個或數千個) 的分割區索引鍵。 在許多情況下,這可能是 JSON 中的裝置識別碼、感應器識別碼或標記識別項。
  • 在您時間序列模型.的分葉節點層級,時間序列識別碼應該是唯一的。
  • 時間序列識別碼的屬性名稱字串字元上限為 128 個。 時間序列識別碼的屬性值字元上限為 1,024 個。
  • 如果遺漏時間序列識別碼的唯一屬性值,會將其視為 null 值,並遵循唯一性限制式的相同規則。
  • 如果您的時間序列識別碼巢狀於複雜的 JSON 物件內,請務必在提供屬性名稱時,遵循輸入壓平合併規則。 請查看範例 B
  • 您也可以選取最多「三個」索引鍵屬性當作時間序列識別碼。 其組合將會是代表時間序列識別碼的複合索引鍵。

    注意

    這三個索引鍵屬性必須是字串。 您必須查詢此複合索引鍵,而不是一次查詢一個屬性。

選取多個索引鍵屬性

下列情節說明選取多個索引鍵屬性當作時間序列識別碼。

範例 1:具有唯一索引鍵的時間序列識別碼

  • 您有舊版資產群。 每個都有唯一索引鍵。
  • 一個資產群會以屬性 deviceId 專門識別。 針對另一個資產群,唯一屬性為 objectId。 兩個資產群都沒有包含對方的唯一屬性。 在此範例中,您會選取兩個索引鍵作為唯一索引鍵,分別是 deviceIdobjectId
  • 我們接受 null 值,事件裝載中沒有屬性會計為 null 值。 這也是將資料傳送到兩個事件來源時適當的處理方式,其中每個事件來源中的資料都會有唯一的時間序列識別碼。

範例 2:具有複合索引鍵的時間序列識別碼

  • 您需要讓同一資產群內的多個特性都必須是唯一的。
  • 您是智慧建築製造商,在每個房間中部署感應器。 在每個房間內,sensorId 的值通常都相同。 例如 sensor1sensor2sensor3
  • 您的建築在屬性 flrRm 的站台間有重疊的樓層和房間號碼。 這些號碼有 1a2b3a 等值。
  • 您有屬性 location,內含 RedmondBarcelonaTokyo 等值。 為了建立唯一性,您指定下列三個屬性當作時間序列識別碼索引鍵:sensorIdflrRmlocation

範例原始事件:

{
  "sensorId": "sensor1",
  "flrRm": "1a",
  "location": "Redmond",
  "temperature": 78
}

在 Azure 入口網站中,您可以輸入複合索引鍵,如下所示:

設定環境的時間序列識別碼。

注意

在 Azure 入口網站中,請勿在一個文字方塊中輸入以逗點分隔的屬性名稱,否則會視為是包含逗點的單一屬性名稱。 在各自的文字方塊中輸入每個屬性名稱。

下一步