实体名称
Kusto 实体(数据库、表、列和存储函数;群集是例外)具有名称。 实体的名称标识实体,并且(在给定其类型的情况下)在其容器作用域内必定是唯一的。 (例如,同一数据库中的两个表不能同名,但表和数据库可以同名,因为它们不在同一作用域内;表和存储函数的名称也可以相同,因为它们不是同一实体类型。)
出于解析目的,实体名称区分大小写(因此不能将名为 的表称为 thisTABLE
)。
实体名称是标识符的一个示例。 其他标识符包括函数参数的名称,以及通过 let 语句绑定名称。
实体友好名称
除实体名称外,某些实体(如数据库)还可能具有友好名称。 可以在查询中使用友好名称来指代实体(类似实体名称),但与实体名称不同的是,在其容器的上下文中,友好名称不一定是唯一的。 如果容器包含多个具有相同友好名称的实体,则不能使用该友好名称来指代实体。
友好名称允许中间层应用程序将自动创建的实体名称(如 UUID)映射到易于理解的名称,以便显示和引用。
标识符命名规则
标识符用于命名各种实体(实体或其他项)。 有效的标识符名称遵循以下规则:
- 长度必须介于 1 到 1024 个字符之间。
- 可以包含字母、数字、下划线 (
_
)、空格、点 (.
) 和短划线 (-
)。- 引用标识符时,仅由字母、数字和下划线组成的标识符不需要加引号。
- 包含空格、点或短划线中至少一种符号的标识符需要加引号(见下文)。
- 它们区分大小写。
标识符引用
如果标识符与某些查询语言关键字相同,或者包含上述某个特殊字符,则由查询直接引用这些标识符时需要加引号:
查询文本 | 注释 |
---|---|
entity |
不包含特殊字符或映射到某些语言关键字的实体名称 (entity ) 不需要加引号 |
['entity-name'] |
包含特殊字符(此处为:- )的实体名称必须使用 [' 和 '] 或者 [" 和 "] 括起来 |
["where"] |
作为语言关键字的实体名称必须用 [' 和 '] 或者 [" 和 "] 括起来 |
命名实体以避免与 Kusto 语言关键字冲突
由于 Kusto 查询语言包含多个关键字,而这些关键字具有与标识符相同的命名规则,因此,可能出现与关键字重合的实体名称,但引用这些名称会很困难(必须加引号)。
或者,最好选择绝对不会与 Kusto 关键字“冲突”的实体名称。 该语言有以下保证:
- Kusto 查询语言不会定义以大写字母(
A
到Z
)开头的关键字。 - Kusto 查询语言不会定义以单下划线 (
_
) 开头的关键字。 - Kusto 查询语言不会定义以单下划线 (
_
) 结尾的关键字。
Kusto 查询语言保留以双下划线字符序列 (__
) 开头或结尾的所有标识符;用户不能定义这样的名称供自己使用。