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 wykazie aparatu 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 szesnastkowy 00-1F)
- Znak DELETE (szesnastkowy 7F)
- Okres (
- Wykaz aparatu Unity przechowuje wszystkie nazwy obiektów jako małe litery.
- W przypadku odwoływania się do nazw UC w języku SQL należy użyć backticksów, aby użyć nazw ucieczki zawierających znaki specjalne, takie jak łączniki (
-
).
Uwaga
Nazwy kolumn mogą używać znaków specjalnych, ale nazwa musi zostać uniknięta z backticks we wszystkich instrukcjach SQL, jeśli są używane znaki specjalne. Wykaz aparatu Unity zachowuje wielkość liter nazw kolumn, ale zapytania względem tabel wykazu aparatu Unity są bez uwzględniania wielkości liter.
Nazwa połączenia
Identyfikuje połączenie obce.
Połączenie obce służy jako link do systemu obcego, takiego jak PostgreSQL
i może następnie służyć do odwołowania się do katalogów, schematów i tabel.
Składnia
connection_identifier
Parametry
Przykłady
> CREATE CONNECTION my_postgresql ...;
Nazwa wykazu
Identyfikuje wykaz. Wykaz zawiera grupowanie obiektów, które można dalej podzielić na schematy.
Składnia
catalog_identifier
Parametry
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.
-
Klauzula IDENTIFIER: 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 zakwalifikować przy użyciu nazwy schematu lub niekwalifikowanej 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.Klauzula IDENTIFIER: mapowanie stałej
STRING
na nazwę tabeli.temporal_spec: w przypadku użycia odwołania do tabeli delty w określonym punkcie w czasie lub wersji.
Specyfikację czasową można używać tylko w kontekście zapytania lub SCALANIA PRZY UŻYCIU.
-
@ timestamp_encoding: dodatni literał Bigint, który koduje znacznik czasu w
yyyyMMddHHmmssSSS
formacie. - @V wersja: dodatni literał liczby całkowitej identyfikujący wersję tabeli delty.
-
timestamp_expression: proste wyrażenie, które oblicza znacznik czasu.
timestamp_expressiom
musi być wyrażeniem stałym, ale może zawieraćcurrent_date()
wartość lubcurrent_timestamp()
. - version: literał całkowity lub literał ciągu identyfikujący wersję tabeli delty.
-
@ timestamp_encoding: dodatni literał Bigint, który koduje znacznik czasu w
option_spec: w przypadku użycia dyrektyw definiującech, które mają być przekazywane do źródła danych, takiego jak poświadczenie w celu 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 i uwzględniane są wielkość liter.
option_val
Wartość opcji. Stałe wyrażenie typu
BOOLEAN
,STRING
,INTEGER
lubDECIMAL
.
Tabele utworzone w programie hive_metastore
mogą zawierać tylko znaki alfanumeryczne ASCII i podkreślenia (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 Temat Tabela i wyświetlanie rozpoznawania nazw.
Usługa Azure Databricks zgłasza błąd, jeśli używasz temporal_spec
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żna zakwalifikować przy użyciu nazwy schematu lub niekwalifikowanego przy użyciu prostego identyfikatora.
Składnia
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parametry
- schema_name: kwalifikowana lub niekwalifikowana nazwa schematu zawierającego widok.
- view_identifier: identyfikator określający nazwę widoku lub identyfikator widoku CTE.
-
Klauzula IDENTIFIER: mapowanie stałej
STRING
na nazwę widoku.
Widoki utworzone w programie hive_metastore
mogą zawierać tylko znaki alfanumeryczne ASCII i 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 kolumny
Identyfikuje kolumnę w tabeli lub widoku. Kolumnę można zakwalifikowaćprzy użyciu nazwy tabeli lub widoku albo bez kwalifikacji przy użyciu prostego identyfikatora.
Składnia
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parametry
- table_name: kwalifikowana lub niekwalifikowana nazwa tabeli tabeli zawierającej kolumnę.
- view_name: kwalifikowana lub niekwalifikowana nazwa widoku widoku zawierającego kolumnę.
- column_identifier: identyfikator określający nazwę kolumny.
-
Klauzula IDENTIFIER: mapowanie stałej
STRING
na nazwę kolumny.
Zidentyfikowana kolumna musi istnieć w tabeli lub widoku.
Usługa Azure Databricks obsługuje specjalną kolumnę _metadata. Ta pseudokolumna struktury typu jest częścią każdej tabeli i może służyć 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 ' '
(spacji), ','
, , ';'
'{'
, '}'
, '('
, . ')'
'\n'
, '\t'
i '='
.
Nazwa kolumny w AVRO
tabelach musi zaczynać się od '_'
litery Unicode (w tym liter innych niż ASCII) i być po nim kombinacja '_'
liter Unicode i cyfr.
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ć kwalifikowane ze ścieżką do struktury zawierającej pole.
Składnia
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parametry
- wyrażenie: wyrażenie typu STRUCT.
- field_identifier: identyfikator określający nazwę pola.
-
Klauzula IDENTIFIER: mapowanie stałej
STRING
na nazwę 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 ' '
(spacji), ','
, , ';'
'{'
, '}'
, , . '('
')'
'\n'
, '\t'
i '='
.
Nazwa pola w AVRO
tabelach musi zaczynać się od '_'
lub litery Unicode (w tym liter innych niż ASCII) i być zgodne z kombinacją '_'
liter Unicode i cyfr.
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ę).
Zmienną można zakwalifikować przy użyciu nazwy schematu (system.session
lub session
), lub niekwalifikowanej przy użyciu prostego identyfikatora.
Składnia
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parametry
-
schema_name:
system.session
lubsession
który 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ę. Funkcję można zakwalifikować przy użyciu nazwy schematu lub niekwalifikowanej 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.
-
Klauzula IDENTIFIER: mapowanie stałej
STRING
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). Funkcję można zakwalifikować za pomocą identyfikatora funkcji lub bez kwalifikacji przy użyciu 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`;
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
Etykietuje wynik wyrażenia na liście do celów referencyjnych SELECT
.
Jeśli wyrażenie jest funkcją generatora wartości tabeli, alias etykietuje listę utworzonych kolumn.
Składnia
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parametry
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 sortowania, 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 poświadczenia dostępu do magazynu w lokalizacji zewnętrznej lub usługach w chmurze za pomocą zestawów SDK dostawcy.
Składnia
credential_identifier
Parametry
- credential_identifier: niekwalifikowany identyfikator, który jednoznacznie identyfikuje poświadczenia.
Przykłady
`my_storage_cred`
my_storage_cred
Nazwa lokalizacji
Identyfikuje zewnętrzną lokalizację magazynu.
Składnia
location_identifier
Parametry
Przykłady
`s3-json-data`
s3_json_data
Nazwa udziału
Identyfikuje udział w celu uzyskania dostępu do danych udostępnionych przez dostawcę.
Składnia
share_identifier
Parametry
Przykłady
`public info`
`public-info`
public_info
Nazwa dostawcy
Identyfikuje dostawcę udostępniania różnicowego.
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
Przykłady
`Good Corp`
`Good-corp`
Good_Corp
Nazwa czystego pokoju
Identyfikuje czysty pokój dla zestawu 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 wykazu aparatu Unity. Wolumin można zakwalifikować przy użyciu nazwy schematu lub niekwalifikowanego 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