Propriedades e opções de tabela

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva Runtime do Databricks

Define marcas definidas pelo usuário para tabelas e exibições.

  • propriedades da tabela

    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.

  • opções de tabela

    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 ou UNSET 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 ou DECIMAL.

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;
option.serialization.format     1
this.is.my.key  12
this.is.my.key2 true
transient_lastDdlTime   1649783569

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 ou DECIMAL.

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;
option.serialization.format     1
this.is.my.key  14
this.is.my.key2 false
transient_lastDdlTime   1649783980

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 que IF 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;
option.serialization.format     1
transient_lastDdlTime   1649784415

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 ou DECIMAL.

    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;
option.this.is.my.key bluegreen
option.serialization.format     2

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áusulaUSING 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 como true para desabilitar as operações UPDATE e DELETE.
  • 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 que VACUUM 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.