你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

实体名称

Kusto 实体在查询中按名称引用。 可按名称引用的实体包括 数据库存储函数,但不包括 群集。 为实体分配的名称称为标识符。 除了实体,还可以为 查询参数或通过 let 语句设置的变量分配标识符。

实体的名称对于其容器上下文中的实体类型是唯一的。 例如,同一数据库中的两个表不能具有相同的名称,但数据库和表可以具有相同的名称,因为它们是不同的实体类型。 同样,表和存储函数可能具有相同的名称。

注意

实体名称(也反映为 Azure 资源)遵循 ARM 保留字规则

漂亮的名称

除了实体的名称之外,某些实体可能具有 漂亮的名称。 与使用实体名称类似,漂亮的名称可用于在查询中引用实体。 但与实体名称不同,漂亮的名称在其容器的上下文中不一定是唯一的。 如果容器包含多个具有相同友好名称的实体,则不能使用该友好名称来指代实体。

友好名称允许中间层应用程序将自动创建的实体名称(如 UUID)映射到易于理解的名称,以便显示和引用。

有关如何分配漂亮名称的示例,请参阅 .alter database prettyname 命令

标识符命名规则

标识符是通过 let 语句分配给实体查询参数或变量的名称。 有效标识符必须遵循以下规则:

  • 标识符区分大小写。 数据库名称不区分大小写,因此此规则例外。
  • 标识符长度必须介于 1 到 1024 个字符之间。
  • 标识符可能包含字母、数字和下划线 (_) 。
  • 标识符可能包含某些特殊字符:空格、点 () . 和短划线 (-) 。 有关如何使用特殊字符引用标识符的信息,请参阅 查询中的引用标识符

注意

  • 仅支持指定的 UTF-8 字符(字母、数字、下划线、点和短划线)。 例如,不支持分号和冒号。
  • $当 KQL 运算符生成时,允许在实体名称中使用 字符。

避免将标识符命名为语言关键字或文本

在 KQL 中,有一些关键字和文本具有与 标识符类似的命名规则。 可以具有与关键字或文本同名的标识符。 但是,建议避免这样做,因为在查询中引用它们需要 特殊引用

若要避免使用可能也是语言关键字 (keyword) 或文本的标识符,例如 wheresummarize1day,可以根据以下约定选择实体名称,这些约定不适用于语言关键字:

  • 使用以大写字母开头的名称 (A) Z

  • 使用以单个下划线开头或结尾的名称 (_) 。

    注意

    KQL 保留以两个下划线字符序列开头或结尾的所有标识符 (__) ;用户无法定义此类名称供自己使用。

有关如何引用这些标识符的信息,请参阅 查询中的引用标识符

查询中的引用标识符

下表提供了有关如何在查询中引用标识符的说明。

标识符类型 标识符 参考 说明
普通 entity entity 不包含特殊字符或映射到某些语言关键字 (keyword) 的标识符 (entity) 不需要用引号引起来。
特殊字符 entity-name ['entity-name'] 包含特殊字符 ((如 -) )的标识符名称必须使用 和 '] 或使用 [""]括起来['
语言关键字 (keyword) where ["where"] 必须用 [' 和 或 ["']"]括起属于语言关键字的标识符名称。
文本 1day ["1day"] 必须用 [' 和 或 ["']"]括起来属于文本的标识符名称。

注意

标识符区分大小写。 例如,不能引用名为 的ThisTablethisTABLE表。