共用方式為


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

注意

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

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

選擇時間序列識別碼

選取適當的時間序列標識元非常重要。 選擇時間序列識別碼就像選擇資料庫的分割區索引鍵一樣。 當您建立 Azure 時間序列深入解析 Gen2 環境時,這是必要專案。

如需時間序列標識碼的詳細說明,請觀看環境布建教學課程。 您將檢視兩個不同的 JSON 遙測承載範例,以及每個範例的正確時間序列標識碼選取專案。

重要

時間序列識別碼如下:

  • 區分大小寫的字串屬性:字母和字元大小寫用於搜尋、比較、更新,以及在分割時使用。
  • 不可變的屬性:一旦建立就無法變更。

提示

如果您的事件來源是 IoT 中樞,您的時間序列標識符可能是 iothub-connection-device-id如果您打算使用 IoT 隨插即用 裝置型號或不使用元件,您應該在未來需要 dt-subject 作為複合索引鍵的一部分。

要遵循的主要最佳做法包括:

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

    注意

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

選取多個索引鍵屬性

下列案例描述選取多個索引鍵屬性作為時間序列標識碼。

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

  • 您有舊版資產車隊。 每個都有唯一索引鍵。
  • 一個機隊是由 property deviceId 唯一識別的。 對於另一個機隊而言,唯一屬性是 objectId。 兩個車隊都沒有包含另一個車隊的唯一屬性。 在此範例中,您會選取兩個索引鍵:deviceId 和 objectId 作為唯一索引鍵。
  • 我們接受 Null 值,而且事件承載中缺少屬性的存在會算作 Null 值。 這也是將數據傳送至兩個事件來源的適當方式,其中每個事件來源中的數據都有唯一的時間序列標識符。

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

  • 您必須在同一組資產內有多個屬性是唯一的。
  • 您是智慧建築製造商,並在每個房間部署感測器。 在每個會議室中,您通常會有與 sensorId 相同的值。 範例包括 sensor1sensor2sensor3
  • 您的建築在屬性 flrRm 的場地之間有重疊的地板和房間號碼。 這些數位具有 1a2b3a值。
  • 您有屬性、位置,其中包含雷德蒙德巴塞羅那東京值。 若要建立唯一性,您可以將下列三個屬性指定為時間序列標識元索引鍵:sensorIdflrRmlocation

範例原始事件:

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

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

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

注意

在 Azure 入口網站 中,請勿在一個 texbox 中輸入以逗號分隔的屬性名稱,否則會被視為包含逗號的單一屬性名稱。 在自己的 texbox 中輸入每個屬性名稱。

下一步