支持的数据类型
注意
时序见解服务将于 2024 年 7 月 7 日停用。 请考虑尽快将现有环境迁移到备用解决方案。 有关弃用和迁移的详细信息,请访问我们的 文档。
下表列出了 Azure 时序见解第 2 代支持的数据类型
数据类型 | 描述 | 例 | 时序表达式语法 | Parquet 中的属性列名称 |
---|---|---|---|---|
布尔 | 数据类型有两种状态之一:true 或 false 。 |
"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 平展和转义规则
后续步骤
阅读 JSON 扁平化和转义规则 以便理解事件的存储方式。
了解环境的 吞吐量限制
了解 事件源 引入流数据。