Namn
Gäller för: Databricks SQL Databricks Runtime
Identifierar olika typer av objekt i Azure Databricks.
Följande begränsningar gäller för alla objektnamn i Unity Catalog:
- Objektnamn får inte överstiga 255 tecken.
- Följande specialtecken tillåts inte:
- Period (
.
) - Blanksteg (
- Snedstreck (
/
) - Alla ASCII-kontrolltecken (00–1F hex)
- Tecknet DELETE (7F hex)
- Period (
- Unity Catalog lagrar alla objektnamn som gemener.
- När du refererar till UC-namn i SQL måste du använda backticks för att undkomma namn som innehåller specialtecken som bindestreck (
-
).
Kommentar
Kolumnnamn kan använda specialtecken, men namnet måste tas bort med backticks i alla SQL-instruktioner om specialtecken används. Unity Catalog bevarar kolumnnamnshöljet, men frågor mot Unity Catalog-tabeller är skiftlägeskänsliga.
Anslutningens namn
Identifierar en extern anslutning.
En extern anslutning fungerar som en länk till ett sekundärt system, till exempel PostgreSQL
och kan sedan användas för att referera till dess kataloger, scheman och tabeller.
Syntax
connection_identifier
Parametrar
Exempel
> CREATE CONNECTION my_postgresql ...;
Katalognamn
Identifierar en katalog. En katalog innehåller en gruppering av objekt som kan delas upp ytterligare i scheman.
Syntax
catalog_identifier
Parametrar
Exempel
> 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
Schemanamn
Identifierar ett schema. Ett schema innehåller en gruppering av objekt i en katalog.
Syntax
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parametrar
- catalog_name: Namnet på en befintlig katalog.
- schema_identifier: En identifierare som unikt identifierar schemat.
- IDENTIFIER-sats: En mappning av konstanten
STRING
till ett schemanamn.
Scheman som skapas i hive_metastore
får bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME).
Exempel
> 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 `数据库架构`;
Databasnamn
En synonym för schemanamn.
Även om användning av SCHEMA
, och DATABASE
är utbytbar, SCHEMA
föredras.
Tabellnamn
Identifierar ett tabellobjekt. Tabellen kan kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.
Syntax
{ [ 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 )
Parametrar
schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller tabellen.
table_identifier: En identifierare som anger namnet på tabellen eller table_alias.
file_format: En av
json
,csv
,avro
,parquet
,orc
,binaryFile
, ,text
(delta
skiftlägesokänslig).path_to_table: Platsen för tabellen i filsystemet. Du måste ha
ANY_FILE
behörighet att använda den här syntaxen.IDENTIFIER-sats: En mappning av konstanten
STRING
till ett tabellnamn.temporal_spec: När den används refererar till en Delta-tabell vid den angivna tidpunkten eller versionen.
Du kan endast använda en temporal specifikation i kontexten för en fråga eller en MERGE USING.
- @ timestamp_encoding: En positiv Bigint-literal som kodar en tidsstämpel i
yyyyMMddHHmmssSSS
format. - @V version: En positiv heltal som identifierar versionen av Delta-tabellen.
- timestamp_expression: Ett enkelt uttryck som utvärderas till en TIDSSTÄMPEL.
timestamp_expressiom
måste vara ett konstant uttryck, men kan innehållacurrent_date()
ellercurrent_timestamp()
. - version: En heltalsliteral eller strängliteral som identifierar versionen av Delta-tabellen.
- @ timestamp_encoding: En positiv Bigint-literal som kodar en tidsstämpel i
credential_spec
Du kan använda en tillämplig autentiseringsuppgift för att få åtkomst till en
path_to_table
som inte är inbäddad på en extern plats.-
Namnet på autentiseringsuppgifterna som används för att komma åt lagringsplatsen.
-
Tabeller som skapas i hive_metastore
får bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME).
Om namnet är okvalificerat och inte refererar till ett känt tabellalias försöker Azure Databricks först matcha tabellen i det aktuella schemat.
Om namnet är kvalificerat med ett schema försöker Azure Databricks matcha tabellen i den aktuella katalogen.
Mer information om namnmatchning finns i Tabell och visa lösning .
Azure Databricks genererar ett fel om du använder en temporal_spec
för en tabell som inte är i Delta Lake-format.
Exempel
-- 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);
Vynamn
Identifierar en vy. Vyn kan kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.
Syntax
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parametrar
- schema_name: Det kvalificerade eller okvalificerade namnet på schemat som innehåller vyn.
- view_identifier: En identifierare som anger namnet på vyn eller vyidentifieraren för en CTE.
- IDENTIFIER-sats: En mappning av konstanten
STRING
till ett visningsnamn.
Vyer som skapas i hive_metastore
kan bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME).
Exempel
-- 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;
Kolumnnamn
Identifierar en kolumn i en tabell eller vy. Kolumnen kan kvalificeras med ett tabell- eller vynamn eller okvalificerad med hjälp av en enkel identifierare.
Syntax
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parametrar
- table_name: Ett kvalificerat eller okvalificerat tabellnamn för tabellen som innehåller kolumnen.
- view_name: Ett kvalificerat eller okvalificerat vynamn för vyn som innehåller kolumnen.
- column_identifier: En identifierare som anger namnet på kolumnen.
- IDENTIFIER-sats: En mappning av konstanten
STRING
till ett kolumnnamn.
Den identifierade kolumnen måste finnas i tabellen eller vyn.
Azure Databricks stöder en särskild _metadata kolumn. Den här pseudokolumnen av typen struct är en del av varje tabell och kan användas för att hämta metadatainformation om raderna i tabellen.
Varning
Om tabellschemat innehåller en kolumn med namnet _metadata
returnerar frågor kolumnen från datakällan och inte filmetadata. Pseudokolumnen _metadata
är inte tillgänglig.
Kolumnnamn i Delta Lake-tabeller utan kolumnmappningsegenskap ('delta.columnMapping.mode' = 'name'
) får inte innehålla tecknen (blanksteg ' '
), ','
, ';'
, '{'
, '}'
, '('
, ')'
. '\n'
, '\t'
och '='
.
Kolumnnamn i AVRO
tabeller måste börja med '_'
eller en Unicode-bokstav (inklusive icke-ASCII-bokstäver) och följas av en kombination av '_'
, Unicode-bokstäver och siffror.
Exempel
-- 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`);
Fältnamn
Identifierar ett fält i en struct. Fältet måste vara kvalificerat med sökvägen upp till den struct som innehåller fältet.
Syntax
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parametrar
- expr: Ett uttryck av typen STRUCT.
- field_identifier: En identifierare som anger namnet på fältet.
- IDENTIFIER-sats: En mappning av konstanten
STRING
till ett fältnamn.
Du kan referera till ett djupt kapslat fält genom att ange fältidentifieraren längs sökvägen till rot-structen.
Fältnamn i Delta Lake-tabeller utan kolumnmappningsegenskap ('delta.columnMapping.mode' = 'name'
) får inte innehålla tecknen (blanksteg ' '
), ','
, ';'
, '{'
, '}'
, '('
, ')'
. '\n'
, '\t'
och '='
.
Fältnamn i AVRO
tabeller måste börja med '_'
eller en Unicode-bokstav (inklusive icke-ASCII-bokstäver) och följas av en kombination av '_'
, Unicode-bokstäver och siffror.
Exempel
> 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;
Variabelnamn
Identifierar en tillfällig variabel (session).
Variabeln kan kvalificeras med ett schemanamn (system.session
eller session
), eller okvalificerad med hjälp av en enkel identifierare.
Syntax
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parametrar
- schema_name:
system.session
ellersession
som innehåller alla temporära variabler. - variable_identifier: En identifierare som anger namnet på variabeln.
Exempel
-- 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;
Funktionsnamn
Identifierar en funktion. Funktionen kan kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.
Syntax
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parametrar
- schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller funktionen.
- function_identifier: En identifierare som anger namnet på funktionen.
- IDENTIFIER-sats: En mappning av konstanten
STRING
till ett funktionsnamn.
Funktioner som skapas i hive_metastore
kan bara innehålla alfanumeriska ASCII-tecken och understreck.
Exempel
-- 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;
Parameternamn
Identifierar en parameter i brödtexten för en SQL-användardefinierad funktion (SQL UDF). Funktionen kan kvalificeras med en funktionsidentifierare eller okvalificerad med hjälp av en enkel identifierare.
Syntax
[ function_identifier . ] parameter_identifier
Parametrar
- function_identifier: En identifierare som anger namnet på en funktion.
- parameter_identifier: En identifierare som anger namnet på en parameter.
Exempel
-- 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`;
Tabellalias
Etiketterar en tabellreferens, fråga, tabellfunktion eller annan form av en relation.
Syntax
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parametrar
- table_identifier: En identifierare som anger namnet på tabellen.
- column_identifierN: En valfri identifierare som anger namnet på kolumnen.
Om du anger kolumnidentifierare måste deras nummer matcha antalet kolumner i den matchade relationen.
Om du inte anger kolumnidentifierare ärvs deras namn från den märkta relationen.
Exempel
-- 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 `직원`;
Kolumnalias
Etiketter resultatet av ett uttryck i en SELECT
lista som referens.
Om uttrycket är en tabellvärdegeneratorfunktion etiketterar aliaset listan över kolumner som skapas.
Syntax
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parametrar
Kolumnalias behöver inte vara unika i urvalslistan, men unikhet är ett krav för att referera till ett alias efter namn.
Exempel
-- 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
Namn på autentiseringsuppgifter
Identifierar en autentiseringsuppgift för åtkomst till lagring på en extern plats eller molntjänster med provider-SDK:er.
Syntax
credential_identifier
Parametrar
- credential_identifier: En okvalificerad identifierare som unikt identifierar autentiseringsuppgifterna.
Exempel
`my_storage_cred`
my_storage_cred
Platsnamn
Identifierar en extern lagringsplats.
Syntax
location_identifier
Parametrar
Exempel
`s3-json-data`
s3_json_data
Resursnamn
Identifierar en resurs för åtkomst till data som delas av en provider.
Syntax
share_identifier
Parametrar
Exempel
`public info`
`public-info`
public_info
Providernamn
Identifierar en deltadelningsprovider.
Syntax
provider_identifier
Parametrar
-
En okvalificerad identifierare som unikt identifierar providern.
Exempel
`Good Corp`
`Good-corp`
Good_Corp
Mottagarens namn
Identifierar en mottagare för en resurs.
Syntax
recipient_identifier
Parametrar
Exempel
`Good Corp`
`Good-corp`
Good_Corp
Namn på rent rum
Identifierar ett rent rum för en uppsättning medarbetare.
Syntax
clean_room_identifier
Parametrar
- clean_room_identifier: En okvalificerad identifierare som unikt anger det rena rummet i de medverkandes metaarkiv.
Exempel
`Clean-Room`
Clean_Room
Volymnamn
Identifierar en Unity Catalog-volym. Volymen kan kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.
Syntax
[ schema_name .] volume_identifier
Parametrar
- schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller volymen.
- volume_identifier: En okvalificerad identifierare som unikt identifierar volymen i schemat.
Exempel
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume