Nazwy
Dotyczy: Databricks SQL
Databricks Runtime
Identyfikuje różne rodzaje obiektów w usłudze Azure Databricks.
Obowiązują następujące ograniczenia dotyczące wszystkich nazw obiektów w katalogu Unity.
- Nazwy obiektów nie mogą przekraczać 255 znaków.
- Następujące znaki specjalne są niedozwolone:
- Okres (
.
) - Spacja (
- Ukośnik do przodu (
/
) - Wszystkie znaki sterujące ASCII (szesnastkowy 00-1F)
- Znak DELETE (7F w systemie szesnastkowym)
- Okres (
- Unity Catalog przechowuje wszystkie nazwy obiektów w formie małych liter.
- W przypadku odwoływania się do nazw UC w języku SQL należy użyć znaków odwrotnych apostrofów, aby odpowiednio oznaczyć nazwy zawierające znaki specjalne, takie jak łączniki (
-
).
Uwaga
Nazwy kolumn mogą używać znaków specjalnych, ale muszą być zapisane w cudzysłowie odwrotnym we wszystkich poleceniach SQL, gdy używa się znaków specjalnych. Katalog Unity zachowuje wielkość liter nazw kolumn, ale zapytania względem tabel Katalogu Unity są niewrażliwe na wielkość liter.
Nazwa połączenia
Identyfikuje połączenie zagraniczne.
Połączenie obce służy jako link do systemu obcego, takiego jak PostgreSQL
, a następnie może służyć do odwołowania się do katalogów, schematów i tabel.
Składnia
connection_identifier
Parametry
- connection_identifier: identyfikator, który jednoznacznie identyfikuje połączenie.
Przykłady
> CREATE CONNECTION my_postgresql ...;
Nazwa wykazu
Identyfikuje katalog. Wykaz zawiera grupowanie obiektów, które można dalej podzielić na schematy.
Składnia
catalog_identifier
Parametry
- catalog_identifier: identyfikator, który jednoznacznie identyfikuje wykaz.
Przykłady
> 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
Nazwa schematu
Identyfikuje schemat. Schemat zapewnia grupowanie obiektów w wykazie.
Składnia
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parametry
- catalog_name: nazwa istniejącego wykazu.
- schema_identifier: identyfikator, który jednoznacznie identyfikuje schemat.
-
IDENTIFIER klauzula: mapowanie stałej
STRING
na nazwę schematu.
Schematy utworzone w programie hive_metastore
mogą zawierać tylko znaki alfanumeryczne ASCII i podkreślenia (INVALID_SCHEMA_OR_RELATION_NAME).
Przykłady
> 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 `数据库架构`;
Nazwa bazy danych
Chociaż użycie elementu SCHEMA
i DATABASE
jest wymienne, SCHEMA
jest preferowane.
Nazwa tabeli
Identyfikuje obiekt tabeli. Tabelę można kwalifikować za pomocą nazwy schematu lub niekwalifikować przy użyciu prostego identyfikatora.
Składnia
{ [ 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 }
Parametry
schema_name: kwalifikowana lub niekwalifikowana nazwa schematu zawierająca tabelę.
table_identifier: identyfikator określający nazwę tabeli lub table_alias.
file_format: jeden z
json
,csv
,avro
parquet
orc
binaryFile
,text
,delta
(bez uwzględniania wielkości liter).path_to_table: lokalizacja tabeli w systemie plików. Musisz mieć uprawnienia do używania
ANY_FILE
tej składni.IDENTIFIER klauzula: przypisanie stałej
STRING
do nazwy tabeli.temporal_spec: Kiedy używane zostają odniesienia do tabeli Delta w określonym punkcie czasowym lub wersji.
Specyfikację czasową można używać tylko w kontekście zapytania lub SCALANIA PRZY UŻYCIU.
-
@ timestamp_encoding: dodatni literał typu Bigint, który koduje znacznik czasu w formacie
yyyyMMddHHmmssSSS
. - @V wersji: dodatni literał liczbowy identyfikujący wersję tabeli Delta.
-
timestamp_expression: proste wyrażenie, które oblicza znacznik czasu.
timestamp_expressiom
musi być wyrażeniem stałym, choć może zawieraćcurrent_date()
lubcurrent_timestamp()
. - wersja: Liczba całkowita lub ciąg znakowy identyfikujący wersję tabeli Delta.
-
@ timestamp_encoding: dodatni literał typu Bigint, który koduje znacznik czasu w formacie
option_spec: W przypadku użycia, definiuje dyrektywy, które mają być przekazywane do źródła danych, takiego jak poświadczenie do uzyskania dostępu do lokalizacji magazynu lub
'write.split-size'
kontrolowaniaINSERT
zachowania.option_key
Klucz opcji. Klucz może składać się z co najmniej jednego identyfikatora oddzielonego kropką lub literału ciągu.
Klucze opcji muszą być unikatowe, a wielkość liter ma znaczenie.
option_val
Wartość opcji. Stałe wyrażenie typu
BOOLEAN
,STRING
,INTEGER
lubDECIMAL
.
Tabele utworzone w hive_metastore
mogą zawierać tylko znaki alfanumeryczne ASCII i podkreślniki (INVALID_SCHEMA_OR_RELATION_NAME).
Jeśli nazwa jest niekwalifikowana i nie odwołuje się do znanego aliasu tabeli , usługa Azure Databricks najpierw próbuje rozpoznać tabelę w bieżącym schemacie.
Jeśli nazwa jest kwalifikowana przy użyciu schematu, usługa Azure Databricks próbuje rozpoznać tabelę w bieżącym wykazie.
Aby uzyskać więcej informacji na temat rozpoznawania nazw, zobacz Tabela i rozdzielczość.
Usługa Azure Databricks zgłasza błąd, jeśli używasz temporal_spec
dla tabeli, która nie jest w formacie usługi Delta Lake.
Przykłady
-- 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);
Nazwa widoku
Identyfikuje widok. Widok może być kwalifikowany przy użyciu nazwy schematu lub niekwalifikowany przy użyciu prostego identyfikatora.
Składnia
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parametry
- schema_name: kwalifikowana lub niekwalifikowana nazwa schematu, który zawiera widok.
- view_identifier: identyfikator, który określa nazwę widoku lub identyfikator widoku dla CTE.
-
IDENTIFIER klauzula: mapowanie stałej
STRING
na nazwę widoku.
Widoki utworzone w hive_metastore
mogą zawierać tylko znaki alfanumeryczne ASCII i znaki podkreślenia (INVALID_SCHEMA_OR_RELATION_NAME).
Przykłady
-- 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;
Nazwa relacji
Identyfikuje widok lub tabelę. Relacja może być kwalifikowana za pomocą nazwy schematu lub niekwalifikowana przy użyciu prostego identyfikatora.
Składnia
{ table_name | view_name }
Przykłady
-- A back quoted relation name
> SELECT * FROM `Employees`;
-- A relation name without back quotes
> SELECT * FROM employees;
-- A schema qualified relation name
> SELECT * FROM hr.employees;
Nazwa kolumny
Identyfikuje kolumnę w ramach relacji. Kolumna może być kwalifikowana z nazwą relacji lub niekwalifikowana przy użyciu prostego identyfikatora .
Składnia
{ [ relation_name . ] column_identifier |
IDENTIFIER clause }
Parametry
- table_name: kwalifikowana lub niekwalifikowana nazwa tabeli zawierająca kolumnę.
- view_name: kwalifikowana lub niekwalifikowana nazwa widoku zawierającego kolumnę.
- column_identifier: identyfikator określający nazwę kolumny.
-
IDENTIFIER klauzula: mapowanie stałej
STRING
do nazwy kolumny.
Zidentyfikowana kolumna musi istnieć w ramach relacji.
Usługa Azure Databricks obsługuje specjalną kolumnę _metadata. Ta pseudokolumna typu struktura jest częścią każdej tabeli i może być używana do pobierania informacji o metadanych dotyczących wierszy w tabeli.
Ostrzeżenie
Jeśli schemat tabeli zawiera kolumnę o nazwie _metadata
, zapytania będą zwracać kolumnę ze źródła danych, a nie metadane pliku. Pseudokolumna _metadata
nie będzie dostępna.
Nazwy kolumn w tabelach usługi Delta Lake bez właściwości mapowania kolumn ('delta.columnMapping.mode' = 'name'
) nie mogą zawierać znaków ' '
(spacja), ','
, ';'
, '{'
, '}'
'('
, ')'
.
'\n'
, '\t'
i '='
.
Nazwa kolumny w tabelach AVRO
musi zaczynać się od '_'
lub litery Unicode (w tym liter innych niż ASCII), a następnie być połączeniem '_'
, liter i cyfr Unicode.
Przykłady
-- 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`);
Nazwa pola
Identyfikuje pole w obrębie struktury. Pole musi być zidentyfikowane za pomocą ścieżki prowadzącej do struktury zawierającej to pole.
Składnia
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parametry
- wyrażenie: Wyrażenie typu STRUCT.
- field_identifier: identyfikator określający nazwę pola.
-
IDENTIFIER klauzula: mapowanie stałej
STRING
do nazwy pola.
Do głęboko zagnieżdżonego pola można odwoływać się, określając identyfikator pola wzdłuż ścieżki do struktury głównej.
Nazwy pól w tabelach usługi Delta Lake bez właściwości mapowania kolumn ('delta.columnMapping.mode' = 'name'
) nie mogą zawierać znaków ' '
(spacja), ','
, ';'
, '{'
, '}'
, '('
, ')'
.
'\n'
, '\t'
i '='
.
Nazwa pola w tabelach AVRO
musi zaczynać się od '_'
lub litery Unicode (w tym liter innych niż ASCII), a następnie kombinacji '_'
, liter i cyfr Unicode.
Przykłady
> 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;
Nazwa zmiennej
Identyfikuje zmienną tymczasową (sesję).
Zmienna może być kwalifikowana za pomocą nazwy schematu (system.session
lub session
) lub niekwalifikowana przy użyciu prostego identyfikatora.
Składnia
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parametry
-
schema_name:
system.session
lubsession
które zawiera wszystkie zmienne tymczasowe. - variable_identifier: identyfikator określający nazwę zmiennej.
Przykłady
-- 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;
Nazwa funkcji
Identyfikuje funkcję. Funkcja może być kwalifikowana za pomocą nazwy schematu albo niekwalifikowana przy użyciu prostego identyfikatora.
Składnia
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parametry
- schema_name: kwalifikowana lub niekwalifikowana nazwa schematu zawierająca funkcję.
- function_identifier: identyfikator określający nazwę funkcji.
-
IDENTIFIER klauzula: stała
STRING
zmapowana na nazwę funkcji.
Funkcje utworzone w programie hive_metastore
mogą zawierać tylko znaki alfanumeryczne ASCII i podkreślenia.
Przykłady
-- 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;
Nazwa parametru
Identyfikuje parametr w treści funkcji zdefiniowanej przez użytkownika SQL (SQL UDF). Funkcja może być kwalifikowana z użyciem identyfikatora funkcji lub niespecyfikowana z użyciem prostego identyfikatora.
Składnia
[ function_identifier . ] parameter_identifier
Parametry
- function_identifier: identyfikator określający nazwę funkcji.
- parameter_identifier: identyfikator określający nazwę parametru.
Przykłady
-- 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`;
Nazwa etykiety
Identyfikuje etykietę instrukcji złożonej lub instrukcji pętli.
Składnia
label_identifier
Parametry
- label_identifier: identyfikator określający nazwę etykiety.
Przykłady
-- Execute a loop named `label` and leave it right away.
> BEGIN
label: LOOP
LEAVE label;
END LOOP label;
END;
Nazwa warunku
Identyfikuje zdefiniowaną przez system klasę błędów lub zdefiniowany przez użytkownika warunek zdefiniowany w instrukcji złożonej .
Składnia
condition_identifier
Parametry
- condition_identifier: identyfikator określający nazwę warunku.
Przykłady
-- Declare an exit handler for a DIVIDE_BY_ZERO condition
BEGIN
DECLARE a INT DEFAULT 1;
DECLARE b INT DEFAULT 5;
DECLARE EXIT HANDLER FOR DIVIDE_BY_ZERO
BEGIN
VALUES (15);
END;
SET a = 10;
SET a = b / 0;
VALUES (a);
END;
15
Alias tabeli
Etykietuje odwołanie do tabeli, zapytanie, funkcję tabeli lub inną formę relacji.
Składnia
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parametry
- table_identifier: identyfikator określający nazwę tabeli.
- column_identifierN: opcjonalny identyfikator określający nazwę kolumny.
Jeśli podasz identyfikatory kolumn, ich liczba musi być zgodna z liczbą kolumn w dopasowanej relacji.
Jeśli nie podasz identyfikatorów kolumn, ich nazwy są dziedziczone z relacji oznaczonej etykietą.
Przykłady
-- 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 kolumny
Oznacza wynik wyrażenia jako na liście SELECT
w celach referencyjnych.
Jeśli wyrażenie jest funkcją generującą wartości tabeli , alias oznacza listę kolumn utworzonych.
Składnia
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parametry
- column_identifier: identyfikator określający nazwę kolumny.
Chociaż aliasy kolumn nie muszą być unikatowe na liście wyboru, unikatowość jest wymagana do odwołowania się do aliasu według nazwy.
Przykłady
-- 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
Nazwa sortowania
Identyfikuje sortowanie dla kolumny lub wyrażenia.
Składnia
collation_identifier
Parametry
- collation_identifier: identyfikator określający nazwę sortowania.
Aby uzyskać listę obsługiwanych sortowań, zobacz Obsługiwane sortowania. Aby uzyskać szczegółowe informacje na temat sortowania, zobacz Sortowanie.
Przykłady
> SELECT 'hello' COLLATE UNICODE_CI;
hello
Nazwa poświadczenia
Identyfikuje dane uwierzytelniające do uzyskania dostępu do magazynu w zewnętrznej lokalizacji lub usług w chmurze za pomocą SDK dostawcy.
Składnia
credential_identifier
Parametry
- credential_identifier: niespecjalizowany identyfikator, który jednoznacznie identyfikuje poświadczenie.
Przykłady
`my_storage_cred`
my_storage_cred
Nazwa lokalizacji
Identyfikuje zewnętrzną lokalizację magazynu.
Składnia
location_identifier
Parametry
- location_identifier: niekwalifikowany identyfikator, który jednoznacznie identyfikuje lokalizację.
Przykłady
`s3-json-data`
s3_json_data
Nazwa udostępniania
Identyfikuje zasób w celu uzyskania dostępu do danych udostępnianych przez dostawcę.
Składnia
share_identifier
Parametry
- share_identifier: niekwalifikowany identyfikator, który jednoznacznie identyfikuje udział.
Przykłady
`public info`
`public-info`
public_info
Nazwa dostawcy
Identyfikuje dostawcę Delta Sharing.
Składnia
provider_identifier
Parametry
-
Niekwalifikowany identyfikator, który jednoznacznie identyfikuje dostawcę.
Przykłady
`Good Corp`
`Good-corp`
Good_Corp
Imię i nazwisko adresata
Identyfikuje adresata udziału.
Składnia
recipient_identifier
Parametry
- recipient_identifier: niekwalifikowany identyfikator, który jednoznacznie identyfikuje adresata.
Przykłady
`Good Corp`
`Good-corp`
Good_Corp
Nazwa czystego pokoju
Identyfikuje sterylne pomieszczenie dla grupy współpracowników.
Składnia
clean_room_identifier
Parametry
- clean_room_identifier: niekwalifikowany identyfikator, który jednoznacznie określa czyste pomieszczenie w magazynach metadanych współpracowników.
Przykłady
`Clean-Room`
Clean_Room
Nazwa woluminu
Identyfikuje wolumin katalogu Unity. Wolumin może być kwalifikowany z nazwą schematu lub niekwalifikowany przy użyciu prostego identyfikatora.
Składnia
[ schema_name .] volume_identifier
Parametry
- schema_name: kwalifikowana lub niekwalifikowana nazwa schematu zawierająca wolumin.
- volume_identifier: niekwalifikowany identyfikator, który jednoznacznie identyfikuje wolumin w schemacie.
Przykłady
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume