Nevek
A következőkre vonatkozik: Databricks SQL Databricks Runtime
Különböző típusú objektumokat azonosít az Azure Databricksben.
A Unity Catalog összes objektumnevére az alábbi korlátozások vonatkoznak:
- Az objektumnevek legfeljebb 255 karakter hosszúságúak lehetnek.
- A következő speciális karakterek nem engedélyezettek:
- Időszak (
.
) - Szóköz (
- Perjel (
/
) - Minden ASCII vezérlőkarakterek (00-1F hexa)
- A DELETE karakter (7F hexa)
- Időszak (
- A Unity Catalog az összes objektumnevet kisbetűsként tárolja.
- Ha UC-nevekre hivatkozik az SQL-ben, akkor a speciális karaktereket, például kötőjeleket (
-
kötőjeleket) tartalmazó nevek feloldásához háttértitkokat kell használnia.
Feljegyzés
Az oszlopnevek speciális karaktereket is használhatnak, de ha speciális karaktereket használnak, a nevet minden SQL-utasításban háttérrel kell megszűrni. A Unity Catalog megőrzi az oszlopnévházat, de a Unity Catalog-táblák lekérdezései nem érzéketlenek.
Kapcsolat neve
Azonosítja a külső kapcsolatot.
A külső kapcsolatok egy idegen rendszerre mutató hivatkozásként szolgálnak, például PostgreSQL
a katalógusokra, sémákra és táblákra való hivatkozásra.
Syntax
connection_identifier
Paraméterek
Példák
> CREATE CONNECTION my_postgresql ...;
Katalógus neve
Katalógust azonosít. A katalógus olyan objektumok csoportosítását biztosítja, amelyek további sémákra oszthatók.
Syntax
catalog_identifier
Paraméterek
Példák
> 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
Séma neve
Egy sémát azonosít. A séma objektumcsoportokat biztosít egy katalógusban.
Syntax
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Paraméterek
- catalog_name: Egy meglévő katalógus neve.
- schema_identifier: A sémát egyedileg azonosító azonosító.
- IDENTIFIER záradék: Az állandó
STRING
leképezése sémanévre.
A létrehozott hive_metastore
sémák csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket (INVALID_SCHEMA_OR_RELATION_NAME) tartalmazhatnak.
Példák
> 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 `数据库架构`;
Adatbázis neve
A sémanév szinonimája.
Bár a SCHEMA
használat előnyben részesített, és DATABASE
felcserélhető SCHEMA
.
Tábla neve
Egy táblaobjektumot azonosít. A tábla sémanévvel minősíthető, vagy egy egyszerű azonosítóval minősíthető.
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 )
Paraméterek
schema_name: A táblát tartalmazó minősített vagy nem minősített sémanév.
table_identifier: A tábla vagy a table_alias nevét meghatározó azonosító.
file_format: Az egyik
json
,csv
,avro
,parquet
,orc
,binaryFile
,text
,delta
(a kis- és nagybetűk nem érzékenyek).path_to_table: A tábla helye a fájlrendszerben. Ehhez a
ANY_FILE
szintaxishoz engedéllyel kell rendelkeznie.IDENTIFIER záradék: Az állandó
STRING
táblanévhez való leképezése.temporal_spec: Ha a használt hivatkozás egy Delta-táblára hivatkozik a megadott időpontban vagy verzióban.
Időbeli specifikációt csak egy lekérdezés vagy EGY EGYESÍTÉS HASZNÁLATA kontextusában használhat.
- @ timestamp_encoding: Egy pozitív Bigint-literál, amely formázott időbélyeget
yyyyMMddHHmmssSSS
kódol. - @V verzió: A Delta tábla verzióját azonosító pozitív egész számkonstans.
- timestamp_expression: Egy egyszerű kifejezés, amely időbélyegzőre van kiértékelve.
timestamp_expressiom
állandó kifejezésnek kell lennie, de tartalmazhatcurrent_date()
vagycurrent_timestamp()
tartalmazhat. - verzió: A Delta-tábla verzióját azonosító egész számkonstans vagy sztringkonstans.
- @ timestamp_encoding: Egy pozitív Bigint-literál, amely formázott időbélyeget
credential_spec
A megfelelő hitelesítő adatok használatával hozzáférést kaphat egy
path_to_table
olyanhoz, amely nem egy külső helyre van beágyazva.-
A tárolóhely eléréséhez használt hitelesítő adatok neve.
-
A hive_metastore
létrehozott táblák csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket (INVALID_SCHEMA_OR_RELATION_NAME) tartalmazhatnak.
Ha a név nem minősített, és nem hivatkozik egy ismert tábla aliasára, az Azure Databricks először megpróbálja feloldani a táblát az aktuális sémában.
Ha a név sémával van minősítve, az Azure Databricks megpróbálja feloldani a táblázatot az aktuális katalógusban.
A névfeloldásról további információt a Táblázat és a felbontás megtekintése című témakörben talál.
Az Azure Databricks hibát jelez, ha nem Delta Lake formátumú táblát használ temporal_spec
.
Példák
-- 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ézet neve
Egy nézetet azonosít. A nézet sémanévvel minősíthető, vagy egy egyszerű azonosítóval minősíthető.
Syntax
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Paraméterek
- schema_name: A nézetet tartalmazó séma minősített vagy nem minősített neve.
- view_identifier: A nézet nevét vagy a CTE nézetazonosítóját meghatározó azonosító.
- IDENTIFIER záradék: Az állandó
STRING
leképezése nézetnévre.
A létrehozott hive_metastore
nézetek csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket (INVALID_SCHEMA_OR_RELATION_NAME) tartalmazhatnak.
Példák
-- 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;
Oszlop neve
Egy tábla vagy nézet oszlopát azonosítja. Az oszlop minősíthető táblázat- vagy nézetnévvel, vagy egy egyszerű azonosítóval minősíthető.
Syntax
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Paraméterek
- table_name: Az oszlopot tartalmazó tábla minősített vagy nem minősített táblaneve.
- view_name: Az oszlopot tartalmazó nézet minősített vagy nem minősített nézetneve.
- column_identifier: Az oszlop nevét meghatározó azonosító.
- IDENTIFIER záradék: Az állandó
STRING
oszlopnévhez való leképezése.
Az azonosított oszlopnak léteznie kell a táblában vagy a nézetben.
Az Azure Databricks egy speciális _metadata oszlopot támogat. Ez a típusstruktúra pszeudo oszlopa minden tábla része, és a tábla sorairól szóló metaadat-információk lekérésére használható.
Figyelmeztetés
Ha a táblaséma egy elnevezett _metadata
oszlopot tartalmaz, a lekérdezések az adatforrásból fogják visszaadni az oszlopot, nem pedig a fájl metaadatait. A _metadata
pszeudo oszlop nem lesz elérhető.
Az oszlopleképezési tulajdonság ('delta.columnMapping.mode' = 'name'
) nélküli Delta Lake-táblák oszlopnevei nem tartalmazhatják a karaktereket ' '
(szóköz), ','
, ';'
, '{'
, '}'
, '('
')'
. '\n'
, '\t'
és '='
.
A táblák oszlopnevének AVRO
unicode betűvel '_'
kell kezdődnie (beleértve a nem ASCII betűket is), és unicode betűk és számjegyek kombinációját '_'
kell követnie.
Példák
-- 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`);
Mezőnév
Egy szerkezeten belüli mezőt azonosít. A mezőt a mezőt tartalmazó struktúra elérési útjával kell minősíteni .
Syntax
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Paraméterek
- expr: STRUCT típusú kifejezés.
- field_identifier: A mező nevét meghatározó azonosító.
- IDENTIFIER záradék: Az állandó
STRING
hozzárendelése egy mezőnévhez.
A mélyen beágyazott mezőkre a gyökérstruktúra elérési útjának mentén a mezőazonosító megadásával hivatkozhat.
Az oszlopleképezési tulajdonság ('delta.columnMapping.mode' = 'name'
) nélküli Delta Lake-táblák mezőnevei nem tartalmazhatják a karaktereket ' '
(szóköz), ','
, ';'
, '{'
, '}'
, '('
')'
. '\n'
, '\t'
és '='
.
A táblák mezőnevének AVRO
unicode betűvel '_'
kell kezdődnie (beleértve a nem ASCII betűket is), és unicode betűk és számjegyek kombinációját '_'
kell követnie.
Példák
> 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;
Változó neve
Egy ideiglenes (munkamenet-) változót azonosít.
A változó egy sémanévvel (system.session
vagy ), vagy session
egy egyszerű azonosítóval minősíthető.
Syntax
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Paraméterek
- schema_name:
system.session
vagysession
amely az összes ideiglenes változót tartalmazza. - variable_identifier: A változó nevét meghatározó azonosító.
Példák
-- 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;
Függvénynév
Azonosít egy függvényt. A függvény sémanévvel minősíthető, vagy egy egyszerű azonosítóval minősíthető.
Syntax
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Paraméterek
- schema_name: A függvényt tartalmazó minősített vagy nem minősített sémanév.
- function_identifier: A függvény nevét meghatározó azonosító.
- IDENTIFIER záradék: Az állandó
STRING
függvénynévhez való leképezése.
A hive_metastore
létrehozott függvények csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket tartalmazhatnak.
Példák
-- 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;
Paraméter neve
Egy paramétert azonosít a felhasználó által definiált SQL-függvény (SQL UDF) törzsében. A függvény minősíthető egy függvényazonosítóval, vagy egy egyszerű azonosítóval nem minősíthető.
Syntax
[ function_identifier . ] parameter_identifier
Paraméterek
- function_identifier: Egy függvény nevét meghatározó azonosító.
- parameter_identifier: Egy paraméter nevét meghatározó azonosító.
Példák
-- 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`;
Tábla aliasa
Táblahivatkozást, lekérdezést, táblafüggvényt vagy más relációs formát címkéz.
Syntax
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Paraméterek
- table_identifier: A tábla nevét meghatározó azonosító.
- column_identifierN: Az oszlop nevét meghatározó opcionális azonosító.
Ha oszlopazonosítókat ad meg, a számuknak meg kell egyeznie a megfeleltethető relációban lévő oszlopok számával.
Ha nem ad meg oszlopazonosítókat, azok neve a címkézett relációtól öröklődik.
Példák
-- 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 `직원`;
Oszlop aliasa
Hivatkozás céljából címkézheti egy kifejezés eredményét egy SELECT
listában.
Ha a kifejezés táblaértékű generátorfüggvény, az alias a létrehozott oszlopok listáját címkézi.
Syntax
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Paraméterek
Bár az oszlop aliasainak nem kell egyedinek lenniük a kiválasztási listában, az egyediség követelmény, hogy név alapján hivatkozzon egy aliasra.
Példák
-- 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
Hitelesítő adat neve
Azonosítja a külső helyen lévő tároló eléréséhez szükséges hitelesítő adatokat.
Syntax
credential_identifier
Paraméterek
Példák
Hely neve
Külső tárolóhelyet azonosít.
Syntax
location_identifier
Paraméterek
Példák
`s3-json-data`
s3_json_data
Megosztás neve
A szolgáltató által megosztott adatok eléréséhez használt megosztást azonosítja.
Syntax
share_identifier
Paraméterek
Példák
`public info`
`public-info`
public_info
Szolgáltató neve
Egy deltamegosztási szolgáltatót azonosít.
Syntax
provider_identifier
Paraméterek
-
Nem minősített azonosító, amely egyedileg azonosítja a szolgáltatót.
Példák
`Good Corp`
`Good-corp`
Good_Corp
Címzett neve
Azonosítja a megosztás címzettjének nevét.
Syntax
recipient_identifier
Paraméterek
Példák
`Good Corp`
`Good-corp`
Good_Corp
Kötet neve
Egy Unity-katalógus kötetét azonosítja. A kötet sémanévvel minősíthető, vagy egy egyszerű azonosítóval minősíthető.
Syntax
[ schema_name .] volume_identifier
Paraméterek
- schema_name: A kötetet tartalmazó minősített vagy nem minősített sémanév.
- volume_identifier: Nem minősített azonosító, amely egyedileg azonosítja a kötetet a sémában.
Példák
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume