支持的数据类型

注意

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

下表列出了 Azure 时序见解第 2 代支持的数据类型

数据类型 描述 时序表达式语法 Parquet 中的属性列名称
布尔 数据类型有两种状态之一:truefalse "isQuestionable" : true $event.isQuestionable.Bool$event['isQuestionable'].Bool isQuestionable_bool
日期/时间 表示一个即时时间,通常表示为日期和时间。 以 ISO 8601 格式 表示。 日期/时间属性始终以 UTC 格式存储。 时区偏移量(如果格式正确)将应用,然后应用以 UTC 格式存储的值。 有关环境时间戳属性和日期时间偏移的详细信息,请参阅第 部分中的第 节。 "eventProcessedLocalTime": "2020-03-20T09:03:32.8301668Z" 如果“eventProcessedLocalTime”是事件源时间戳:$event.$ts。 如果是另一个 JSON 属性:$event.eventProcessedLocalTime.DateTime$event['eventProcessedLocalTime'].DateTime eventProcessedLocalTime_datetime
双精度 64 位数字 "value": 31.0482941 $event.value.Double$event['value'].Double value_double
带符号 64 位整数 "value" : 31 $event.value.Long$event['value'].Long value_long
字符串 文本值必须包含有效的 UTF-8。 Null 和空字符串的处理方法相同。 "site": "DIM_MLGGG" $event.site.String$event['site'].String site_string
动态 由数组或属性包(字典)组成的复杂类型(非基元类型)。 目前,仅字符串化的基元 JSON 数组或不包含 TS ID 或时间戳属性的对象数组会被存储为动态。 请阅读此 文章,了解如何平展对象并取消滚动数组。 只能通过在时序见解资源管理器中选择 Explore Events 来查看原始事件或通过用于客户端分析的 GetEvents 查询 API 来访问存储为此类型存储的有效负载属性。 "values": "[197, 194, 189, 188]" 尚不支持引用时序表达式中的动态类型 values_dynamic

注意

支持 64 位整数值,但由于 JavaScript 限制,Azure 时序见解资源管理器可以安全表达的最大数字为 9,007,199,254,740,991(2^53-1)。 如果处理上述数据模型中的数字,可以通过创建 时序模型变量来减小大小,转换 值。

注意

字符串 类型不可为空:

  • 时序表达式(TSX)时序查询中表示, 将空字符串(“')的值与 NULL 的行为方式相同:$event.siteid.String = NULL 等效于 $event.siteid.String = ''
  • 即使原始事件包含空字符串,API 也可以返回 NULL 值。
  • 不要依赖 String 列中的 NULL 值来执行比较或计算,将它们视为空字符串。

发送混合数据类型

Azure 时序见解 Gen2 环境已强类型化。 如果设备或标记为设备属性发送不同类型的数据,则值将存储在两个单独的列中,在 API 调用中定义时序模型变量表达式时,应使用 coalesce() 函数

Azure Time Series Insights Explorer 提供了一种自动合并同一设备属性的各个列的方法。 在下面的示例中,传感器发送一个 PresentValue 属性,该属性可以是 Long 或 Double。 若要查询 PresentValue 属性的所有存储值(无论数据类型如何),请选择 PresentValue (Double | Long),然后系统将为你自动合并列。

资源管理器自动合并

对象和数组

可以将复杂类型(如对象和数组)作为事件有效负载的一部分发送。 嵌套对象将被平展,数组将根据您的环境配置和 JSON 形状存储为 dynamic 或被平展以生成多个事件。 如需了解更多信息,请阅读 JSON 平展和转义规则

后续步骤