Propriedades e opções de tabela
Aplica-se a: SQL do Databricks Runtime do Databricks
Define marcas definidas pelo usuário para tabelas e exibições.
-
Uma propriedade de tabela é um par chave-valor que você pode inicializar ao executar um CREATE TABLE ou um CREATE VIEW. Você pode UNSET as existentes ou SET novas ou existentes usando ALTER TABLE ou ALTER VIEW.
Você pode usar as propriedades da tabela para marcar tabelas com informações não rastreadas por SQL.
-
A finalidade das opções de tabela é passar as propriedades de armazenamento para o armazenamento subjacente, como as propriedades SERDE para o Hive.
Uma opção de tabela é um par chave-valor que você pode inicializar ao executar um CREATE TABLE. Você não pode
SET
ouUNSET
de uma opção de tabela.
TBLPROPERTIES
Define uma ou mais propriedades de tabela em uma tabela ou exibição nova.
Você pode usar as propriedades da tabela para marcar tabelas com informações não rastreadas por SQL.
Sintaxe
TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parâmetros
property_key
A chave da propriedade. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.
As chaves de propriedade devem ser exclusivas e diferenciam maiúsculas de minúsculas.
property_val
O valor para a propriedade. O valor deve ser um literal
BOOLEAN
,STRING
,INTEGER
ouDECIMAL
.
Exemplos
-- Create table with user defined table properties
> CREATE TABLE T(c1 INT) TBLPROPERTIES('this.is.my.key' = 12, this.is.my.key2 = true);
> SHOW TBLPROPERTIES T;
key value
---------------- -----
...
this.is.my.key 14
this.is.my.key2 false
...
SET TBLPROPERTIES
Define uma ou mais propriedades de tabela em uma tabela ou exibição existentes.
Sintaxe
SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parâmetros
property_key
A chave da propriedade. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.
As chaves de propriedade devem ser exclusivas e diferenciam maiúsculas de minúsculas.
property_val
O novo valor para a propriedade. O valor deve ser um literal
BOOLEAN
,STRING
,INTEGER
ouDECIMAL
.
Exemplos
-- Alter the a table's table properties.
> ALTER TABLE T SET TBLPROPERTIES(this.is.my.key = 14, 'this.is.my.key2' = false);
> SHOW TBLPROPERTIES T;
key value
---------------- -----
...
this.is.my.key 14
this.is.my.key2 false
...
UNSET TBLPROPERTIES
Remove uma ou mais propriedades de tabela de uma tabela ou exibição.
Sintaxe
UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parâmetros
IF EXISTS
Uma cláusula opcional que orienta o SQL do Databricks a não gerar um erro se nenhuma das chaves de propriedade existir.
property_key
A chave da propriedade para remover. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.
Chaves de propriedade diferenciam maiúsculas de minúsculas. Se
property_key
não existir e o erro for gerado, a menos queIF EXISTS
tenha sido especificado.
Exemplos
-- Remove a table's table properties.
> ALTER TABLE T UNSET TBLPROPERTIES(this.is.my.key, 'this.is.my.key2');
> SHOW TBLPROPERTIES T;
key value
-------------------------------- -----
... keys other that key and key2 ...
OPÇÕES
Define uma ou mais opções de tabela em uma nova tabela.
A finalidade das opções de tabela é passar as propriedades de armazenamento para o armazenamento subjacente, como as propriedades SERDE para o Hive.
Especificar opções de tabela para tabelas Delta Lake também propagará essas opções como propriedades de tabela.
Sintaxe
OPTIONS ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parâmetros
property_key
A chave da propriedade. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.
As chaves de propriedade devem ser exclusivas e diferenciar maiúsculas de minúsculas.
property_val
O valor para a propriedade. O valor deve ser um literal
BOOLEAN
,STRING
,INTEGER
ouDECIMAL
.No Databricks SQL e no Databricks Runtime 13.3 LTS e versões superiores,
property_val
pode ser uma expressão constante.
Exemplos
-- Create table with user defined table option
-- The options appears with an `option.` prefix.
> CREATE TABLE T(c1 INT) OPTIONS(this.is.my.key = 'blue' || 'green');
> SHOW TBLPROPERTIES T;
key value
---------------- -----
...
option.this.is.my.key bluegreen
...
Chaves de propriedade de tabela reservadas
O Azure Databricks reserva algumas chaves de propriedade para uso próprio e gera um erro se você tentar usá-las:
external
Use CREATE EXTERNAL TABLE para criar uma tabela externa.
location
Use as cláusulas
LOCATION
de ALTER TABLE e CREATE TABLE para definir um local de tabela.owner
Use a cláusula
[SET] OWNER TO
de ALTER TABLE e ALTER VIEW para transferir a propriedade de uma tabela ou exibição. SET é permitido como uma palavra-chave opcional no SQL do Databricks.provider
Use a cláusula
USING
de CREATE TABLE para definir a fonte de dados de uma tabela
Você não deve usar chaves de propriedade começando com o identificador option
.
Esse identificador de prefixo será filtrado em SHOW TBLPROPERTIES.
O prefixo option
também é usado para exibir as opções de tabela.
TBLPROPERTIES comuns e chaves OPTIONS
As configurações a seguir são comumente usadas com o Delta Lake:
delta.appendOnly
: definir comotrue
para desabilitar as operaçõesUPDATE
eDELETE
.delta.dataSkippingNumIndexedCols
: definir como o número de colunas à esquerda para as quais coletar e considerar estatísticas.delta.deletedFileRetentionDuration
: definir como um intervalo, como'interval 7 days'
para controlar quando for permitido queVACUUM
exclua arquivos.delta.logRetentionDuration
: definir como um intervalo, como'interval 60 days'
para controlar quanto tempo o histórico será mantido para consultas de viagem no tempo.