Partilhar via


Nomes

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime

Identifica diferentes tipos de objetos no Azure Databricks.

As limitações a seguir se aplicam a todos os nomes de objetos no Unity Catalog:

  • Os nomes de objeto não podem exceder 255 caracteres.
  • Não são permitidos os seguintes caracteres especiais:
    • Período (.)
    • Espaço ( )
    • Barra (/)
    • Todos os caracteres de controle ASCII (00-1F hex)
    • O caractere DELETE (7F hex)
  • O Unity Catalog armazena todos os nomes de objetos em minúsculas.
  • Ao fazer referência a nomes de UC em SQL, você deve usar backticks para escapar de nomes que contenham caracteres especiais, como hífenes (-).

Nota

Os nomes Column podem usar caracteres especiais, mas o nome deve ser escapado com acentos graves em todas as instruções SQL se caracteres especiais forem usados. O Unity Catalog preserva column invólucro de nome, mas as consultas contra o Unity Catalogtables não diferenciam maiúsculas de minúsculas.

Nome da ligação

Identifica uma conexão estrangeira. Uma conexão externa serve como ligação a um sistema externo, como o PostgreSQL, e pode ser usada para referenciar os seus catalogs, esquemas e tables.

Sintaxe

connection_identifier

Parameters

Exemplos

> CREATE CONNECTION my_postgresql ...;

Catalog nome

Identifica um catalog. Um catalog fornece um agrupamento de objetos que podem ser subdivididos em esquemas.

Sintaxe

catalog_identifier

Parameters

Exemplos

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

Identifica um schema. Um schema fornece um agrupamento de objetos em um catalog.

Sintaxe

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parameters

Os esquemas criados em hive_metastore só podem conter caracteres ASCII alfanuméricos e sublinhados (INVALID_SCHEMA_OR_RELATION_NAME).

Exemplos

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

Nome da base de dados

Sinónimo de schema nome.

Enquanto o uso de SCHEMA, e DATABASE é intercambiável, SCHEMA é preferível.

Table nome

Identifica um objeto table. O table pode ser qualificado com um nome schema ou não qualificado usando um identifiersimples.

Sintaxe

{ [ 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: Um nome schema qualificado ou não qualificado que contém o table.

  • table_identifier: Um identifier que especifica o nome da table ou do table_alias.

  • file_format: Um dos json, csv, , avro, parquet, orcbinaryFile, , text( delta sem distinção entre maiúsculas e minúsculas).

  • path_to_table: O local do table no sistema de arquivos. Você deve ter permissão ANY_FILE para usar essa sintaxe.

  • IDENTIFIER cláusula: Um mapeamento de uma constante STRING para um nome table.

  • temporal_spec: Quando usado faz referência a um table Delta no ponto no tempo ou versão especificados.

    Você pode usar uma especificação temporal somente dentro do contexto de uma consulta ou de um uso MERGE.

    • @ timestamp_encoding: Um literal Bigint positivo que codifica um carimbo de data/hora no yyyyMMddHHmmssSSS formato.
    • @V versão: Um literal inteiro positivo que identifica a versão do Delta table.
    • timestamp_expression: Uma expressão simples que é avaliada como um carimbo de data/hora. timestamp_expressiom deve ser uma expressão constante, mas pode conter current_date() ou current_timestamp().
    • versão: Um literal inteiro ou literal de string identificando a versão do Delta table.
  • option_spec: Quando usado define diretivas a serem passadas para uma fonte de dados, como uma credencial para acessar um local de armazenamento ou 'write.split-size' controlar INSERT o comportamento.

    • option_key

      A tecla de opção. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.

      As teclas de opção devem ser exclusivas e diferenciam maiúsculas de minúsculas.

    • option_val

      O valor da opção. Uma expressão constante do tipo BOOLEAN, STRING, INTEGER, ou DECIMAL.

Tables criado em hive_metastore só pode conter caracteres ASCII alfanuméricos e sublinhados (INVALID_SCHEMA_OR_RELATION_NAME).

Se o nome não for qualificado e não fizer referência a um alias conhecido de table, o Azure Databricks primeiro tentará resolver o table no schemaatual.

Se o nome for qualificado com um schema, o Azure Databricks tentará resolver o table no catalogatual.

Consulte Table e veja a resolução para obter mais informações sobre a resolução de nomes.

O Azure Databricks gera um erro se você usar um temporal_spec para um table que não esteja no formato Delta Lake.

Exemplos

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

View name

Identifica um modo de exibição. A vista pode ser qualificada com um nome schema ou não qualificada utilizando um simples identifier.

Sintaxe

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: O nome qualificado ou não qualificado do schema que contém a exibição.
  • view_identifier: Um identifier que especifica o nome da vista ou a identifier da vista de um CTE.
  • IDENTIFIER cláusula: Um mapeamento de STRING constante para um nome de exibição.

Views criados em hive_metastore só podem conter caracteres ASCII alfanuméricos e sublinhados (INVALID_SCHEMA_OR_RELATION_NAME).

Exemplos

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

Identifica um column dentro de um table ou visualização. O column pode ser qualificado com um nome de table ou de exibição, ou não qualificado usando um identifiersimples.

Sintaxe

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

Parameters

  • table_name: Um nome table, qualificado ou não, do table que contém o column.
  • view_name: Um nome de modo de exibição qualificado ou não qualificado do modo de exibição que contém o column.
  • identificador_de_coluna: Um identifier que especifica o nome do column.
  • IDENTIFIER cláusula: Um mapeamento de STRING constante para um nome de column.

O column identificado deve existir dentro do table ou em uma vista.

O Azure Databricks dá suporte a um _metadata columnespecial. Esse pseudo column do tipo struct faz parte de todos os table e pode ser usado para recuperar informações de metadados sobre as linhas no table.

Aviso

Se o tableschema contiver um column chamado _metadata, as consultas retornarão o column da fonte de dados e não os metadados do arquivo. O _metadata pseudo column não estará acessível.

Column nomes no Delta Lake tables sem a propriedade de mapeamento column ('delta.columnMapping.mode' = 'name') não devem conter os caracteres ' ' (espaço), ',', ';', '{', '}', '(', ')'. '\n', '\t', e '='.

Column nome em AVROtables deve começar com '_' ou uma letra Unicode (incluindo letras não-ASCII) e ser seguido por uma combinação de '_', letras Unicode e dígitos.

Exemplos

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

Nome do campo

Identifica um campo dentro de uma estrutura. O campo deve ser qualificado com o caminho até a estrutura que contém o campo.

Sintaxe

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

Parameters

Um campo profundamente aninhado pode ser referenciado especificando o campo identifier ao longo do caminho para a estrutura raiz.

Os nomes de campo no Delta Lake tables sem a propriedade de mapeamento column ('delta.columnMapping.mode' = 'name') não devem conter os caracteres ' ' (espaço), ',', ';', '{', '}', '(', ')'. '\n', '\t', e '='.

O nome do campo em AVROtables deve começar com '_' ou uma letra Unicode (incluindo letras não-ASCII) e ser seguido por uma combinação de '_', letras Unicode e dígitos.

Exemplos

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

Nome da variável

Identifica uma variável temporária (sessão). A variável pode ser qualificada com um nome schema (system.session ou session), ou não qualificada usando um identifiersimples.

Sintaxe

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parameters

  • schema_name: system.session ou session que contém todas as variáveis temporárias.
  • variable_identifier: Um identifier que especifica o nome da variável.

Exemplos


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

Nome da função

Identifica uma função. A função pode ser qualificada com um nome schema, ou não qualificada usando um simples identifier.

Sintaxe

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parameters

As funções criadas em hive_metastore só podem conter caracteres ASCII alfanuméricos e sublinhados.

Exemplos

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

Nome do parâmetro

Identifica um parâmetro no corpo de uma função SQL definida pelo usuário (SQL UDF). A função pode ser qualificada com uma função identifier, ou não qualificada usando um identifiersimples.

Sintaxe

[ function_identifier . ] parameter_identifier

Parameters

Exemplos

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

Rotula uma referência table, uma consulta, a função table ou outra forma de relação.

Sintaxe

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

Parameters

Se fornecer identificadores de column, o seu número deverá corresponder ao número de columns na relação correspondente.

Se não forneceres identificadores column, os seus nomes serão herdados da relação rotulada.

Exemplos

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

Rotula o resultado de uma expressão em um SELECTlist para referência.

Se a expressão for uma função geradora que produz um valor do tipo table, o alias rotula o list dos columns produzidos.

Sintaxe

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

Parameters

Embora os aliases de column não precisem ser únicos dentro do selectlist, a unicidade é um requisito para referenciar um alias pelo nome.

Exemplos

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

Nome do agrupamento

Identifica um agrupamento para uma column ou expressão.

Sintaxe

collation_identifier

Parameters

Para obter uma list de agrupamentos suportados, consulte Agrupamentos suportados. Para obter detalhes sobre agrupamentos, consulte Agrupamento.

Exemplos

> SELECT 'hello' COLLATE UNICODE_CI;
  hello

Nome da credencial

Identifica uma credencial para acessar o armazenamento em um local externo ou serviços de nuvem com SDKs de provedor.

Sintaxe

credential_identifier

Parameters

Exemplos

`my_storage_cred`

my_storage_cred

Nome do local

Identifica um local de armazenamento externo.

Sintaxe

location_identifier

Parameters

Exemplos

`s3-json-data`

s3_json_data

Nome da partilha

Identifica um compartilhamento para acessar dados compartilhados por um provedor.

Sintaxe

share_identifier

Parameters

  • share_identifier: Um identifier sem qualificadores que identifica exclusivamente a partilha.

Exemplos

`public info`

`public-info`

public_info

Nome do fornecedor

Identifica um provedor de compartilhamento Delta.

Sintaxe

provider_identifier

Parameters

Exemplos

`Good Corp`

`Good-corp`

Good_Corp

Nome do destinatário

Identifica um destinatário para um compartilhamento.

Sintaxe

recipient_identifier

Parameters

  • recipient_identifier: Um identifier não qualificado que identifica exclusivamente o destinatário.

Exemplos

`Good Corp`

`Good-corp`

Good_Corp

Nome da sala limpa

Identifica uma sala limpa para uma set de colaboradores.

Sintaxe

clean_room_identifier

Parameters

  • clean_room_identifier: Um identifier não qualificado que especifica exclusivamente a sala limpa na metastores dos colaboradores.

Exemplos

`Clean-Room`

Clean_Room

Nome do volume

Identifica um volume Unity Catalog. O volume pode ser qualificado com um nome schema ou não qualificado usando um identifiersimples.

Sintaxe

[ schema_name .] volume_identifier

Parameters

  • schema_name: Um nome de schema qualificado ou não qualificado que contém o volume.
  • volume_identifier: Um identifier não qualificado que identifica exclusivamente o volume dentro do schema.

Exemplos

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume