Lakehouse对象命名规则

在Lakehouse中,为了确保元数据(如数据库、表、视图、用户等)的命名一致性和可读性,避免潜在的问题,我们制定了一套命名规则。本文档将详细介绍这些规则,帮助您更好地理解和使用Lakehouse。

标识符类型

Lakehouse支持以下类型的标识符命名:

  • 常规标识符:不需要引号,但必须符合特定的命名规则。
  • 双引号标识符:需要使用双引号(")包围起来,可以对关键字进行转译。
  • 反引号标识符:需要使用反引号(`)包围起来,可以包含任何字符,但不能包含反引号本身。默认是反引号,可以通过设置切换为双引号(set cz.sql.double.quoted.identifiers=true)。

命名规则

常规标识符的命名规范

  1. 开头字符:标识符必须以字母(包括大写A-Z、小写a-z)或下划线("_")作为起始字符。不允许以数字或其他特殊字符开始。
  2. 字符组成:标识符中只能包含字母、下划线和十进制数字(0-9)。不允许使用其他特殊字符和关键字,如连字符(-)、空格或其他非字母数字字符。
  3. 大小写敏感性:虽然在创建时可以指定大小写,但元数据在存储时会被解析为小写字符。在Lakehouse中,所有对象的名称都是不区分大小写的。这意味着,"MyTable"和"mytable"会被视为相同的标识符。
  4. 语言限制:不支持中文字符
  5. 长度限制: 长度为1~256个字符,WORKSPACE NAME长度限制3~28个字符

以下是几个合法的标识符示例:

my_table
table1
table_2

反引号标识符

如果在对象命名时加上反引号,则遵循以下规则:

  • 允许用户使用关键字。
  • 列名允许特殊字符中文等。 对于需要使用关键字命名的标识符名称,可以使用双引号或反引号将其包围,例如:
-- 允许数字
create schema `123`;
-- 使用关键字作为对象的命名
create schema `select`;
-- 列名使用关键字作为对象的命名
create table my_table(`中文` string)

请注意,反引号都可以用来包围标识符,但在某些情况下,它们的行为可能不同。通常,建议只在必要时才使用反引号。

双引号标识符

在SQL的ANSI/ISO标准中,双引号中的标识符(分隔标识符)允许用户使用关键字。Lakehouse也可以兼容此行为。开启后,双引号为分隔符标识符,通过设置cz.sql.double.quoted.identifiers=true当前只支持会话级别开启。需要注意的是,如果开启双引号为分隔符标识符后,Lakehouse将不再把双引号括起来的数据认为是一个字符串类型。

"[ ... ]"

注意事项

  • 如果使用双引号标识符创建对象,则在查询或任何其他SQL语句中引用该对象时,如果是关键字必须完全按照创建时指定标识符,包含双引号。不包含双引号可能会导致错误。

     --需要使用关键字作为对象的命名
     create schema "select"

各个对象的命名规范

实例INSTANCE NAME

约束约束条件
名字规则命名规则由系统生成 以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写。
长度限制长度为3~28个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字无保留字
是否允许重复用户lakehouse的唯一标示

WORKSPACE

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为3~28个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字保留字sys
是否允许重复在当前实例下不允许重复
COMMENT命名规则以字母或中文开头
长度限制长度不能超过1024个字符,
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,允许中间有空格
是否支持中文
是否区分大小写区分

SCHEMA

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字有保留字 information_schema、public
是否允许重复在当前WORKSPACE下不允许重复不允许和volume 重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9)
是否支持中文
是否区分大小写区分

TABLE

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否允许重复在当前schema下不允许重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写区分

VIEW

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否允许重复在当前schema下不允许重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,,允许有空格
是否支持中文
是否区分大小写区分

VIRTUAL CLUSTER

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否允许重复在当前workspace不重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,,允许有空格
是否支持中文
是否区分大小写区分

COLUMN

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文支持
是否有保留字有保留字
是否允许重复在当前表中不允许重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,,允许有空格
是否支持中文
是否区分大小写区分

VOLUME

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字有保留字
是否允许重复在当前workspace不重复,不允许和schema重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写区分

FUNCTION

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写,避免和内建函数重复
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字有保留字
是否允许重复允许重复,根据传入的参数区分
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写区分

ROLE

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字有保留角色
是否允许重复允许重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写区分
ROLE_ALIAS命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写不区分

USER

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字
是否允许重复当前Account不允许重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写区分

INDEX

约束约束条件
名字规则命名规则以字母(AZ、az)或下划线(“_”)开头。大写字符会转成小写
长度限制长度为最大1-256个字符
是否支持特殊字符仅包含字母、下划线、十进制数字 (0-9) ,不允许有空格
是否支持中文不支持
是否有保留字
是否允许重复当前schema不允许重复
COMMENT命名规则以字母或中文开头
长度限制1024字符
是否支持特殊字符含字母、汉字、下划线、十进制数字 (0-9) ,允许有空格
是否支持中文
是否区分大小写区分

联系我们
预约咨询
微信咨询
电话咨询