Názvy
Platí pro: Databricks SQL Databricks Runtime
Identifikuje různé druhy objektů v Azure Databricks.
Pro všechny názvy objektů v katalogu Unity platí následující omezení:
- Názvy objektů nesmí překročit 255 znaků.
- Následující speciální znaky nejsou povoleny:
- Období (
.
) - Mezera (
- Lomítko (
/
) - Všechny řídicí znaky ASCII (šestnáctkové 00–1F)
- Znak DELETE (šestnáctkový 7F)
- Období (
- Katalog Unity ukládá všechny názvy objektů malými písmeny.
- Při odkazování na názvy UC v SQL je nutné použít backticks k řídicím názvům, které obsahují speciální znaky, jako jsou spojovníky (
-
).
Poznámka:
Názvy sloupců můžou používat speciální znaky, ale pokud se použijí speciální znaky, musí být název uchycený pomocí zpětných znamétek ve všech příkazech SQL. Katalog Unity zachovává velikost písmen názvů sloupců, ale dotazy na tabulky katalogu Unity nerozlišují malá a velká písmena.
Název připojení
Identifikuje cizí připojení.
Cizí připojení slouží jako propojení s cizím systémem, jako PostgreSQL
je například odkaz na jeho katalogy, schémata a tabulky.
Syntaxe
connection_identifier
Parametry
Příklady
> CREATE CONNECTION my_postgresql ...;
Název katalogu
Identifikuje katalog. Katalog poskytuje seskupení objektů, které lze dále rozdělit do schémat.
Syntaxe
catalog_identifier
Parametry
Příklady
> 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
Název schématu
Identifikuje schéma. Schéma poskytuje seskupení objektů v katalogu.
Syntaxe
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parametry
- catalog_name: Název existujícího katalogu.
- schema_identifier: Identifikátor, který jednoznačně identifikuje schéma.
- Klauzule IDENTIFIER: Mapování konstanty
STRING
na název schématu.
Schémata vytvořená v hive_metastore
můžou obsahovat pouze alfanumerické znaky a podtržítka ASCII (INVALID_SCHEMA_OR_RELATION_NAME).
Příklady
> 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 `数据库架构`;
Název databáze
Synonymum pro název schématu.
Zatímco použití SCHEMA
a DATABASE
je zaměnitelné, SCHEMA
je upřednostňované.
Název tabulky
Identifikuje objekt tabulky. Tabulku lze kvalifikovat názvem schématu nebo nekvalifikovaným pomocí jednoduchého identifikátoru.
Syntaxe
{ [ 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 )
Parametry
schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje tabulku.
table_identifier: Identifikátor, který určuje název tabulky nebo table_alias.
file_format: Jeden z
json
,csv
,orc
parquet
binaryFile
avro
,text
delta
(nerozlišuje velká a malá písmena).path_to_table: Umístění tabulky v systému souborů. K použití této syntaxe musíte mít
ANY_FILE
oprávnění.Klauzule IDENTIFIER: Mapování konstanty
STRING
na název tabulky.temporal_spec: Při použití odkazuje na tabulku Delta v zadaném bodu v čase nebo verzi.
Dočasnou specifikaci můžete použít pouze v kontextu dotazu nebo funkce MERGE USING.
- @ timestamp_encoding: Pozitivní literál Bigint, který kóduje časové razítko ve
yyyyMMddHHmmssSSS
formátu. - @V verze: Kladné celočíselné literály identifikující verzi tabulky Delta.
- timestamp_expression: Jednoduchý výraz, který se vyhodnotí jako TIMESTAMP.
timestamp_expressiom
musí být konstantní výraz, ale může obsahovatcurrent_date()
nebocurrent_timestamp()
. - version: Celočíselná literála nebo řetězcový literál identifikující verzi tabulky Delta.
- @ timestamp_encoding: Pozitivní literál Bigint, který kóduje časové razítko ve
credential_spec
K získání přístupu k externímu
path_to_table
umístění, který není vložený do externího umístění, můžete použít příslušné přihlašovací údaje.-
Název přihlašovacích údajů použitých pro přístup k umístění úložiště.
-
Tabulky vytvořené v hive_metastore
sadě MŮŽOU obsahovat pouze alfanumerické znaky a podtržítka (INVALID_SCHEMA_OR_RELATION_NAME).
Pokud je název nekvalifikovaný a neodkazuje na známý alias tabulky, Azure Databricks se nejprve pokusí přeložit tabulku v aktuálním schématu.
Pokud je název kvalifikovaný pomocí schématu, Azure Databricks se pokusí přeložit tabulku v aktuálním katalogu.
Další informace o překladu ip adres najdete v tématu Tabulka a zobrazení rozlišení .
Azure Databricks vyvolá chybu, pokud použijete temporal_spec
tabulku, která není ve formátu Delta Lake.
Příklady
-- 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);
Název zobrazení
Identifikuje zobrazení. Zobrazení může být kvalifikované s názvem schématu nebo nekvalifikovaným pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje zobrazení.
- view_identifier: Identifikátor, který určuje název zobrazení nebo identifikátor zobrazení CTE.
- Klauzule IDENTIFIER: Mapování konstanty
STRING
na název zobrazení.
Zobrazení vytvořená v hive_metastore
sadě můžou obsahovat pouze alfanumerické znaky a podtržítka (INVALID_SCHEMA_OR_RELATION_NAME).
Příklady
-- 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;
Název sloupce
Identifikuje sloupec v tabulce nebo zobrazení. Sloupec může být kvalifikovaný s názvem tabulky nebo zobrazení nebo nekvalifikovaný pomocí jednoduchého identifikátoru.
Syntaxe
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parametry
- table_name: Kvalifikovaný nebo nekvalifikovaný název tabulky obsahující sloupec.
- view_name: Kvalifikovaný nebo nekvalifikovaný název zobrazení zobrazení obsahujícího sloupec.
- column_identifier: Identifikátor, který určuje název sloupce.
- Klauzule IDENTIFIER: Mapování konstanty
STRING
na název sloupce.
Identifikovaný sloupec musí existovat v tabulce nebo zobrazení.
Azure Databricks podporuje speciální sloupec _metadata. Tento pseudosloupce struktury typu je součástí každé tabulky a lze ji použít k načtení informací o metadatech o řádcích v tabulce.
Upozorňující
Pokud schéma tabulky obsahuje sloupec s názvem _metadata
, dotazy vrátí sloupec ze zdroje dat, nikoli metadata souboru. Pseudosloupce _metadata
nebude přístupný.
Názvy sloupců v tabulkách Delta Lake bez vlastnosti mapování sloupců ('delta.columnMapping.mode' = 'name'
) nesmí obsahovat znaky ' '
(mezera), ','
, ';'
, '{'
, '}'
, , '('
. ')'
. '\n'
, '\t'
a '='
.
Název sloupce v AVRO
tabulkách musí začínat písmenem '_'
unicode (včetně písmen jiného '_'
typu než ASCII) a za ním musí následovat kombinace písmen a číslic Unicode.
Příklady
-- 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`);
Název pole
Identifikuje pole v rámci struktury. Pole musí být kvalifikované s cestou až do struktury obsahující pole.
Syntaxe
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parametry
- výraz: Výraz typu STRUCT.
- field_identifier: Identifikátor, který určuje název pole.
- Klauzule IDENTIFIER: Mapování konstanty
STRING
na název pole.
Na hluboce vnořené pole lze odkazovat zadáním identifikátoru pole podél cesty ke kořenové struktuře.
Názvy polí v tabulkách Delta Lake bez vlastnosti mapování sloupců ('delta.columnMapping.mode' = 'name'
) nesmí obsahovat znaky ' '
(mezera), ','
, ';'
, '{'
, '}'
, , '('
. ')'
. '\n'
, '\t'
a '='
.
Název pole v AVRO
tabulkách musí začínat písmenem '_'
nebo písmenem Unicode (včetně písmen jiného '_'
typu než ASCII) a za ním následuje kombinace písmen unicode a číslic.
Příklady
> 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;
Název proměnné
Identifikuje dočasnou proměnnou (relaci).
Proměnnou lze kvalifikovat pomocí názvu schématu (system.session
nebo session
) nebo nekvalifikované pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parametry
- schema_name:
system.session
nebosession
obsahuje všechny dočasné proměnné. - variable_identifier: Identifikátor, který určuje název proměnné.
Příklady
-- 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;
Název funkce
Identifikuje funkci. Funkce může být kvalifikovaná s názvem schématu nebo nekvalifikovaná pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje funkci.
- function_identifier: Identifikátor, který určuje název funkce.
- Klauzule IDENTIFIER: Mapování konstanty
STRING
na název funkce.
Funkce vytvořené v hive_metastore
sadě MŮŽOU obsahovat pouze alfanumerické znaky a podtržítka ASCII.
Příklady
-- 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;
Název parametru
Identifikuje parametr v těle uživatelem definované funkce SQL (SQL UDF). Funkce může být kvalifikovaná pomocí identifikátoru funkce nebo nekvalifikovaná pomocí jednoduchého identifikátoru.
Syntaxe
[ function_identifier . ] parameter_identifier
Parametry
- function_identifier: Identifikátor, který určuje název funkce.
- parameter_identifier: Identifikátor, který určuje název parametru.
Příklady
-- 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 tabulky
Označí odkaz na tabulku, dotaz, funkci tabulky nebo jinou formu relace.
Syntaxe
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parametry
- table_identifier: Identifikátor, který určuje název tabulky.
- column_identifierN: Volitelný identifikátor, který určuje název sloupce.
Pokud zadáte identifikátory sloupců, musí jejich číslo odpovídat počtu sloupců ve shodném vztahu.
Pokud nezadáte identifikátory sloupců, zdědí se jejich názvy z označené relace.
Příklady
-- 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 sloupce
Označí výsledek výrazu v SELECT
seznamu pro referenci.
Pokud je výraz funkcí generátoru hodnotných tabulek, alias označuje seznam vytvořených sloupců.
Syntaxe
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parametry
I když aliasy sloupců nemusí být v seznamu výběru jedinečné, jedinečnost je požadavek na odkaz na alias podle názvu.
Příklady
-- 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
Název přihlašovacího údaje
Identifikuje přihlašovací údaje pro přístup k úložišti v externím umístění nebo v cloudových službách pomocí sad SDK zprostředkovatele.
Syntaxe
credential_identifier
Parametry
- credential_identifier: Nekvalifikovaný identifikátor, který jednoznačně identifikuje přihlašovací údaje.
Příklady
`my_storage_cred`
my_storage_cred
Název umístění
Identifikuje umístění externího úložiště.
Syntaxe
location_identifier
Parametry
Příklady
`s3-json-data`
s3_json_data
Název sdílené složky
Identifikuje sdílenou složku pro přístup k datům sdíleným poskytovatelem.
Syntaxe
share_identifier
Parametry
Příklady
`public info`
`public-info`
public_info
Název poskytovatele
Identifikuje zprostředkovatele rozdílového sdílení.
Syntaxe
provider_identifier
Parametry
-
Nekvalifikovaný identifikátor, který jednoznačně identifikuje poskytovatele.
Příklady
`Good Corp`
`Good-corp`
Good_Corp
Jméno příjemce
Identifikuje příjemce sdílené složky.
Syntaxe
recipient_identifier
Parametry
Příklady
`Good Corp`
`Good-corp`
Good_Corp
Název čisté místnosti
Identifikuje čistou místnost pro sadu spolupracovníků.
Syntaxe
clean_room_identifier
Parametry
- clean_room_identifier: Nekvalifikovaný identifikátor, který jednoznačně určuje čistou místnost v metastorech spolupracovníků.
Příklady
`Clean-Room`
Clean_Room
Název svazku
Identifikuje svazek katalogu Unity. Svazek může být kvalifikovaný s názvem schématu nebo nekvalifikovaný pomocí jednoduchého identifikátoru.
Syntaxe
[ schema_name .] volume_identifier
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje svazek.
- volume_identifier: Nekvalifikovaný identifikátor, který jednoznačně identifikuje svazek v rámci schématu.
Příklady
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume