noms
S’applique à : Databricks SQL Databricks Runtime
Identifie différentes sortes d’objets dans Azure Databricks.
Les limitations suivantes s’appliquent à tous les noms d’objets dans Unity Catalog :
- Les noms des objets ne doivent pas dépasser 255 caractères.
- Les caractères spéciaux suivants ne sont pas autorisés :
- Point (
.
) - Espace (
- Barre oblique (
/
) - Tous les caractères de contrôle ASCII (hexadécimal 00-1F)
- Caractère SUPPRIMER (hexadécimal 7F)
- Point (
- Unity Catalog stocke tous les noms d’objets en minuscules.
- Lorsque vous référencez des noms UC dans SQL, vous devez utiliser des backticks pour les noms d’échappement qui contiennent des caractères spéciaux tels que des traits d’union (
-
).
Remarque
Les noms de colonnes peuvent utiliser des caractères spéciaux, mais le nom doit être placé dans une séquence d’échappement avec des backticks dans toutes les instructions SQL si des caractères spéciaux sont utilisés. Unity Catalog conserve la casse des noms de colonne, mais les requêtes sur les tables Unity Catalog ne respectent pas la casse.
Nom de la connexion
Identifie une connexion étrangère.
Une connexion étrangère sert de lien vers un système étranger, par exemple PostgreSQL
et peut ensuite être utilisée pour référencer ses catalogues, schémas et tables.
Syntaxe
connection_identifier
Paramètres
- connection_identifier : identificateur qui spécifie de façon unique la connexion.
Exemples
> CREATE CONNECTION my_postgresql ...;
Nom du catalogue
Identifie un catalogue. Un catalogue représente un regroupement d’objets qui peut être encore subdivisé en schémas.
Syntaxe
catalog_identifier
Paramètres
- catalog_identifier : identificateur qui spécifie de façon unique le catalogue.
Exemples
> 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
Nom du schéma
Identifie un schéma. Un schéma représente un regroupement d’objets dans un catalogue.
Syntaxe
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Paramètres
- catalog_name : nom d’un catalogue existant.
- schema_identifier : identificateur qui spécifie de façon unique le schéma.
- Clause IDENTIFICATEUR : mappage d’une constante
STRING
à un nom de schéma.
Les schémas créés dans hive_metastore
ne peuvent contenir que des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).
Exemples
> 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 `数据库架构`;
Nom de la base de données
Synonyme de Nom du schéma.
Bien que SCHEMA
et DATABASE
soient interchangeables, il est préférable d’utiliser SCHEMA
.
Nom de la table
Identifie un objet table. La table peut être qualifiée avec un nom de schéma ou non qualifiée à l’aide d’un identificateur simple.
Syntaxe
{ [ 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 }
Paramètres
schema_name : nom qualifié ou non du schéma contenant la table.
table_identifier : identificateur qui spécifie le nom de la table ou table_alias.
file_format :
json
,csv
,avro
,parquet
,orc
,binaryFile
,text
oudelta
(non-respect de la casse).path_to_table : emplacement de la table dans le système de fichiers. Vous devez disposer de l’autorisation
ANY_FILE
pour pouvoir utiliser cette syntaxe.Clause IDENTIFICATEUR : mappage d’une constante
STRING
à un nom de tableau.temporal_spec : si utilisé, fait référence à une table Delta au point dans le temps ou à la version spécifié.
Une spécification temporelle ne peut être employée que dans le contexte d’une requête ou d’une instruction MERGE USING.
- @ timestamp_encoding : littéral Bigint positif qui encode un timestamp au format
yyyyMMddHHmmssSSS
. - @V version : littéral entier positif identifiant la version de la table Delta.
- timestamp_expression : expression simple donnant un TIMESTAMP.
timestamp_expressiom
doit être une expression constante, mais peut contenircurrent_date()
oucurrent_timestamp()
. - version : littéral entier ou littéral de chaîne identifiant la version de la table Delta.
- @ timestamp_encoding : littéral Bigint positif qui encode un timestamp au format
option_spec : lorsqu’elle est utilisée, définit des directives à passer à une source de données, comme des informations d’identification pour accéder à un emplacement de stockage ou
'write.split-size'
pour contrôlerINSERT
le comportement.option_key
La clé d’option. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral de chaîne.
Les clés d’option doivent être uniques et respectent la casse.
option_val
Valeur de l’option. Expression constante de type
BOOLEAN
,STRING
,INTEGER
ouDECIMAL
.
Les tables créées dans hive_metastore
ne peuvent contenir que des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).
Si le nom n’est pas qualifié et ne fait pas référence à un alias de table connu, Azure Databricks essaie tout d’abord de résoudre la table dans le schéma actuel.
Si le nom est qualifié par un schéma, Azure Databricks tente de résoudre la table dans le catalogue actuel.
Pour plus d’informations sur la résolution de noms, consultez Résolution de table et d’affichage .
Azure Databricks génère une erreur si vous utilisez une temporal_spec
pour une table qui n’est pas au format Delta Lake.
Exemples
-- 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);
Nom de l’affichage
Identifie une vue. La vue peut être qualifiée avec un nom de schéma ou non qualifiée à l’aide d’un identificateur simple.
Syntaxe
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Paramètres
- schema_name : nom qualifié ou non du schéma contenant la vue.
- view_identifier : identificateur qui spécifie le nom de la vue ou l’identificateur de vue d’une expression de table commune.
- Clause IDENTIFICATEUR : mappage d’une constante
STRING
à un nom de vue.
Les vues créées dans hive_metastore
ne peuvent contenir que des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).
Exemples
-- 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;
Nom de la colonne
Identifie une colonne dans une table ou une vue. La colonne peut être qualifiée avec un nom de table ou de vue, ou non qualifiée à l’aide d’un identificateur simple.
Syntaxe
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Paramètres
- table_name : nom qualifié ou non de la table contenant la colonne.
- view_name : nom qualifié ou non de la vue contenant la colonne.
- column_identifier : identificateur qui spécifie le nom de la colonne.
- Clause IDENTIFICATEUR : mappage d’une constante
STRING
à un nom de colonne.
La colonne identifiée doit exister dans la table ou la vue.
Azure Databricks prend en charge une colonne _metadata spéciale. Cette pseudo colonne de type struct fait partie de chaque table, et peut être utilisée pour récupérer des informations de métadonnées sur les lignes de la table.
Avertissement
Si le schéma de table contient une colonne nommée _metadata
, les requêtes retournent la colonne de la source de données, et non les métadonnées du fichier. La colonne pseudo _metadata
n’est pas accessible.
Les noms de colonnes dans les tables Delta Lake sans propriété de mappage de colonne ('delta.columnMapping.mode' = 'name'
) ne doivent pas contenir les caractères ' '
(espace), ','
, ';'
, '{'
, '}'
, '('
, ')'
. '\n'
, '\t'
et '='
.
Le nom de colonne dans les tables AVRO
doit commencer par '_'
ou une lettre Unicode (y compris des lettres non ASCII) et être suivi d’une combinaison de '_'
, de lettres Unicode et de chiffres.
Exemples
-- 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`);
Nom du champ
Identifie un champ dans un struct. Le champ doit être qualifié avec le chemin jusqu’au struct contenant le champ.
Syntaxe
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Paramètres
- expr : expression de type STRUCT.
- field_identifier : identificateur qui spécifie le nom du champ.
- Clause IDENTIFICATEUR : mappage d’une constante
STRING
à un nom de champ.
Pour faire référence à un champ profondément imbriqué, vous pouvez indiquer l’identificateur de champ sur le chemin du struct racine.
Les noms de champs dans les tables Delta Lake sans propriété de mappage de colonnes ('delta.columnMapping.mode' = 'name'
) ne doivent pas contenir les caractères ' '
(espace), ','
, ';'
, '{'
, '}'
, '('
, ')'
. '\n'
, '\t'
et '='
.
Le nom du champ dans les tables AVRO
doit commencer par '_'
ou une lettre Unicode (y compris des lettres non ASCII) et être suivi d’une combinaison de '_'
, de lettres Unicode et de chiffres.
Exemples
> 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;
Nom de la variable
Identifie une variable temporaire (session).
La variable peut être qualifiée avec un nom de schéma (system.session
ou session
) ou non qualifiée à l’aide d’un identificateur simple.
Syntaxe
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Paramètres
- schema_name :
system.session
ousession
contient toutes les variables temporaires. - variable_identifier : Un identificateur qui spécifie le nom de la variable.
Exemples
-- 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;
Nom de la fonction
Identifie une fonction. La fonction peut être qualifiée avec un nom de schéma ou non qualifiée à l’aide d’un identificateur simple.
Syntaxe
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Paramètres
- schema_name : nom qualifié ou non du schéma contenant la fonction.
- function_identifier : identificateur qui spécifie le nom de la fonction.
- Clause IDENTIFICATEUR : mappage d’une constante
STRING
à un nom de fonction.
Les fonctions créées dans hive_metastore
peuvent uniquement contenir des caractères ASCII alphanumériques et des traits de soulignement.
Exemples
-- 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;
Nom du paramètre
Identifie un paramètre dans le corps d’une fonction SQL définie par l’utilisateur (UDF). La fonction peut être qualifiée avec un identificateur de fonction ou non qualifiée à l’aide d’un identificateur simple.
Syntaxe
[ function_identifier . ] parameter_identifier
Paramètres
- function_identifier : identificateur qui spécifie le nom d’une fonction.
- parameter_identifier : identificateur qui spécifie le nom d’un paramètre.
Exemples
-- 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 table
Étiquette une référence de table, une requête, une fonction de table ou une autre forme de relation.
Syntaxe
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Paramètres
- table_identifier : identificateur qui spécifie le nom de la table.
- column_identifierN : identificateur facultatif qui spécifie le nom de la colonne.
Si vous indiquez des identificateurs de colonne, leur nombre doit correspondre au nombre de colonnes dans la relation correspondante.
Si vous ne fournissez pas d’identificateurs de colonne, leurs noms sont hérités de la relation étiquetée.
Exemples
-- 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 colonne
Étiquette le résultat d’une expression dans une liste SELECT
à des fins de référence.
Si l’expression est une fonction de générateur table, l’alias étiquette la liste des colonnes produites.
Syntaxe
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Paramètres
- column_identifier : identificateur qui spécifie le nom de la colonne.
Bien que les alias de colonnes ne soient pas nécessairement uniques dans la liste SELECT, l’unicité est obligatoire pour faire référence à un alias par son nom.
Exemples
-- 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
Credential name (Nom des informations d’identification)
Identifie les informations d’identification permettant d’accéder au stockage à un emplacement externe ou à des services cloud avec des kits SDK de fournisseur.
Syntaxe
credential_identifier
Paramètres
- credential_identifier : identificateur non qualifié qui spécifie de façon unique les informations d’identification.
Exemples
`my_storage_cred`
my_storage_cred
Nom de l’emplacement
Identifie un emplacement de stockage externe.
Syntaxe
location_identifier
Paramètres
- location_identifier : identificateur non qualifié qui spécifie de façon unique l’emplacement.
Exemples
`s3-json-data`
s3_json_data
Nom de partage
Identifie un partage pour permettre d’accéder aux données partagées par un fournisseur.
Syntaxe
share_identifier
Paramètres
- share_identifier : identificateur non qualifié qui spécifie de façon unique le partage.
Exemples
`public info`
`public-info`
public_info
Nom du fournisseur
Identifie un fournisseur de partage Delta.
Syntaxe
provider_identifier
Paramètres
-
Identificateur non qualifié qui spécifie de façon unique le partage.
Exemples
`Good Corp`
`Good-corp`
Good_Corp
Nom du destinataire
Identifie un destinataire d’un partage.
Syntaxe
recipient_identifier
Paramètres
- recipient_identifier : identificateur non qualifié qui spécifie de façon unique le destinataire.
Exemples
`Good Corp`
`Good-corp`
Good_Corp
Nom de la salle propre
Identifie une salle propre pour un ensemble de collaborateurs.
Syntaxe
clean_room_identifier
Paramètres
- clean_room_identifier : identificateur non qualifié qui spécifie de manière unique la salle propre dans les metastores des collaborateurs.
Exemples
`Clean-Room`
Clean_Room
Nom du volume
Identifie un volume Unity Catalog. Le volume peut être qualifié avec un nom de schéma ou non qualifié à l’aide d’un identificateur simple.
Syntaxe
[ schema_name .] volume_identifier
Paramètres
- schema_name : nom qualifié ou non du schéma contenant la volume.
- volume_identifier : identificateur non qualifié qui spécifie de façon unique le volume dans le schéma.
Exemples
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume