每个数据值(如表达式或函数参数的值)都有一个 数据类型,即 标量数据类型 或 用户定义的记录。 标量数据类型 是 支持的数据类型中的内置预定义类型之一。 用户定义的记录 是名称和标量数据类型对的有序序列,如表中行的数据类型。
与在大多数语言中一样,数据类型决定了可以针对值运行的计算和操作。 例如,如果值的类型为 string,则将无法对其进行算术计算。
备注
虽然 Kusto 支持用户定义的记录,但用户定义数据类型不受支持。
在 Kusto 查询语言中,大多数数据类型都遵循标准约定,并具有你之前可能见过的名称。 下表显示了完整列表:
类型 | 描述 |
---|---|
布尔 (boolean ) |
true (1 ) 或 false (0 )。 |
日期/时间 (date ) |
某个时刻,通常以日期和当天的时间表示。 |
十进制 | 128 位的十进制数字。 |
动态 | 数组、属性包或任何其他标量数据类型的值。 |
guid(uuid 、uniqueid ) |
128 位的全局唯一值。 |
int | 带符号的 32 位整数。 |
长 | 带符号的 64 位整数。 |
真实(double ) |
64 位双精度浮点数。 |
字符串 | 由零个或多个 Unicode 字符构成的序列。 |
时间跨度(time ) |
时间间隔。 |
提示
若要检查值的数据类型,请使用 gettype() 函数。
虽然大多数数据类型都是标准的,但对 动态 或 时间跨度和 guid 等类型可能不太熟悉。
动态类型的结构与 JSON 非常相似,但两者存在一项重要差别:动态类型可以存储特定于 Kusto 查询语言的数据类型,例如嵌套的动态值或时间范围,而传统的 JSON 则不可以。
时间范围是引用时间度量(例如小时、天或秒)的一种数据类型。 请不要将时间范围与日期/时间相混淆,后者计算为实际日期和时间,而不是时间度量。 下表显示了时间范围后缀的列表。
GUID 是表示 128 位全局唯一标识符的数据类型,它遵循标准格式 [8]-[4]-[4]-[4]-[4]-[12],其中每个 [数字] 表示字符数,每个字符可以介于 0-9 或 a-f 之间。
所有非字符串数据类型都可以为 null。 如果值为 null,则表示数据缺失或不匹配。 例如,如果尝试将字符串 abc
输入到整数列中,则会导致 null 值。 若要检查表达式是否为 null,请使用 isnull() 函数。
有关详细信息,请参阅 Null 值。