Nomi
Si applica a: Databricks SQL Databricks Runtime
Identifica diversi tipi di oggetti in Azure Databricks.
Le limitazioni seguenti si applicano a tutti i nomi degli oggetti in Unity Catalog:
- I nomi degli oggetti non possono superare i 255 caratteri.
- Non sono consentiti i caratteri speciali seguenti:
- Periodo (
.
) - Spazio (
- Barra (
/
) - Tutti i caratteri di controllo ASCII (esadecimale 00-1F)
- Carattere DELETE (hex 7F)
- Periodo (
- Unity Catalog archivia tutti i nomi degli oggetti come minuscoli.
- Quando si fa riferimento ai nomi UC in SQL, è necessario usare i backtick per i nomi di escape contenenti caratteri speciali, ad esempio trattini (
-
).
Nota
I nomi Column possono usare caratteri speciali, ma il nome deve essere racchiuso tra backtick in tutte le istruzioni SQL se vengono utilizzati caratteri speciali. Unity Catalog mantiene la maiuscolatura del nome column, ma le query su Unity Catalogtables sono insensibili al maiuscolo.
Nome connessione
Identifica una connessione esterna.
Una connessione esterna funge da collegamento a un sistema esterno, ad esempio PostgreSQL
e può quindi essere usata per fare riferimento ai relativi catalogs, schemi e tables.
Sintassi
connection_identifier
Parameters
- connection_identifier: Un identifier che identifica in modo univoco la connessione.
Esempi
> CREATE CONNECTION my_postgresql ...;
nome Catalog
Identifica un catalog. Un catalog fornisce un raggruppamento di oggetti che possono essere ulteriormente suddivisi in schemi.
Sintassi
catalog_identifier
Parameters
- catalog_identifier: Un identifier che identifica in modo univoco il catalog.
Esempi
> 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
nome Schema
Identifica un schema. Un schema fornisce un raggruppamento di oggetti in un catalog.
Sintassi
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parameters
- catalog_name: nome di un catalogesistente.
- schema_identifier: Un identifier che identifica in modo univoco il schema.
-
IDENTIFIER clausola: una mappatura del costante
STRING
a un nome di schema.
Gli schemi creati in hive_metastore
possono contenere solo caratteri ASCII alfanumerici e caratteri di sottolineatura (INVALID_SCHEMA_OR_RELATION_NAME).
Esempi
> 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 `数据库架构`;
Nome database
Un sinonimo per schema nome.
Sebbene l'utilizzo di SCHEMA
e DATABASE
sia intercambiabile, SCHEMA
è preferibile.
nome Table
Identifica un oggetto table. Il table può essere qualificato con un nome di schema o non qualificato usando un semplice identifier.
Sintassi
{ [ 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 }
Parameters
schema_name: Un nome schema, qualificato o non qualificato, che contiene il table.
table_identifier: Un identifier che specifica il nome del table o del table_alias.
file_format: uno di
json
,csv
avro
,parquet
,orc
,binaryFile
,text
(delta
senza distinzione tra maiuscole e minuscole).path_to_table: percorso del table nel file system. È necessario disporre dell'autorizzazione
ANY_FILE
per usare questa sintassi.IDENTIFIER clausola: mapping di costante
STRING
a un nome di table.temporal_spec: quando utilizzato, fa riferimento a un Delta table nel momento o nella versione specificati.
È possibile usare una specifica temporale solo all'interno del contesto di una query o di un'istruzione MERGE USING.
-
@ timestamp_encoding: valore letterale Bigint positivo che codifica un timestamp in
yyyyMMddHHmmssSSS
formato. - @V versione: valore letterale intero positivo che identifica la versione del delta table.
-
timestamp_expression: espressione semplice che restituisce un TIMESTAMP.
timestamp_expressiom
deve essere un'espressione costante, ma può contenerecurrent_date()
ocurrent_timestamp()
. - versione: letterale intero o letterale stringa che identifica versione del delta table.
-
@ timestamp_encoding: valore letterale Bigint positivo che codifica un timestamp in
option_spec: se usato definisce le direttive da passare a un'origine dati, ad esempio credenziali per accedere a un percorso di archiviazione o
'write.split-size'
per controllareINSERT
il comportamento.option_key
La chiave dell'opzione. La chiave può essere costituita da uno o più identificatori separati da un punto o da un valore letterale stringa.
Le chiavi di opzione devono essere univoche e fanno distinzione tra maiuscole e minuscole.
option_val
Valore per l'opzione. Espressione costante di tipo
BOOLEAN
,STRING
,INTEGER
oDECIMAL
.
Tables creato in hive_metastore
può contenere solo caratteri ASCII alfanumerici e caratteri di sottolineatura (INVALID_SCHEMA_OR_RELATION_NAME).
Se il nome non è qualificato e non fa riferimento a un alias table noto, Azure Databricks tenta innanzitutto di risolvere il table nell'schemacorrente.
Se il nome è qualificato con un schema, Azure Databricks tenta di risolvere il table nell'catalogcorrente.
Per ulteriori informazioni sulla risoluzione dei nomi, vedere , consultare la risoluzioneTable ed esaminare la risoluzione.
Azure Databricks genera un errore se si usa un temporal_spec
invece di un table che non è in formato Delta Lake.
Esempi
-- 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);
Nome visualizzazione
Identifica una visualizzazione. La vista può essere qualificata con un nome schema o non qualificata usando un semplice identifier.
Sintassi
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parameters
- schema_name: nome qualificato o non qualificato del schema che contiene la visualizzazione.
- view_identifier: Un identifier che specifica il nome della vista o la vista identifier di un CTE .
-
IDENTIFIER clausola: una mappatura della costante
STRING
a un nome di vista.
Views creato in hive_metastore
può contenere solo caratteri ASCII alfanumerici e caratteri di sottolineatura (INVALID_SCHEMA_OR_RELATION_NAME).
Esempi
-- 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;
nome Column
Identifica un column all'interno di un table o di una visuale. Il column può essere qualificato con un nome di table o di vista oppure non qualificato usando un semplice identifier.
Sintassi
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parameters
- table_name: nome completo o non qualificato table del table contenente il column.
- view_name: un nome della vista qualificato o non qualificato della vista contenente il column.
- column_identifier: Un identifier che specifica il nome del column.
-
IDENTIFIER clausola: una mappatura di costanti
STRING
a un nome column.
Il column identificato deve esistere all'interno del table o della visualizzazione.
Azure Databricks supporta un _metadata columnspeciale. Questo pseudo column dello struct di tipo fa parte di ogni table e può essere usato per recuperare informazioni sui metadati sulle righe nel table.
Avviso
Se il tableschema contiene un column chiamato _metadata
, le query restituiranno il column dall'origine dati e non i metadati del file. Pseudo _metadata
column non sarà accessibile.
Column nomi in Delta Lake tables senza column proprietà di mapping ('delta.columnMapping.mode' = 'name'
) non devono contenere i caratteri ' '
(spazio), ','
, ';'
, '{'
, '}'
, '('
, ')'
.
'\n'
, '\t'
e '='
.
Column nome in AVRO
tables deve iniziare con '_'
o una lettera Unicode (incluse lettere non ASCII) ed essere seguita da una combinazione di '_'
, lettere Unicode e cifre.
Esempi
-- 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`);
Nome del campo
Identifica un campo all'interno di uno struct. Il campo deve essere qualificato con il percorso fino allo struct contenente il campo.
Sintassi
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parameters
- expr: espressione di tipo STRUCT.
- : Un identifier che specifica il nome del campo.
-
IDENTIFIER clausola: mapping di
STRING
costanti a un nome di campo.
È possibile fare riferimento a un campo annidato specificando il campo identifier lungo il percorso dello struct radice.
I nomi di campo in Delta Lake tables senza column proprietà di mappatura ('delta.columnMapping.mode' = 'name'
) non devono contenere i caratteri ' '
(spazio), ','
, ';'
, '{'
, '}'
, '('
, ')'
.
'\n'
, '\t'
e '='
.
Il nome del campo in AVRO
tables deve iniziare con '_'
o una lettera Unicode (incluse lettere non ASCII) e deve essere seguita da una combinazione di '_'
, lettere Unicode e cifre.
Esempi
> 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;
Nome variabile
Identifica una variabile temporanea (sessione).
La variabile può essere qualificata con un nome di schema (system.session
o session
) o non qualificato usando un semplice identifier.
Sintassi
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parameters
-
schema_name:
system.session
osession
che contiene tutte le variabili temporanee. - variable_identifier: Un identifier che specifica il nome della variabile.
Esempi
-- 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;
Nome della funzione
Identifica una funzione. La funzione può essere qualificata con un nome di schema o non qualificato usando un semplice identifier.
Sintassi
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parameters
- schema_name: un nome qualificato o non qualificato schema che contiene la funzione.
- identificatore_funzione: identifier che specifica il nome della funzione.
-
IDENTIFIER clausola: una mapping di una costante
STRING
al nome di una funzione.
Le funzioni create in hive_metastore
possono contenere solo caratteri ASCII alfanumerici e caratteri di sottolineatura.
Esempi
-- 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;
Nome parametro
Identifica un parametro nel corpo di una funzione SQL definita dall'utente (UDF SQL). La funzione può essere qualificata con una funzione identifier, o non qualificata usando un semplice identifier.
Sintassi
[ function_identifier . ] parameter_identifier
Parameters
- function_identifier: Un identifier che specifica il nome di una funzione.
- parameter_identifier: identifier che specifica il nome di un parametro.
Esempi
-- 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 Table
Etichetta un riferimento table, una query, una funzione table o un'altra forma di una relazione.
Sintassi
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parameters
- table_identifier: Un identifier che specifica il nome del table.
- column_identifierN: un identifier facoltativo che specifica il nome del column.
Se fornisci identificatori column, il loro numero deve corrispondere al numero di columns nella relazione corrispondente.
Se non si specificano identificatori column, i loro nomi vengono ereditati dalla relazione etichettata.
Esempi
-- 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 Column
Etichetta il risultato di un'espressione in un SELECT
list per riferimento.
Se l'espressione è una funzione generatore con valori table, l'alias etichetta il list di columns prodotto.
Sintassi
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parameters
- column_identifier: Specifica il nome del columnmediante identifier.
Anche se gli alias column non devono essere univoci all'interno del selectlist, l'univocità è un requisito per fare riferimento a un alias tramite nome.
Esempi
-- 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
Nome della collazione
Identifica una collatione per una column o espressione.
Sintassi
collation_identifier
Parameters
- collation_identifier: identifier che specifica il nome della collazione.
Per una list di regole di confronto supportate, vedere Regole di confronto supportate. Per informazioni dettagliate sulle collationi, vedere Collation.
Esempi
> SELECT 'hello' COLLATE UNICODE_CI;
hello
Credential name (Nome credenziali)
Identifica una credenziale per accedere all'archiviazione in una posizione esterna o in servizi cloud con SDK del provider.
Sintassi
credential_identifier
Parameters
- credential_identifier: identifier non qualificato che identifica in modo univoco le credenziali.
Esempi
`my_storage_cred`
my_storage_cred
Nome della località
Identifica un percorso di archiviazione esterno.
Sintassi
location_identifier
Parameters
- identificatore_di_posizione: Un identifier non qualificato che identifica in modo univoco la località.
Esempi
`s3-json-data`
s3_json_data
Nome condivisione
Identifica una condivisione per accedere ai dati condivisi da un provider.
Sintassi
share_identifier
Parameters
- share_identifier: Un identifier senza qualificazioni che identifica in modo univoco la condivisione.
Esempi
`public info`
`public-info`
public_info
Nome provider
Identifica un provider di condivisione delta.
Sintassi
provider_identifier
Parameters
-
Un identifier non qualificato che identifica in modo univoco il fornitore.
Esempi
`Good Corp`
`Good-corp`
Good_Corp
Nome del destinatario
Identifica un destinatario per una condivisione.
Sintassi
recipient_identifier
Parameters
- recipient_identifier: Un identifier non qualificato che identifica in modo univoco il destinatario.
Esempi
`Good Corp`
`Good-corp`
Good_Corp
Nome camera pulita
Identifica una camera bianca per un gruppo set di collaboratori.
Sintassi
clean_room_identifier
Parameters
- clean_room_identifier: un identifier non qualificato che specifica in modo univoco la stanza pulita nella metastores dei collaboratori.
Esempi
`Clean-Room`
Clean_Room
Nome del volume
Identifica un volume Catalog Unity. Il volume può essere qualificato con un nome schema o non qualificato usando un semplice identifier.
Sintassi
[ schema_name .] volume_identifier
Parameters
- schema_name: nome completo o non qualificato schema che contiene il volume.
- volume_identifier: Un identifier non qualificato che identifica in modo univoco il volume all'interno del schema.
Esempi
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume