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 de coluna podem usar caracteres especiais, mas o nome deve estar entre acentos graves (`) em todas as instruções SQL, caso sejam utilizados caracteres especiais. O Unity Catalog preserva a capitalização dos nomes das colunas, mas as consultas nas tabelas do Unity Catalog são insensíveis à capitalização.

Nome da ligação

Identifica uma conexão estrangeira. Uma conexão estrangeira serve como um link para um sistema estrangeiro, como PostgreSQL e pode ser usada para fazer referência a seus catálogos, esquemas e tabelas.

Sintaxe

connection_identifier

Parâmetros

Exemplos

> CREATE CONNECTION my_postgresql ...;

Nome do catálogo

Identifica um catálogo. Um catálogo fornece um agrupamento de objetos que podem ser subdivididos em esquemas.

Sintaxe

catalog_identifier

Parâmetros

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

Nome do esquema

Identifica um esquema. Um esquema fornece um agrupamento de objetos em um catálogo.

Sintaxe

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parâmetros

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

Um sinônimo para o nome do esquema .

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

Nome da tabela

Identifica um objeto de tabela. A tabela pode ser qualificada com um nome de esquema ou não qualificada usando um identificador simples.

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 }

Parâmetros

  • schema_name: Um nome de esquema qualificado ou não qualificado que contém a tabela.

  • table_identifier: Um identificador que especifica o nome da tabela ou 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 da tabela no sistema de arquivos. Você deve ter permissão ANY_FILE para usar essa sintaxe.

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

  • temporal_spec: Quando usado faz referência a uma tabela Delta no momento 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 identificando a versão da tabela Delta.
    • 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 que identifica a versão da tabela Delta.
  • 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.

As tabelas criadas em hive_metastore só podem 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 de tabela conhecido , o Azure Databricks tentará primeiro resolver a tabela no esquema atual.

Se o nome for qualificado com um esquema, o Azure Databricks tentará resolver a tabela no catálogo atual.

Consulte a Tabela e 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 uma tabela 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 exibição pode ser qualificada com um nome de esquema ou não qualificada usando um identificador simples.

Sintaxe

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parâmetros

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

As visualizações criadas no 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;

Nome da relação

Identifica uma vista ou tabela. A relação pode ser qualificada com um nome de esquema ou não qualificada usando um identificador simples.

Sintaxe

{ table_name | view_name }

Exemplos

-- A back quoted relation name
> SELECT * FROM `Employees`;

-- A relation name without back quotes
> SELECT * FROM employees;

-- A schema qualified relation name
> SELECT * FROM hr.employees;

Nome da coluna

Identifica uma coluna dentro de uma relação. A coluna pode ser qualificada com um nome de relação ou não qualificada usando um identificador simples.

Sintaxe

{ [ relation_name . ] column_identifier |
  IDENTIFIER clause }

Parâmetros

  • table_name: Um nome de tabela qualificado ou não qualificado da tabela que contém a coluna.
  • view_name: Um nome de modo de exibição qualificado ou não qualificado do modo de exibição que contém a coluna.
  • column_identifier: Um identificador que especifica o nome da coluna.
  • IDENTIFIER cláusula: Um mapeamento da constante STRING para um nome de coluna.

A coluna identificada deve existir dentro da relação.

O Azure Databricks dá suporte a uma coluna de _metadata especial. Esse de pseudocoluna do tipo struct faz parte de todas as tabelas e pode ser usado para recuperar informações de metadados sobre as linhas na tabela.

Aviso

Se o esquema de tabela contiver uma coluna chamada _metadata, as consultas retornarão a coluna da fonte de dados e não os metadados do arquivo. A _metadata pseudo coluna não estará acessível.

Os nomes de colunas em tabelas Delta Lake sem propriedade de mapeamento de coluna ('delta.columnMapping.mode' = 'name') não devem conter os caracteres ' ' (espaço), ',', ';', '{', '}', '(', ')'. '\n', '\t', e '='.

O nome da coluna em AVRO tabelas 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 }

Parâmetros

Um campo profundamente aninhado pode ser referenciado ao especificar o identificador do campo ao longo do caminho até a estrutura raiz.

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

O nome do campo em AVRO tabelas 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 de esquema (system.session ou session) ou não qualificada usando um identificador simples.

Sintaxe

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parâmetros

  • schema_name: system.session ou session que contém todas as variáveis temporárias.
  • variable_identifier: Um identificador 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 de esquema ou não qualificada usando um identificador simples.

Sintaxe

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parâmetros

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 um identificador de função ou não qualificada usando um identificador simples.

Sintaxe

[ function_identifier . ] parameter_identifier

Parâmetros

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

Alias de tabela

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

Sintaxe

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

Parâmetros

Se você fornecer identificadores de coluna, seu número deverá corresponder ao número de colunas na relação correspondente.

Se não fornecer identificadores de colunas, os seus nomes serão herdados da relação etiquetada.

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

Alias de coluna

Rotula o resultado da expressão numa lista SELECT para referência.

Se a expressão for uma função geradora de valores de tabela , o alias rotula a lista de colunas produzidas.

Sintaxe

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

Parâmetros

Embora os aliases de coluna não precisem ser únicos na lista de seleção, a unicidade é um requisito para fazer referência a 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 coluna ou expressão.

Sintaxe

collation_identifier

Parâmetros

Para obter uma lista 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

Parâmetros

Exemplos

`my_storage_cred`

my_storage_cred

Nome do local

Identifica um local de armazenamento externo.

Sintaxe

location_identifier

Parâmetros

  • location_identifier: Um identificador não qualificado que identifica exclusivamente o local.

Exemplos

`s3-json-data`

s3_json_data

Nome da partilha

Identifica um compartilhamento para acessar dados compartilhados por um provedor.

Sintaxe

share_identifier

Parâmetros

  • share_identifier: Um identificador não qualificado que identifica exclusivamente o compartilhamento.

Exemplos

`public info`

`public-info`

public_info

Nome do fornecedor

Identifica um provedor de compartilhamento Delta.

Sintaxe

provider_identifier

Parâmetros

  • provider_identifier

    Um identificador não qualificado que identifica exclusivamente o provedor.

Exemplos

`Good Corp`

`Good-corp`

Good_Corp

Nome do destinatário

Identifica um destinatário para um compartilhamento.

Sintaxe

recipient_identifier

Parâmetros

  • recipient_identifier: Um identificador 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 um conjunto de colaboradores.

Sintaxe

clean_room_identifier

Parâmetros

  • clean_room_identifier: Um identificador não qualificado que especifica exclusivamente a sala limpa nos metadados dos colaboradores.

Exemplos

`Clean-Room`

Clean_Room

Nome do volume

Identifica um volume do Catálogo Unity. O volume pode ser qualificado com um nome de esquema ou não qualificado usando um identificador simples.

Sintaxe

[ schema_name .] volume_identifier

Parâmetros

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

Exemplos

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume