选择时序 ID 的最佳做法

注意

时序见解服务将于 2024 年 7 月 7 日停用。 请考虑尽快将现有环境迁移到备用解决方案。 有关弃用和迁移的详细信息,请访问我们的 文档

本文总结了 Azure 时序见解第 2 代环境时序 ID 的重要性,以及选择时序 ID 的最佳做法。

选择时序标识符

选择适当的时序 ID 至关重要。 选择时序 ID 类似于为数据库选择分区键。 创建 Azure 时序见解 Gen2 环境时需要用到它。

请观看环境配置教程,以便对时间序列 ID 有详细了解。 你将查看两个不同的 JSON 遥测有效负载示例和每个示例的正确时序 ID 选择。

重要

时序 ID 为:

  • 区分大小写的字符串 属性:字母和字符大小写用于搜索、比较、更新以及分区时。
  • 不可变 属性:创建后无法更改它。

提示

如果事件源是 IoT 中心,则时序 ID 可能会 iothub-connection-device-id。如果计划使用 IoT 即插即用设备模型或不使用组件,则应将 dt-subject 作为组合键的一部分,以防将来需要它。

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

  • 选取具有许多非重复值的分区键(例如,数百或数千个)。 在许多情况下,这可能是 JSON 中的设备 ID、传感器 ID 或标记 ID。
  • 在您的 时序模型中,时序 ID 应在叶节点级别保持唯一。
  • 时序 ID 的属性名称字符串的字符限制为 128。 对于时序 ID 的属性值,字符限制为 1,024。
  • 如果缺少时序 ID 的唯一属性值,则会将其视为 null 值,并遵循唯一性约束的相同规则。
  • 如果您的时序 ID 嵌套在复杂的 JSON 对象中,请确保在提供属性名称时遵循入口 平展规则。 查看示例 B
  • 还可以选择最多 三个 关键属性作为时序 ID。 它们的组合将是表示时序 ID 的复合键。

    注意

    三个关键属性必须是字符串。 必须针对此组合键进行查询,而不是一次查询一个属性。

选择多个关键属性

以下情境描述选择多于一个关键属性作为时序 ID。

示例 1:具有唯一键的时序 ID

  • 你拥有旧有资产群。 每个密钥都有一个唯一键。
  • 一个机群通过属性deviceId唯一标识。 对于其他船队,其独特属性为objectId。 两个舰队都不包含其他舰队的唯一属性。 在此示例中,将选择两个键,deviceIdobjectId,作为唯一键。
  • 我们接受空值,并且在事件负载中缺少属性会被视为空值。 这也是处理将数据发送到两个事件源的适当方法,其中每个事件源中的数据具有唯一的时序 ID。

示例 2:具有复合键的时序标识符

  • 您需要在同一资产群中使多个属性是唯一的。
  • 你是智能建筑制造商,并在每个房间部署传感器。 在每个房间中,对于 sensorId,通常具有相同的值。 例如 sensor1sensor2sensor3
  • 您的建筑在物业 flrRm的不同位置之间,楼层和房间编号出现了重复。 这些数字具有 1a2b3a等值。
  • 你有一个属性,位置,其中包含例如 雷德蒙德巴塞罗那东京等值。 若要创建唯一性,请将以下三个属性指定为时序 ID 键:sensorIdflrRm位置

示例原始事件:

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

在 Azure 门户中,可以输入组合键,如下所示:

为环境配置时序 ID。

注意

在 Azure 门户中,不要在一个 texbox 中输入属性的逗号分隔名称,否则,它将被视为包含逗号的单个属性名称。 在各自的文本框中输入每个属性名称。

后续步骤