Namen
Van toepassing op: Databricks SQL Databricks Runtime
Identificeert verschillende soorten objecten in Azure Databricks.
De volgende beperkingen gelden voor alle objectnamen in Unity Catalog:
- Objectnamen mogen niet langer zijn dan 255 tekens.
- De volgende speciale tekens zijn niet toegestaan:
- Periode (
.
) - Spatie (
- Slash (
/
) - Alle ASCII-besturingstekens (00-1F-hex)
- Het DELETE-teken (7F-hex)
- Periode (
- Unity Catalog slaat alle objectnamen op als kleine letters.
- Wanneer u verwijst naar UC-namen in SQL, moet u backticks gebruiken om te ontsnappen aan namen die speciale tekens bevatten, zoals afbreekstreepjes (
-
).
Notitie
Kolomnamen kunnen speciale tekens gebruiken, maar de naam moet worden ontsnapt met backticks in alle SQL-instructies als er speciale tekens worden gebruikt. Unity Catalog behoudt het hoofdlettergebruik van de kolomnamen, maar query's voor Unity Catalog-tabellen zijn niet hoofdlettergevoelig.
Verbindingsnaam
Identificeert een refererende verbinding.
Een refererende verbinding fungeert als een koppeling naar een extern systeem, zoals PostgreSQL
en kan vervolgens worden gebruikt om te verwijzen naar de catalogi, schema's en tabellen.
Syntaxis
connection_identifier
Parameters
Voorbeelden
> CREATE CONNECTION my_postgresql ...;
Catalogusnaam
Identificeert een catalogus. Een catalogus biedt een groepering van objecten die verder kunnen worden onderverdeeld in schema's.
Syntaxis
catalog_identifier
Parameters
Voorbeelden
> 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
Schemanaam
Identificeert een schema. Een schema biedt een groepering van objecten in een catalogus.
Syntaxis
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parameters
- catalog_name: de naam van een bestaande catalogus.
- schema_identifier: een id die het schema uniek identificeert.
- ID-component: een toewijzing van constante
STRING
aan een schemanaam.
Schema's die zijn gemaakt in hive_metastore
kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.
Voorbeelden
> 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 `数据库架构`;
Databasenaam
Een synoniem voor schemanaam.
Hoewel het gebruik van SCHEMA
en DATABASE
uitwisselbaar is, heeft de SCHEMA
voorkeur.
Tabelnaam
Identificeert een tabelobject. De tabel kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.
Syntaxis
{ [ 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 )
Parameters
schema_name: een gekwalificeerde of niet-gekwalificeerde schemanaam die de tabel bevat.
table_identifier: een id die de naam van de tabel of table_alias aangeeft.
file_format: Een van
json
, ,csv
,avro
,orc
parquet
, ,binaryFile
, ,text
(delta
hoofdlettergevoelig).path_to_table: De locatie van de tabel in het bestandssysteem. U moet over de
ANY_FILE
machtiging beschikken om deze syntaxis te kunnen gebruiken.ID-component: een toewijzing van constante
STRING
aan een tabelnaam.temporal_spec: Bij gebruik wordt verwezen naar een Delta-tabel op het opgegeven tijdstip of de opgegeven versie.
U kunt een tijdelijke specificatie alleen gebruiken binnen de context van een query of een MERGE USING.
- @ timestamp_encoding: Een positieve letterlijke bigint die een tijdstempel in
yyyyMMddHHmmssSSS
notatie codeert. - @V versie: een positieve letterlijke waarde voor gehele getallen waarmee de versie van de Delta-tabel wordt geïdentificeerd.
- timestamp_expression: een eenvoudige expressie die resulteert in een TIMESTAMP.
timestamp_expressiom
moet een constante expressie zijn, maar kan wel bevattencurrent_date()
ofcurrent_timestamp()
. - versie: Een letterlijk geheel getal of een letterlijke tekenreeks die de versie van de Delta-tabel aangeeft.
- @ timestamp_encoding: Een positieve letterlijke bigint die een tijdstempel in
credential_spec
U kunt een toepasselijke referentie gebruiken om toegang te krijgen tot een
path_to_table
referentie die niet is ingesloten op een externe locatie.-
De naam van de referentie die wordt gebruikt voor toegang tot de opslaglocatie.
-
Tabellen die zijn gemaakt in hive_metastore
kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.
Als de naam niet gekwalificeerd is en niet verwijst naar een bekende tabelalias, probeert Azure Databricks eerst de tabel in het huidige schema op te lossen.
Als de naam is gekwalificeerd met een schema, probeert Azure Databricks de tabel in de huidige catalogus op te lossen.
Zie Tabel en weergaveresolutie voor meer informatie over naamomzetting.
Azure Databricks genereert een fout als u een temporal_spec
tabel gebruikt die niet de Delta Lake-indeling heeft.
Voorbeelden
-- 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);
Weergavenaam
Hiermee wordt een weergave geïdentificeerd. De weergave kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.
Syntaxis
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parameters
- schema_name: de gekwalificeerde of niet-gekwalificeerde naam van het schema dat de weergave bevat.
- view_identifier: een id die de naam van de weergave of de weergave-id van een CTE aangeeft.
- ID-component: een toewijzing van constante
STRING
aan een weergavenaam.
Weergaven die zijn gemaakt in hive_metastore
kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.
Voorbeelden
-- 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;
Kolomnaam
Identificeert een kolom in een tabel of weergave. De kolom kan worden gekwalificeerd met een tabel- of weergavenaam of niet-gekwalificeerde met behulp van een eenvoudige id.
Syntaxis
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parameters
- table_name: een gekwalificeerde of niet-gekwalificeerde tabelnaam van de tabel die de kolom bevat.
- view_name: een gekwalificeerde of niet-gekwalificeerde weergavenaam van de weergave die de kolom bevat.
- column_identifier: een id die de naam van de kolom aangeeft.
- ID-component: een toewijzing van constante
STRING
aan een kolomnaam.
De geïdentificeerde kolom moet bestaan in de tabel of weergave.
Azure Databricks ondersteunt een speciale _metadata kolom. Deze pseudokolom van het type struct maakt deel uit van elke tabel en kan worden gebruikt om metagegevensinformatie over de rijen in de tabel op te halen.
Waarschuwing
Als het tabelschema een kolom met de naam _metadata
bevat, retourneren query's de kolom uit de gegevensbron en niet de metagegevens van het bestand. De _metadata
pseudokolom is niet toegankelijk.
Kolomnamen in Delta Lake-tabellen zonder kolomtoewijzingseigenschap ('delta.columnMapping.mode' = 'name'
) mogen de tekens ' '
(spatie), ','
, , ';'
'{'
, '}'
, , '('
, . ')'
'\n'
, en '\t'
'='
.
Kolomnaam in AVRO
tabellen moet beginnen met '_'
of een Unicode-letter (inclusief niet-ASCII-letters) en worden gevolgd door een combinatie van '_'
Unicode-letters en cijfers.
Voorbeelden
-- 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`);
Veldnaam
Identificeert een veld in een struct. Het veld moet worden gekwalificeerd met het pad tot aan de struct die het veld bevat.
Syntaxis
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parameters
- expr: een expressie van het type STRUCT.
- field_identifier: een id die de naam van het veld aangeeft.
- ID-component: een toewijzing van constante
STRING
aan een veldnaam.
Er kan naar een diep genest veld worden verwezen door de veld-id op te geven langs het pad naar de hoofdstruct.
Veldnamen in Delta Lake-tabellen zonder kolomtoewijzingseigenschap ('delta.columnMapping.mode' = 'name'
) mogen de tekens ' '
(spatie), ','
, , '{'
';'
, '}'
, , , . ')'
'('
'\n'
, en '\t'
'='
.
Veldnaam in AVRO
tabellen moet beginnen met '_'
of een Unicode-letter (inclusief niet-ASCII-letters) en worden gevolgd door een combinatie van '_'
Unicode-letters en cijfers.
Voorbeelden
> 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;
Variabelenaam
Identificeert een tijdelijke variabele (sessie).
De variabele kan worden gekwalificeerd met een schemanaam (system.session
of session
) of niet-gekwalificeerde met behulp van een eenvoudige id.
Syntaxis
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parameters
- schema_name:
system.session
ofsession
die alle tijdelijke variabelen bevat. - variable_identifier: een id die de naam van de variabele aangeeft.
Voorbeelden
-- 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;
Functienaam
Identificeert een functie. De functie kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.
Syntaxis
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parameters
- schema_name: een gekwalificeerde of niet-gekwalificeerde schemanaam die de functie bevat.
- function_identifier: een id die de naam van de functie aangeeft.
- ID-component: een toewijzing van constante
STRING
aan een functienaam.
Functies die zijn gemaakt in hive_metastore
kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens bevatten.
Voorbeelden
-- 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;
Parameternaam
Identificeert een parameter in de hoofdtekst van een door de gebruiker gedefinieerde SQL-functie (SQL UDF). De functie kan worden gekwalificeerd met een functie-id of niet-gekwalificeerd met behulp van een eenvoudige id.
Syntaxis
[ function_identifier . ] parameter_identifier
Parameters
- function_identifier: een id die de naam van een functie aangeeft.
- parameter_identifier: een id die de naam van een parameter aangeeft.
Voorbeelden
-- 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`;
Tabelalias
Een tabelreferentie, query, tabelfunctie of een andere vorm van een relatie labelen.
Syntaxis
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parameters
- table_identifier: een id die de naam van de tabel aangeeft.
- column_identifierN: een optionele id die de naam van de kolom aangeeft.
Als u kolom-id's opgeeft, moet het bijbehorende nummer overeenkomen met het aantal kolommen in de overeenkomende relatie.
Als u geen kolom-id's opgeeft, worden hun namen overgenomen van de gelabelde relatie.
Voorbeelden
-- 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 `직원`;
Kolomalias
Hiermee wordt het resultaat van een expressie in een SELECT
lijst gelabeld ter referentie.
Als de expressie een generatorfunctie met tabelwaarden is, geeft de alias de lijst met geproduceerde kolommen een label.
Syntaxis
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parameters
Hoewel kolomaliassen niet uniek hoeven te zijn binnen de selectielijst, is uniekheid een vereiste om te verwijzen naar een alias op naam.
Voorbeelden
-- 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
Referentienaam
Identificeert een referentie voor toegang tot opslag op een externe locatie.
Syntaxis
credential_identifier
Parameters
Voorbeelden
Locatienaam
Identificeert een externe opslaglocatie.
Syntaxis
location_identifier
Parameters
Voorbeelden
`s3-json-data`
s3_json_data
Naam delen
Identificeert een share voor toegang tot gegevens die worden gedeeld door een provider.
Syntaxis
share_identifier
Parameters
Voorbeelden
`public info`
`public-info`
public_info
Providernaam
Identificeert een Delta Sharing-provider.
Syntaxis
provider_identifier
Parameters
-
Een niet-gekwalificeerde id die de provider uniek identificeert.
Voorbeelden
`Good Corp`
`Good-corp`
Good_Corp
Naam van ontvanger
Identificeert een geadresseerde voor een share.
Syntaxis
recipient_identifier
Parameters
Voorbeelden
`Good Corp`
`Good-corp`
Good_Corp
Volumenaam
Identificeert een Unity Catalog-volume. Het volume kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.
Syntaxis
[ schema_name .] volume_identifier
Parameters
- schema_name: een gekwalificeerde of niet-gekwalificeerde schemanaam die het volume bevat.
- volume_identifier: Een niet-gekwalificeerde id waarmee het volume in het schema uniek wordt geïdentificeerd.
Voorbeelden
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume