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 gemener.
  • 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

Kolumnnamn kan använda specialtecken, men namnet måste tas bort med backticks i alla SQL-instruktioner om specialtecken används. Unity Catalog bevarar kolumnnamnshöljet, men frågor mot Unity Catalog-tabeller är skiftlägeskänsliga.

Anslutningens namn

Identifierar en extern anslutning. En extern anslutning fungerar som en länk till ett sekundärt system, till exempel PostgreSQL och kan sedan användas för att referera till dess kataloger, scheman och tabeller.

Syntax

connection_identifier

Parametrar

  • connection_identifier: En identifierare som unikt identifierar anslutningen.

Exempel

> CREATE CONNECTION my_postgresql ...;

Katalognamn

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

Syntax

catalog_identifier

Parametrar

  • catalog_identifier: En identifierare som unikt identifierar katalogen.

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

Schemanamn

Identifierar ett schema. Ett schema innehåller en gruppering av objekt i en katalog.

Syntax

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parametrar

  • catalog_name: Namnet på en befintlig katalog.
  • schema_identifier: En identifierare som unikt identifierar schemat.
  • IDENTIFIER-sats: En mappning av konstanten STRING till ett schemanamn.

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 schemanamn.

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

Tabellnamn

Identifierar ett tabellobjekt. Tabellen kan kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.

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 )

Parametrar

  • schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller tabellen.

  • table_identifier: En identifierare som anger namnet på tabellen eller table_alias.

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

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

  • IDENTIFIER-sats: En mappning av konstanten STRING till ett tabellnamn.

  • temporal_spec: När den används refererar till en Delta-tabell 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: En positiv heltal som identifierar versionen av Delta-tabellen.
    • 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: En heltalsliteral eller strängliteral som identifierar versionen av Delta-tabellen.
  • credential_spec

    Du kan använda en tillämplig autentiseringsuppgift för att få åtkomst till en path_to_table som inte är inbäddad på en extern plats.

    • credential_name

      Namnet på autentiseringsuppgifterna som används för att komma åt lagringsplatsen.

Tabeller 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 tabellalias försöker Azure Databricks först matcha tabellen i det aktuella schemat.

Om namnet är kvalificerat med ett schema försöker Azure Databricks matcha tabellen i den aktuella katalogen.

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

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

-- 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 kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.

Syntax

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parametrar

  • schema_name: Det kvalificerade eller okvalificerade namnet på schemat som innehåller vyn.
  • view_identifier: En identifierare som anger namnet på vyn eller vyidentifieraren för en CTE.
  • IDENTIFIER-sats: En mappning av konstanten STRING till ett visningsnamn.

Vyer som skapas i hive_metastore kan 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;

Kolumnnamn

Identifierar en kolumn i en tabell eller vy. Kolumnen kan kvalificeras med ett tabell- eller vynamn eller okvalificerad med hjälp av en enkel identifierare.

Syntax

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

Parametrar

  • table_name: Ett kvalificerat eller okvalificerat tabellnamn för tabellen som innehåller kolumnen.
  • view_name: Ett kvalificerat eller okvalificerat vynamn för vyn som innehåller kolumnen.
  • column_identifier: En identifierare som anger namnet på kolumnen.
  • IDENTIFIER-sats: En mappning av konstanten STRING till ett kolumnnamn.

Den identifierade kolumnen måste finnas i tabellen eller vyn.

Azure Databricks stöder en särskild _metadata kolumn. Den här pseudokolumnen av typen struct är en del av varje tabell och kan användas för att hämta metadatainformation om raderna i tabellen.

Varning

Om tabellschemat innehåller en kolumn med namnet _metadatareturnerar frågor kolumnen från datakällan och inte filmetadata. Pseudokolumnen _metadata är inte tillgänglig.

Kolumnnamn i Delta Lake-tabeller utan kolumnmappningsegenskap ('delta.columnMapping.mode' = 'name') får inte innehålla tecknen (blanksteg ' ' ), ',', ';', '{', '}', '(', ')'. '\n', '\t'och '='.

Kolumnnamn i AVRO tabeller 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 }

Parametrar

  • expr: Ett uttryck av typen STRUCT.
  • field_identifier: En identifierare som anger namnet på fältet.
  • IDENTIFIER-sats: En mappning av konstanten STRING till ett fältnamn.

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

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

Fältnamn i AVRO tabeller 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 kvalificeras med ett schemanamn (system.session eller session), eller okvalificerad med hjälp av en enkel identifierare.

Syntax

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parametrar

  • schema_name: system.session eller session som innehåller alla temporära variabler.
  • variable_identifier: En identifierare 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 kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.

Syntax

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parametrar

  • schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller funktionen.
  • function_identifier: En identifierare som anger namnet på funktionen.
  • IDENTIFIER-sats: En mappning av konstanten 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 funktionsidentifierare eller okvalificerad med hjälp av en enkel identifierare.

Syntax

[ function_identifier . ] parameter_identifier

Parametrar

  • function_identifier: En identifierare som anger namnet på en funktion.
  • parameter_identifier: En identifierare som anger namnet på en parameter.

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

Tabellalias

Etiketterar en tabellreferens, fråga, tabellfunktion eller annan form av en relation.

Syntax

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

Parametrar

  • table_identifier: En identifierare som anger namnet på tabellen.
  • column_identifierN: En valfri identifierare som anger namnet på kolumnen.

Om du anger kolumnidentifierare måste deras nummer matcha antalet kolumner i den matchade relationen.

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

Kolumnalias

Etiketter resultatet av ett uttryck i en SELECT lista som referens.

Om uttrycket är en tabellvärdegeneratorfunktion etiketterar aliaset listan över kolumner som skapas.

Syntax

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

Parametrar

  • column_identifier: En identifierare som anger namnet på kolumnen.

Kolumnalias behöver inte vara unika i urvalslistan, men unikhet är 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

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

Parametrar

  • credential_identifier: En okvalificerad identifierare som unikt identifierar autentiseringsuppgifterna.

Exempel

`my_storage_cred`

my_storage_cred

Platsnamn

Identifierar en extern lagringsplats.

Syntax

location_identifier

Parametrar

  • location_identifier: En okvalificerad identifierare som unikt identifierar platsen.

Exempel

`s3-json-data`

s3_json_data

Resursnamn

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

Syntax

share_identifier

Parametrar

  • share_identifier: En okvalificerad identifierare som unikt identifierar resursen.

Exempel

`public info`

`public-info`

public_info

Providernamn

Identifierar en deltadelningsprovider.

Syntax

provider_identifier

Parametrar

Exempel

`Good Corp`

`Good-corp`

Good_Corp

Mottagarens namn

Identifierar en mottagare för en resurs.

Syntax

recipient_identifier

Parametrar

  • recipient_identifier: En okvalificerad identifierare som unikt identifierar mottagaren.

Exempel

`Good Corp`

`Good-corp`

Good_Corp

Namn på rent rum

Identifierar ett rent rum för en uppsättning medarbetare.

Syntax

clean_room_identifier

Parametrar

  • clean_room_identifier: En okvalificerad identifierare som unikt anger det rena rummet i de medverkandes metaarkiv.

Exempel

`Clean-Room`

Clean_Room

Volymnamn

Identifierar en Unity Catalog-volym. Volymen kan kvalificeras med ett schemanamn eller okvalificerad med hjälp av en enkel identifierare.

Syntax

[ schema_name .] volume_identifier

Parametrar

  • schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller volymen.
  • volume_identifier: En okvalificerad identifierare som unikt identifierar volymen i schemat.

Exempel

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume