Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Azure Databricks Runtime
Identifica diferentes tipos de objetos no Azure Databricks.
As seguintes limitações se aplicam a todos os nomes de objetos no Catálogo do Unity:
- Os nomes de objetos não podem exceder 255 caracteres.
- Os seguintes caracteres especiais não são permitidos:
- Período (
.) - Espaço (
) - Barra (
/) - Todos os caracteres de controle ASCII (00-1F hex)
- O caractere DELETE (7F hex)
- Período (
- O Catálogo do Unity armazena todos os nomes de objetos como minúsculas.
- Ao referenciar nomes UC no SQL, você deve usar backticks para escapar de nomes que contêm caracteres especiais, como hifens (
-).
Observação
Os nomes de coluna podem usar caracteres especiais, mas o nome deve ser escapado com backticks em todas as instruções SQL se caracteres especiais forem usados. O Catálogo do Unity preserva o uso de maiúsculas e minúsculas de nome de coluna, mas as consultas em tabelas do Catálogo do Unity não diferenciam maiúsculas de minúsculas.
Nome da conexão
Identifica uma conexão estrangeira.
Uma conexão estrangeira serve como um link para um sistema estrangeiro, como PostgreSQL e, em seguida, pode ser usada para referenciar seus catálogos, esquemas e tabelas.
Sintaxe
connection_identifier
Parâmetros
- connection_identifier: um identificador que identifica exclusivamente a conexão.
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
- catalog_identifier: um identificador que identifica exclusivamente o catálogo.
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
- catalog_name: o nome de um catálogo existente.
- schema_identifier: um identificador que identifica exclusivamente o esquema.
-
CláusulaIDENTIFIER: um mapeamento de constante
STRINGpara um nome de esquema.
Esquemas criados em hive_metastore só podem conter caracteres alfanuméricos ASCII 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 do banco de dados
Um sinônimo de nome de esquema.
Embora o uso de SCHEMA e DATABASE seja intercambiável, SCHEMA é preferencial.
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 de
json,csv,avro,parquet,orc,binaryFile,text,delta(não diferencia maiúsculas de minúsculas).path_to_table: o local da tabela no sistema de arquivos. Você deve ter a permissão
ANY_FILEpara usar essa sintaxe.Cláusula IDENTIFIER: um mapeamento de uma constante
STRINGpara um nome de tabela.temporal_spec: quando usado faz referência a uma tabela Delta no ponto ou versão especificado.
Você pode usar uma especificação temporal somente dentro do contexto de uma consulta ou um MERGE USING.
-
@ timestamp_encoding: um literal BIGINT positivo que codifica um carimbo de data/hora no formato
yyyyMMddHHmmssSSS. - @V version: um literal Inteiro positivo que identifica a versão da tabela Delta.
-
timestamp_expression: uma expressão simples que é avaliada como um TIMESTAMP.
timestamp_expressiomdeve ser uma expressão constante, mas pode contercurrent_date()oucurrent_timestamp(). - version: um literal ou literal de cadeia de caracteres Inteiro que identifica a versão da tabela Delta.
-
@ timestamp_encoding: um literal BIGINT positivo que codifica um carimbo de data/hora no formato
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'para controlarINSERTo comportamento.option_key
A chave de opção. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.
As chaves de opção devem ser exclusivas e diferenciar maiúsculas de minúsculas.
option_val
O valor para a opção. Uma expressão constante do tipo
BOOLEAN,STRINGouINTEGERDECIMAL.
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 primeiro tentará 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 veja a resolução para obter mais informações sobre a resolução de nomes.
O Azure Databricks gerará 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);
Nome da exibição
Identifica uma 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 exibição ou o identificador de exibição de um CTE.
-
Cláusula IDENTIFIER: um mapeamento de
STRINGconstante para um nome de exibição.
As exibições criadas em hive_metastore podem conter apenas 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 exibição 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 exibição qualificado ou não qualificado da exibição que contém a coluna.
- column_identifier: um identificador que especifica o nome da coluna.
-
Cláusula IDENTIFIER: um mapeamento de constante
STRINGpara um nome de coluna.
A coluna identificada deve existir dentro da relação.
O Azure Databricks dá suporte a uma coluna de _metadata especial. Essa pseudo-coluna do tipo struct faz parte de cada tabela e pode ser usada 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 pseudo-coluna _metadata não será acessível.
Os nomes de coluna 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 tabelas AVRO 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 um struct. O campo precisa ser qualificado com o caminho até o struct que contém o campo.
Sintaxe
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parâmetros
- expr: uma expressão do tipo STRUCT.
- field_identifier: um identificador que especifica o nome do campo.
-
Cláusula IDENTIFIER: um mapeamento de
STRINGconstante para um nome de campo.
Um campo profundamente aninhado pode ser referenciado especificando o identificador de campo ao longo do caminho para o struct 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 estar qualificada com um nome de esquema (system.session ou session) ou não qualificada utilizando um identificador simples.
Sintaxe
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parâmetros
-
schema_name:
system.sessionousessionque 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
- schema_name: um nome de esquema qualificado ou não qualificado que contém a função.
- function_identifier: um identificador que especifica o nome da função.
-
Cláusula IDENTIFIER: um mapeamento de
STRINGconstante para um nome de função.
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 procedimento
Identifica um procedimento. O procedimento pode ser qualificado com um nome de esquema ou não qualificado usando um identificador simples.
Sintaxe
{ [ schema_name . ] procedure_identifier |
IDENTIFIER clause }
Parâmetros
- schema_name: um nome de esquema qualificado ou não qualificado que contém o procedimento.
- procedure_identifier: um identificador que especifica o nome do procedimento.
-
IDENTIFIER cláusula: mapeamento de constante
STRINGpara um nome de procedimento.
Exemplos
-- Invoking a procedure.
> CALL myproc();
Nome do parâmetro
Identifica um parâmetro no corpo de uma função definida pelo usuário do SQL (UDF do SQL) ou um procedimento. O parâmetro pode ser qualificado com um identificador de rotina ou não qualificado usando um identificador simples.
Sintaxe
[ routine_identifier . ] parameter_identifier
Parâmetros
- routine_identifier: um identificador que especifica o nome de uma função ou procedimento.
- parameter_identifier: um identificador que especifica o nome de um parâmetro.
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`;
Nome do rótulo
Identifica um rótulo de uma instrução composta ou instrução de looping.
Sintaxe
label_identifier
Parâmetros
- label_identifier: um identificador que especifica o nome de um rótulo.
Exemplos
-- Execute a loop named `label` and leave it right away.
> BEGIN
label: LOOP
LEAVE label;
END LOOP label;
END;
Nome da condição
Identifica uma classe de erro definida pelo sistema ou uma condição definida pelo usuário definida em uma instrução composta.
Sintaxe
condition_identifier
Parâmetros
- condition_identifier: um identificador que especifica o nome da condição.
Exemplos
-- Declare an exit handler for a DIVIDE_BY_ZERO condition
BEGIN
DECLARE a INT DEFAULT 1;
DECLARE b INT DEFAULT 5;
DECLARE EXIT HANDLER FOR DIVIDE_BY_ZERO
BEGIN
VALUES (15);
END;
SET a = 10;
SET a = b / 0;
VALUES (a);
END;
15
Alias de tabela
Rotula uma referência de tabela, consulta, função de tabela ou outra forma de uma relação.
Sintaxe
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parâmetros
- table_identifier: um identificador que especifica o nome da tabela.
- column_identifierN: um identificador opcional que especifica o nome da coluna.
Se você fornecer identificadores de coluna, o número deverá corresponder ao número de colunas na relação correspondente.
Se você não fornecer identificadores de coluna, 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 `직원`;
Alias de coluna
Rotula o resultado de uma expressão em uma lista SELECT para referência.
Se a expressão for uma função geradora de valores de tabela , o alias rotulará a lista de colunas produzidas.
Sintaxe
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parâmetros
- column_identifier: um identificador que especifica o nome da coluna.
Embora os aliases de coluna não precisem ser exclusivos na lista de seleção, a exclusividade é um requisito para referenciar um alias por 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 da ordenação
Identifica uma ordenação para uma coluna ou expressão.
Sintaxe
collation_identifier
Parâmetros
- collation_identifier: um identificador que especifica o nome da classificação.
Para obter uma lista de ordenações com suporte, confira Ordenações com suporte. Para obter detalhes sobre ordenações, consulte Ordenação.
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
- credential_identifier: um identificador não qualificado que identifica exclusivamente a credencial.
Exemplos
`my_storage_cred`
my_storage_cred
Nome da localização
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 do compartilhamento
Identifica um compartilhamento para acessar os 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 provedor
Identifica um provedor do Delta Sharing.
Sintaxe
provider_identifier
Parâmetros
-
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 metastores 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, seja ele qualificado ou não, 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