Dela via


Namn

Gäller för:markerad ja Databricks SQL markerad ja 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)
  • Unity Catalog lagrar alla objektnamn som små bokstäver.
  • 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

Column-namn kan använda specialtecken, men namnet måste omges med backticks i alla SQL-uttryck om det används specialtecken. Unity Catalog bevarar column namnhölje, men frågor mot Unity Catalogtables är skiftlägeskänsliga.

Anslutningens namn

Identifierar en extern anslutning. En extern anslutning fungerar som en länk till ett främmande system, till exempel PostgreSQL och kan sedan användas för att referera till dess catalogs, scheman och tables.

Syntax

connection_identifier

Parameters

Exempel

> CREATE CONNECTION my_postgresql ...;

Catalog namn

Identifierar en catalog. En catalog innehåller en gruppering av objekt som kan delas in ytterligare i scheman.

Syntax

catalog_identifier

Parameters

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

Schema namn

Identifierar en schema. En schema innehåller en gruppering av objekt i en catalog.

Syntax

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parameters

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 namnet schema.

Även om användning av SCHEMA, och DATABASE är utbytbar, SCHEMA föredras.

Table namn

Identifierar ett table objekt. table kan kvalificeras med ett schema namn eller okvalificeras med en enkel identifier.

Syntax

{ [ 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 }

Parameters

  • schema_name: Ett kvalificerat eller okvalificerat schema namn som innehåller table.

  • table_identifier: En identifier som anger namnet på table eller tabellalias.

  • file_format: En av json, csv, avro, parquet, orc, binaryFile, , text( delta skiftlägesokänslig).

  • path_to_table: Platsen för table i filsystemet. Du måste ha ANY_FILE behörighet att använda den här syntaxen.

  • IDENTIFIER-sats: En mappning av konstant STRING till ett table-namn.

  • temporal_spec: När används refererar till en Delta-table 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: Ett positivt heltal som identifierar versionen av Delta table.
    • timestamp_expression: Ett enkelt uttryck som utvärderas till en TIDSSTÄMPEL. timestamp_expressiom måste vara ett konstant uttryck, men kan innehålla current_date() eller current_timestamp().
    • version: Ett heltal eller en sträng som identifierar versionen av Delta table.
  • option_spec: När det används definieras direktiv som ska skickas till en datakälla, till exempel en autentiseringsuppgift för att få åtkomst till en lagringsplats eller 'write.split-size' för att kontrollera INSERT beteendet.

Tables 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 table aliasförsöker Azure Databricks först lösa table i den aktuella schema.

Om namnet är kvalificerat med en schema, kommer Azure Databricks att försöka lösa table i den aktuella catalog.

Mer information om namnmatchning finns i Table och visa lösning.

Azure Databricks genererar ett fel om du använder en temporal_spec för en table 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)

> 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);

Vynamn

Identifierar en vy. Vyn kan kvalificerade med ett schema namn eller okvalificerade med hjälp av en enkel identifier.

Syntax

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: Det kvalificerade eller okvalificerade namnet på schema som innehåller vyn.
  • view_identifier: En identifier som specificerar namnet på vyn eller vyens identifier för en CTE.
  • IDENTIFIER-sats: En mappning av konstant STRING till ett visningsnamn.

Views som skapas i hive_metastore får 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;

Column namn

Identifierar en column i en table eller vy. column kan kvalificerade med ett table- eller visningsnamn eller okvalificerade med hjälp av en enkel identifier.

Syntax

{ [ { table_name | view_name } . ] column_identifier |
  IDENTIFIER clause }

Parameters

  • table_name: Ett kvalificerat eller okvalificerat table-namn på table som innehåller column.
  • view_name: Ett kvalificerat eller okvalificerat vynamn för vyn som innehåller column.
  • column_identifier: En identifier som anger namnet på column.
  • IDENTIFIER-sats: En mappning av konstant STRING till ett column namn.

Den identifierade column måste finnas inom table eller vy.

Azure Databricks stöder en särskild _metadata column. Den här pseudo-column av typen struct ingår i varje table och kan användas för att hämta metadatainformation om raderna i table.

Varning

Om tableschema innehåller en column med namnet _metadatareturnerar frågor column från datakällan och inte filmetadata. _metadata psuedo-column kommer inte att vara tillgänglig.

Column namn i Delta Lake tables utan column mappningsegenskap ('delta.columnMapping.mode' = 'name') får inte innehålla tecknen ' ' (blanksteg), ',', ';', '{', '}', '(', ')'. '\n', '\t'och '='.

Column namn i AVROtables 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 }

Parameters

Du kan referera till ett djupt kapslat fält genom att ange fältet identifier längs sökvägen till rot-structen.

Fältnamn i Delta Lake tables utan column mappningsegenskap ('delta.columnMapping.mode' = 'name') får inte innehålla tecknen ' ' (blanksteg), ',', ';', '{', '}', '(', ')'. '\n', '\t'och '='.

Fältnamn i AVROtables 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 vara kvalificerad med ett schema namn (system.session eller session), eller okvalificerad med en enkel identifier.

Syntax

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: system.session eller session som innehåller alla temporära variabler.
  • variable_identifier: En identifier 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 vara kvalificerad med ett schema namn, eller okvalificerad med hjälp av en enkel identifier.

Syntax

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: Ett kvalificerat eller okvalificerat schema namn som innehåller funktionen.
  • function_identifier: En identifier som anger namnet på funktionen.
  • IDENTIFIER-sats: En mappning av konstant 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 funktion identifiereller okvalificeras med en enkel identifier.

Syntax

[ function_identifier . ] parameter_identifier

Parameters

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`;

Table alias

Etiketterar en table referens, fråga, table funktion eller någon annan form av en relation.

Syntax

[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]

Parameters

Om du anger column identifierare måste deras nummer matcha antalet columns i den matchade relationen.

Om du inte anger column identifierare ä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 `직원`;

Column alias

Etiketter resultatet av ett uttryck i en SELECTlist som referens.

Om uttrycket är en table värderad generatorfunktion, etiketterar aliaset de producerade list av columns.

Syntax

[AS] column_identifier
[AS] ( column_identifier [, ...] )

Parameters

Även om column alias inte behöver vara unika inom selectlist, är unikhet 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

Sorteringsnamn

Identifierar en sortering för en column eller ett uttryck.

Syntax

collation_identifier

Parameters

För en list av sorteringar som stöds, se sorteringar som stöds. Mer information om sortering finns i Sortering.

Exempel

> SELECT 'hello' COLLATE UNICODE_CI;
  hello

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

Parameters

Exempel

`my_storage_cred`

my_storage_cred

Platsnamn

Identifierar en extern lagringsplats.

Syntax

location_identifier

Parameters

Exempel

`s3-json-data`

s3_json_data

Resursnamn

Identifierar en resurs för åtkomst till data som delas av en provider.

Syntax

share_identifier

Parameters

Exempel

`public info`

`public-info`

public_info

Providernamn

Identifierar en deltadelningsprovider.

Syntax

provider_identifier

Parameters

Exempel

`Good Corp`

`Good-corp`

Good_Corp

Mottagarens namn

Identifierar en mottagare för en resurs.

Syntax

recipient_identifier

Parameters

Exempel

`Good Corp`

`Good-corp`

Good_Corp

Namn på rent rum

Identifierar ett rent rum för en set av medarbetare.

Syntax

clean_room_identifier

Parameters

  • clean_room_identifier: En okvalificerad identifier som unikt anger det rena rummet i metastores för medarbetare.

Exempel

`Clean-Room`

Clean_Room

Volymnamn

Identifierar en UnityCatalog-volym. Volymen kan vara kvalificerad med ett schema namn eller okvalificerad med en enkel identifier.

Syntax

[ schema_name .] volume_identifier

Parameters

  • schema_name: Ett kvalificerat eller okvalificerat schema namn som innehåller volymen.
  • volume_identifier: En okvalificerad identifier som unikt identifierar volymen i schema.

Exempel

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume