Nombres

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Identifica diferentes tipos de objetos en Azure Databricks.

Las siguientes limitaciones se aplican a todos los nombres de objeto en el catálogo de Unity:

  • Los nombres de equipo no pueden superar los 255 caracteres.
  • No se permiten los siguientes caracteres especiales:
    • Periodo (.)
    • Área ( )
    • Barra diagonal(/)
    • Todos los caracteres de control ASCII (hexadecimal 00-1F)
    • El carácter DELETE (hexadecimal 7F)
  • El catálogo de Unity almacena todos los nombres de objeto en minúsculas.
  • Al hacer referencia a nombres UC en SQL, debe usar acentos versos para escape de nombres que contengan caracteres especiales, como guiones (-).

Nota:

Los nombres de columna pueden usar caracteres especiales, pero el nombre debe escaparse con acentos versos en todas las instrucciones SQL si se usan caracteres especiales. El catálogo de Unity conserva el uso de mayúsculas y minúsculas, pero las consultas en las tablas del catálogo de Unity no distinguen mayúsculas de minúsculas.

Nombre de conexión

Identifica una conexión externa. Una conexión externa actúa como un vínculo a un sistema externo, como PostgreSQL y se puede usar para hacer referencia a sus catálogos, esquemas y tablas.

Sintaxis

connection_identifier

Parámetros

Ejemplos

> CREATE CONNECTION my_postgresql ...;

Nombre del catálogo

Identifica un catálogo. Un catálogo proporciona una agrupación de objetos que se pueden subdividir adicionalmente en esquemas.

Sintaxis

catalog_identifier

Parámetros

Ejemplos

> USE CATALOG hive_metastore;

> CREATE CATALOG mycatalog;

-- Creating a catalog with a special character requires back ticks
> CREATE CATALOG `cat-a-log`;

-- Creating a catalog with non ASCII characters requires back ticks
> USE `目录`;

-- space (' '), '/', and '.' are not allowed in catalog names, even with back ticks.
> CREATE CATALOG `cat a log`;
ERROR

Nombre del esquema

Identifica un esquema. Un esquema proporciona una agrupación de objetos en un catálogo.

Sintaxis

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parámetros

Los esquemas creados en hive_metastore solo pueden contener caracteres ASCII alfanuméricos y caracteres de subrayado (INVALID_SCHEMA_OR_RELATION_NAME).

Ejemplos

> USE SCHEMA default;

> CREATE SCHEMA my_sc;

-- In Hive Metastore, schema names must only consist of ASCII letters, digits and '_'
> CREATE SCHEMA hive_metastore.`a-b`;
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- In Unity Catalog only space (' '), '/', and '.' are not allowed
> CREATE SCHEMA main.`a-b`;

> CREATE SCHEMA `a b`;
Error

-- Use back-ticks to reference or create schemas in Unity Catalog with non-ASCII characters
> CREATE SCHEMA `数据库架构`;

Nombre de la base de datos

Sinónimo del nombre del esquema.

Aunque se pueden usar tanto SCHEMA como DATABASE, es preferible utilizar SCHEMA.

Nombre de la tabla

Identifica un objeto de tabla. La tabla se puede calificar con un nombre de esquema, o bien puede estar no calificada mediante un identificador simple.

Sintaxis

{ [ schema_name . ] table_identifier [ temporal_spec ] |
  IDENTIFIER clause [ temporal_spec ] |
  { file_format | `file_format` } . `path_to_table` [ temporal_spec ] [ credential_spec ] }

temporal_spec
{
  @ timestamp_encoding |
  @V version |
  [ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
  [ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}

credential_spec
  WITH ( CREDENTIAL credential_name )

Parámetros

  • schema_name: nombre de esquema completo o no calificado que contiene la tabla.

  • table_identifier: identificador que especifica el nombre de la tabla o table_alias.

  • file_format: puede ser json, csv, avro, parquet, orc, binaryFile, text, delta (sin distinción de mayúsculas y minúsculas).

  • path_to_table: ubicación de la tabla en el sistema de archivos. Debe tener el permiso ANY_FILE para usar esta sintaxis.

  • Cláusula IDENTIFICADOR: una asignación de constante STRING a un nombre de tabla.

  • temporal_spec: cuando se usa, hace referencia a una tabla de Delta en el momento o versión especificados.

    Solo puede usar una especificación temporal en el contexto de una consulta o una instrucción MERGE USING.

    • @ timestamp_encoding: literal Bigint positivo que codifica una marca de tiempo en formato yyyyMMddHHmmssSSS.
    • @V version: literal entero positivo que identifica la versión de la tabla Delta.
    • timestamp_expression: expresión simple que se evalúa como una marca de tiempo. timestamp_expressiom debe ser una expresión constante, pero puede contener current_date() o current_timestamp().
    • version: literal entero o literal de cadena que identifica la versión de la tabla Delta.
  • credential_spec

    Puede usar una credencial aplicable para obtener acceso a un elemento path_to_table que no está insertado en una ubicación externa.

    • credential_name

      Nombre de la credencial utilizada para acceder a la ubicación de almacenamiento.

Las tablas creadas en hive_metastore solo pueden contener caracteres ASCII alfanuméricos y caracteres de subrayado (INVALID_SCHEMA_OR_RELATION_NAME).

Si el nombre no está completo y no hace referencia a un alias de tabla conocido, Azure Databricks primero intenta resolver la tabla en el esquema actual.

Si el nombre se califica con un esquema, Azure Databricks intenta resolver la tabla en el catálogo actual.

Consulte Resolución de tablas y vistas para obtener más información sobre la resolución de nombres.

Azure Databricks genera un error si se usa un valor temporal_spec para una tabla que no está en formato Delta Lake.

Ejemplos

-- A back quoted table name
> SELECT * FROM `Employees`;

-- A table name without back quotes
> SELECT * FROM employees;

-- A schema qualified table name
> SELECT * FROM hr.employees;

-- A schema qualified table name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified table name
> SELECT * FROM hive_metastore.default.tab;

-- A reference to an information schema table.
> SELECT * FROM system.information_schema.columns;

-- Referencing a path as a table requires back ticks
> SELECT * FROM delta.`somedir/delta_table`;

> SELECT * FROM `csv`.`spreadsheets/data.csv`;

> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH (CREDENTIAL some_credential)

-- Tables in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE TABLE hive_metastore.default.t1(c1 INT);

> CREATE TABLE hive_metastore.default.`表一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE TABLE main.`瑞赛奇`.`表一`(c1 INT);

Nombre de la vista

Identifica una vista. La vista se puede calificar con un nombre de esquema, o bien puede estar no calificada mediante un identificador simple.

Sintaxis

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parámetros

Las vistas creadas en hive_metastore solo pueden contener caracteres ASCII alfanuméricos y caracteres de subrayado (INVALID_SCHEMA_OR_RELATION_NAME).

Ejemplos

-- A back quoted view name
> SELECT * FROM `Employees`;

-- A view name without back quotes
> SELECT * FROM employees;

-- A schema qualified view name
> SELECT * FROM hr.employees;

-- A schema qualified view name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified view name
> SELECT * FROM hive_metastore.default.tab;

-- Views in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE VIEW hive_metastore.default.v1(c1) AS SELECT 1;

> CREATE VIEW hive_metastore.default.`数据库视图一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE VIEW main.`瑞赛奇`.`数据库视图一`(c1) AS SELECT 1;

Nombre de la columna

Identifica una columna dentro de una tabla o vista. La columna se puede calificar con un nombre de tabla o vista, o bien puede estar no calificada mediante un identificador simple.

Sintaxis

{ [ { table_name | view_name } . ] column_identifier |
  IDENTIFIER clause }

Parámetros

  • table_name: nombre de tabla completo o no calificado de la tabla que contiene la columna.
  • view_name: nombre de vista completo o no calificado de la vista que contiene la columna.
  • column_identifier: identificador que especifica el nombre de la columna.
  • Cláusula IDENTIFICADOR: una asignación de constante STRING a un nombre de columna.

La columna identificada debe existir dentro de la tabla o vista.

Azure Databricks admite una columna _metadata especial. Esta pseudo columna de tipo struct forma parte de cada tabla y se puede usar para recuperar información de metadatos sobre las filas de la tabla.

Advertencia

Si el esquema de la tabla contiene una columna denominada _metadata, las consultas devolverán la columna del origen de datos y no los metadatos del archivo. No se podrá acceder a la pseudo columna _metadata.

Los nombres de columna de las tablas de Delta Lake sin propiedad de asignación de columnas ('delta.columnMapping.mode' = 'name') no deben contener los caracteres ' ' (espacio), ',', ';', '{', '}', '(', ')'. '\n', '\t'y '='.

El nombre de columna de las tablas AVRO debe comenzar con '_' o una letra Unicode (incluidas letras que no son ASCII) e ir seguida de una combinación de '_', letras Unicode y dígitos.

Ejemplos

-- An unqualified column name
> SELECT c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- A qualified column name
> SELECT T.c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- Using _metadata to retrieve information about rows retrieved from T.
> CREATE TABLE T(c1 INT);
> INSERT INTO T VALUES(1);
> SELECT T._metadata.file_size;
  574

-- A delimited column name
> CREATE TABLE T(`sütun1`);

Nombre del campo

Identifica un campo dentro de una estructura. El campo debe calificarse con la ruta de acceso hasta la estructura que contiene el campo.

Sintaxis

{ expr { . field_identifier [. ...] } |
  IDENTIFIER clause }

Parámetros

Se puede hacer referencia a un campo profundamente anidado si se especifica el identificador de campo en la ruta a la estructura raíz.

Los nombres de campo de las tablas de Delta Lake sin propiedad de asignación de columnas ('delta.columnMapping.mode' = 'name') no deben contener los caracteres ' ' (espacio), ',', ';', '{', '}', '(', ')'. '\n', '\t'y '='.

El nombre de campo de las tablas AVRO debe comenzar con '_' o una letra Unicode (incluidas letras que no son ASCII) e ir seguida de una combinación de '_', letras Unicode y dígitos.

Ejemplos

> SELECT addr.address.name
    FROM VALUES (named_struct('address', named_struct('number', 5, 'name', 'Main St'),
                              'city', 'Springfield')) as t(addr);
  Main St

-- Delimited field names with non ASCII letters
> CREATE TABLE T(c1 struct<`атрибут1` INT, `атрибут2`>);
> SELECT c1.`атрибут1` FROM T;

Nombre de la variable

Identifica una variable temporal (de sesión). La variable puede ser una variable calificada con un nombre de esquema (system.session o session) o sin calificar mediante un identificador simple.

Sintaxis

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parámetros

  • schema_name: system.session o session que contiene todas las variables temporales.
  • variable_identifier: identificador que especifica el nombre de la variable.

Ejemplos


-- Declaring a session variable with a qualified name.
> DECLARE session.myvar = 5;

-- Setting a session variable with an unqualified name.
> SET VAR myvar = 6

-- Declaring a session variable with a fully qualified name an non-ASCII characters.
> DECLARE system.session.`圆周率` = 3.14;

Nombre de función

Identifica una función. La función se puede calificar con un nombre de esquema, o bien puede estar no calificada mediante un identificador simple.

Sintaxis

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parámetros

Las funciones creadas en hive_metastore solo pueden contener caracteres ASCII alfanuméricos y caracteres de subrayado.

Ejemplos

-- Creating a SQL function with a qualified name
> CREATE FUNCTION math.myplus(x INT, y INT) RETURN x + y;

-- Invoking a function with an unqualified name
> SELECT myplus()

-- Creating a SQL function with non-ASCII characters;
> CREATE FUNCTION `圆周率`() RETURN 3.14;

Nombre de parámetro

Identifica un parámetro en el cuerpo de una función SQL definida por el usuario (UDF SQL). La función se puede calificar con un identificador de función, o bien puede estar no calificada mediante un identificador simple.

Sintaxis

[ function_identifier . ] parameter_identifier

Parámetros

Ejemplos

-- Create a function with undelimited parameters and reference them as qualified and nonqualified.
> CREATE FUNCTION area(x INT, y INT) RETURNS INT
  RETURN area.x + y;

-- Create a function with non-ASCII character parameters
> CREATE FUNCTION full_name(`prénom` STRING, `nom` STRING) RETURNS STRING
  RETURN `prénom` + ' ' + `nom`;

Alias de tabla

Etiqueta una referencia de tabla, consulta, función de tabla u otra forma de relación.

Sintaxis

[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]

Parámetros

Si proporciona identificadores de columna, su número debe coincidir con el número de columnas de la relación coincidente.

Si no proporciona identificadores de columna, sus nombres se heredan de la relación etiquetada.

Ejemplos

-- Defining a table alias with column list
> SELECT a, b FROM VALUES (1, 2) AS t(a, b);
 a  b
 1  2

-- Defining a table alias without column list
> DELETE FROM emp AS e WHERE e.c1 = 5;

-- Defining a table alias with non ASCII characters
> SELECT * FROM employee AS `직원`;

Alias de columna

Etiqueta el resultado de una expresión en una lista SELECT como referencia.

Si la expresión es una función de generador con valores de tabla, el alias etiqueta la lista de columnas generada.

Sintaxis

[AS] column_identifier
[AS] ( column_identifier [, ...] )

Parámetros

Aunque no es necesario que los alias de columna sean únicos dentro de la lista de selección, la exclusividad es un requisito para hacer referencia a un alias por nombre.

Ejemplos

-- An undelimited alias
> SELECT 1 AS a;
 a
 1

> SELECT 1 a, 2 b;
 a b
 1 2

-- A delimited alias with non-ASCII characters
> SELECT 3.14 AS `圆周率`;
 a
 1

-- Referencing a passed column alias
> SELECT a + a FROM (SELECT 1 AS a);
 a
 2

Nombre de credencial

Identifica una credencial para acceder al almacenamiento en una ubicación externa.

Sintaxis

credential_identifier

Parámetros

Ejemplos

Nombre de la ubicación

Identifica una ubicación de almacenamiento externo.

Sintaxis

location_identifier

Parámetros

  • location_identifier: identificador no calificado que identifica de forma única la ubicación.

Ejemplos

`s3-json-data`

s3_json_data

Nombre del recurso compartido

Identifica un recurso compartido para acceder a los datos compartidos por un proveedor.

Sintaxis

share_identifier

Parámetros

  • share_identifier: identificador no calificado que identifica de forma única el recurso compartido.

Ejemplos

`public info`

`public-info`

public_info

Nombre de proveedor

Identifica un proveedor de Delta Sharing.

Sintaxis

provider_identifier

Parámetros

  • provider_identifier

    Es un identificador no calificado que identifica de forma única el proveedor.

Ejemplos

`Good Corp`

`Good-corp`

Good_Corp

Nombre del destinatario

Identifica un destinatario para un recurso compartido.

Sintaxis

recipient_identifier

Parámetros

Ejemplos

`Good Corp`

`Good-corp`

Good_Corp

Nombre del volumen

Identifica un volumen de catálogo de Unity. La tabla se puede calificar con un nombre de esquema, o bien puede estar no calificada mediante un identificador simple.

Sintaxis

[ schema_name .] volume_identifier

Parámetros

  • schema_name: nombre de esquema completo o no calificado que contiene la tabla.
  • share_identifier: identificador no calificado que identifica de forma única el recurso compartido.

Ejemplos

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume