Nombres
Se aplica a: Databricks SQL 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)
- Periodo (
- 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
- catalog_identifier: identificador que identifica el catálogo de manera exclusiva.
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
- catalog_identifier: identificador que identifica el catálogo de manera exclusiva.
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
- catalog_name: nombre de un catálogo existente.
- schema_identifier: identificador que identifica el esquema de manera exclusiva.
- Cláusula IDENTIFICADOR: una asignación de constante
STRING
a un nombre de esquema.
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 |
IDENTIFIER clause |
{ file_format | `file_format` } . `path_to_table` } [ temporal_spec ] [ options_spec ] }
temporal_spec
{
@ timestamp_encoding |
@V version |
[ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
[ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}
options_spec
WITH ( { option_key [ = ] option_val } [, ...] )
option_key
{ identifier [. ...] | string_literal }
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 contenercurrent_date()
ocurrent_timestamp()
. - version: literal entero o literal de cadena que identifica la versión de la tabla Delta.
- @ timestamp_encoding: literal Bigint positivo que codifica una marca de tiempo en formato
option_spec: cuando se usa define las directivas que se van a pasar a un origen de datos, como una credencial para acceder a una ubicación de almacenamiento o
'write.split-size'
para controlarINSERT
el comportamiento.option_key
Tecla de opción. La clave puede constar de uno o más identificadores separados por un punto o un literal de cadena.
Las claves de opción deben ser únicas y distinguen mayúsculas de minúsculas.
option_val
El valor de la opción. Expresión constante de tipo
BOOLEAN
,STRING
,INTEGER
oDECIMAL
.
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)
> INSERT INTO t WITH ('write.split-size' 10) SELECT * FROM s;
-- 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
- schema_name: nombre completo o no completo del esquema que contiene la vista.
- view_identifier: identificador que especifica el nombre de la vista o el identificador de vista de una expresión de tabla común.
- Cláusula IDENTIFICADOR: una asignación de constante
STRING
a un nombre de vista.
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
- expr: expresión de tipo de estructura.
- field_identifier: identificador que especifica el nombre del campo.
- Cláusula IDENTIFICADOR: una asignación de constante
STRING
a un nombre de campo.
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
osession
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
- schema_name: nombre de esquema completo o no calificado que contiene la función.
- function_identifier: identificador que especifica el nombre de la función.
- Cláusula IDENTIFICADOR: una asignación de constante
STRING
a un nombre de función.
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
- function_identifier: identificador que especifica el nombre de una función.
- parameter_identifier: identificador que especifica el nombre de un parámetro.
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
- table_identifier: identificador que especifica el nombre de la tabla.
- column_identifierN: identificador opcional que especifica el nombre de la columna.
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
- column_identifier: identificador que especifica el nombre de la columna.
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 o servicios en la nube con sdk de proveedor.
Sintaxis
credential_identifier
Parámetros
- credential_identifier: identificador no calificado que identifica de forma única la credencial.
Ejemplos
`my_storage_cred`
my_storage_cred
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
-
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
- recipient_identifier: identificador no calificado que identifica de forma única al destinatario.
Ejemplos
`Good Corp`
`Good-corp`
Good_Corp
Nombre de la sala limpia
Identifica una sala limpia para un conjunto de colaboradores.
Sintaxis
clean_room_identifier
Parámetros
- clean_room_identifier: un identificador sin calificar que especifica de forma única la sala limpia en las metastores de los colaboradores.
Ejemplos
`Clean-Room`
Clean_Room
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