Namen

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Identificeert verschillende soorten objecten in Azure Databricks.

De volgende beperkingen gelden voor alle objectnamen in Unity Catalog:

  • Objectnamen mogen niet langer zijn dan 255 tekens.
  • De volgende speciale tekens zijn niet toegestaan:
    • Periode (.)
    • Spatie ( )
    • Slash (/)
    • Alle ASCII-besturingstekens (00-1F-hex)
    • Het DELETE-teken (7F-hex)
  • Unity Catalog slaat alle objectnamen op als kleine letters.
  • Wanneer u verwijst naar UC-namen in SQL, moet u backticks gebruiken om te ontsnappen aan namen die speciale tekens bevatten, zoals afbreekstreepjes (-).

Notitie

Kolomnamen kunnen speciale tekens gebruiken, maar de naam moet worden ontsnapt met backticks in alle SQL-instructies als er speciale tekens worden gebruikt. Unity Catalog behoudt het hoofdlettergebruik van de kolomnamen, maar query's voor Unity Catalog-tabellen zijn niet hoofdlettergevoelig.

Verbindingsnaam

Identificeert een refererende verbinding. Een refererende verbinding fungeert als een koppeling naar een extern systeem, zoals PostgreSQL en kan vervolgens worden gebruikt om te verwijzen naar de catalogi, schema's en tabellen.

Syntaxis

connection_identifier

Parameters

  • connection_identifier: een id die de verbinding uniek identificeert.

Voorbeelden

> CREATE CONNECTION my_postgresql ...;

Catalogusnaam

Identificeert een catalogus. Een catalogus biedt een groepering van objecten die verder kunnen worden onderverdeeld in schema's.

Syntaxis

catalog_identifier

Parameters

  • catalog_identifier: een id die de catalogus uniek identificeert.

Voorbeelden

> 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

Schemanaam

Identificeert een schema. Een schema biedt een groepering van objecten in een catalogus.

Syntaxis

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parameters

  • catalog_name: de naam van een bestaande catalogus.
  • schema_identifier: een id die het schema uniek identificeert.
  • ID-component: een toewijzing van constante STRING aan een schemanaam.

Schema's die zijn gemaakt in hive_metastore kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.

Voorbeelden

> 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 `数据库架构`;

Databasenaam

Een synoniem voor schemanaam.

Hoewel het gebruik van SCHEMAen DATABASE uitwisselbaar is, heeft de SCHEMA voorkeur.

Tabelnaam

Identificeert een tabelobject. De tabel kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.

Syntaxis

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

Parameters

  • schema_name: een gekwalificeerde of niet-gekwalificeerde schemanaam die de tabel bevat.

  • table_identifier: een id die de naam van de tabel of table_alias aangeeft.

  • file_format: Een van json, , csv, avro, orcparquet, , binaryFile, , text( delta hoofdlettergevoelig).

  • path_to_table: De locatie van de tabel in het bestandssysteem. U moet over de ANY_FILE machtiging beschikken om deze syntaxis te kunnen gebruiken.

  • ID-component: een toewijzing van constante STRING aan een tabelnaam.

  • temporal_spec: Bij gebruik wordt verwezen naar een Delta-tabel op het opgegeven tijdstip of de opgegeven versie.

    U kunt een tijdelijke specificatie alleen gebruiken binnen de context van een query of een MERGE USING.

    • @ timestamp_encoding: Een positieve letterlijke bigint die een tijdstempel in yyyyMMddHHmmssSSS notatie codeert.
    • @V versie: een positieve letterlijke waarde voor gehele getallen waarmee de versie van de Delta-tabel wordt geïdentificeerd.
    • timestamp_expression: een eenvoudige expressie die resulteert in een TIMESTAMP. timestamp_expressiom moet een constante expressie zijn, maar kan wel bevatten current_date() of current_timestamp().
    • versie: Een letterlijk geheel getal of een letterlijke tekenreeks die de versie van de Delta-tabel aangeeft.
  • credential_spec

    U kunt een toepasselijke referentie gebruiken om toegang te krijgen tot een path_to_table referentie die niet is ingesloten op een externe locatie.

    • credential_name

      De naam van de referentie die wordt gebruikt voor toegang tot de opslaglocatie.

Tabellen die zijn gemaakt in hive_metastore kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.

Als de naam niet gekwalificeerd is en niet verwijst naar een bekende tabelalias, probeert Azure Databricks eerst de tabel in het huidige schema op te lossen.

Als de naam is gekwalificeerd met een schema, probeert Azure Databricks de tabel in de huidige catalogus op te lossen.

Zie Tabel en weergaveresolutie voor meer informatie over naamomzetting.

Azure Databricks genereert een fout als u een temporal_spec tabel gebruikt die niet de Delta Lake-indeling heeft.

Voorbeelden

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

Weergavenaam

Hiermee wordt een weergave geïdentificeerd. De weergave kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.

Syntaxis

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: de gekwalificeerde of niet-gekwalificeerde naam van het schema dat de weergave bevat.
  • view_identifier: een id die de naam van de weergave of de weergave-id van een CTE aangeeft.
  • ID-component: een toewijzing van constante STRING aan een weergavenaam.

Weergaven die zijn gemaakt in hive_metastore kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.

Voorbeelden

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

Kolomnaam

Identificeert een kolom in een tabel of weergave. De kolom kan worden gekwalificeerd met een tabel- of weergavenaam of niet-gekwalificeerde met behulp van een eenvoudige id.

Syntaxis

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

Parameters

  • table_name: een gekwalificeerde of niet-gekwalificeerde tabelnaam van de tabel die de kolom bevat.
  • view_name: een gekwalificeerde of niet-gekwalificeerde weergavenaam van de weergave die de kolom bevat.
  • column_identifier: een id die de naam van de kolom aangeeft.
  • ID-component: een toewijzing van constante STRING aan een kolomnaam.

De geïdentificeerde kolom moet bestaan in de tabel of weergave.

Azure Databricks ondersteunt een speciale _metadata kolom. Deze pseudokolom van het type struct maakt deel uit van elke tabel en kan worden gebruikt om metagegevensinformatie over de rijen in de tabel op te halen.

Waarschuwing

Als het tabelschema een kolom met de naam _metadatabevat, retourneren query's de kolom uit de gegevensbron en niet de metagegevens van het bestand. De _metadata pseudokolom is niet toegankelijk.

Kolomnamen in Delta Lake-tabellen zonder kolomtoewijzingseigenschap ('delta.columnMapping.mode' = 'name') mogen de tekens ' ' (spatie), ',', , ';''{', '}', , '(', . ')' '\n', en '\t''='.

Kolomnaam in AVRO tabellen moet beginnen met '_' of een Unicode-letter (inclusief niet-ASCII-letters) en worden gevolgd door een combinatie van '_'Unicode-letters en cijfers.

Voorbeelden

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

Veldnaam

Identificeert een veld in een struct. Het veld moet worden gekwalificeerd met het pad tot aan de struct die het veld bevat.

Syntaxis

{ expr { . field_identifier [. ...] } |
  IDENTIFIER clause }

Parameters

  • expr: een expressie van het type STRUCT.
  • field_identifier: een id die de naam van het veld aangeeft.
  • ID-component: een toewijzing van constante STRING aan een veldnaam.

Er kan naar een diep genest veld worden verwezen door de veld-id op te geven langs het pad naar de hoofdstruct.

Veldnamen in Delta Lake-tabellen zonder kolomtoewijzingseigenschap ('delta.columnMapping.mode' = 'name') mogen de tekens ' ' (spatie), ',', , '{'';', '}', , , . ')''(' '\n', en '\t''='.

Veldnaam in AVRO tabellen moet beginnen met '_' of een Unicode-letter (inclusief niet-ASCII-letters) en worden gevolgd door een combinatie van '_'Unicode-letters en cijfers.

Voorbeelden

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

Variabelenaam

Identificeert een tijdelijke variabele (sessie). De variabele kan worden gekwalificeerd met een schemanaam (system.session of session) of niet-gekwalificeerde met behulp van een eenvoudige id.

Syntaxis

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: system.session of session die alle tijdelijke variabelen bevat.
  • variable_identifier: een id die de naam van de variabele aangeeft.

Voorbeelden


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

Functienaam

Identificeert een functie. De functie kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.

Syntaxis

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: een gekwalificeerde of niet-gekwalificeerde schemanaam die de functie bevat.
  • function_identifier: een id die de naam van de functie aangeeft.
  • ID-component: een toewijzing van constante STRING aan een functienaam.

Functies die zijn gemaakt in hive_metastore kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens bevatten.

Voorbeelden

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

Parameternaam

Identificeert een parameter in de hoofdtekst van een door de gebruiker gedefinieerde SQL-functie (SQL UDF). De functie kan worden gekwalificeerd met een functie-id of niet-gekwalificeerd met behulp van een eenvoudige id.

Syntaxis

[ function_identifier . ] parameter_identifier

Parameters

  • function_identifier: een id die de naam van een functie aangeeft.
  • parameter_identifier: een id die de naam van een parameter aangeeft.

Voorbeelden

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

Tabelalias

Een tabelreferentie, query, tabelfunctie of een andere vorm van een relatie labelen.

Syntaxis

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

Parameters

  • table_identifier: een id die de naam van de tabel aangeeft.
  • column_identifierN: een optionele id die de naam van de kolom aangeeft.

Als u kolom-id's opgeeft, moet het bijbehorende nummer overeenkomen met het aantal kolommen in de overeenkomende relatie.

Als u geen kolom-id's opgeeft, worden hun namen overgenomen van de gelabelde relatie.

Voorbeelden

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

Kolomalias

Hiermee wordt het resultaat van een expressie in een SELECT lijst gelabeld ter referentie.

Als de expressie een generatorfunctie met tabelwaarden is, geeft de alias de lijst met geproduceerde kolommen een label.

Syntaxis

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

Parameters

  • column_identifier: een id die de naam van de kolom aangeeft.

Hoewel kolomaliassen niet uniek hoeven te zijn binnen de selectielijst, is uniekheid een vereiste om te verwijzen naar een alias op naam.

Voorbeelden

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

Referentienaam

Identificeert een referentie voor toegang tot opslag op een externe locatie.

Syntaxis

credential_identifier

Parameters

  • credential_identifier: Een niet-gekwalificeerde id die de referentie uniek identificeert.

Voorbeelden

Locatienaam

Identificeert een externe opslaglocatie.

Syntaxis

location_identifier

Parameters

  • location_identifier: Een niet-gekwalificeerde id die de locatie uniek identificeert.

Voorbeelden

`s3-json-data`

s3_json_data

Naam delen

Identificeert een share voor toegang tot gegevens die worden gedeeld door een provider.

Syntaxis

share_identifier

Parameters

  • share_identifier: Een niet-gekwalificeerde id die de share uniek identificeert.

Voorbeelden

`public info`

`public-info`

public_info

Providernaam

Identificeert een Delta Sharing-provider.

Syntaxis

provider_identifier

Parameters

Voorbeelden

`Good Corp`

`Good-corp`

Good_Corp

Naam van ontvanger

Identificeert een geadresseerde voor een share.

Syntaxis

recipient_identifier

Parameters

  • recipient_identifier: een niet-gekwalificeerde id waarmee de ontvanger uniek wordt geïdentificeerd.

Voorbeelden

`Good Corp`

`Good-corp`

Good_Corp

Volumenaam

Identificeert een Unity Catalog-volume. Het volume kan worden gekwalificeerd met een schemanaam of niet-gekwalificeerde met behulp van een eenvoudige id.

Syntaxis

[ schema_name .] volume_identifier

Parameters

  • schema_name: een gekwalificeerde of niet-gekwalificeerde schemanaam die het volume bevat.
  • volume_identifier: Een niet-gekwalificeerde id waarmee het volume in het schema uniek wordt geïdentificeerd.

Voorbeelden

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume