Propriedades e opções de tabela

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

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

  • Propriedades da tabela

    Uma propriedade table é um par chave-valor que você pode inicializar quando executa uma CREATE TABLE ou uma CREATE VIEW. Você pode DESDEFINIR propriedades de tabela existentes ou DEFINIR novas ou existentes usando ALTER TABLE ou ALTER VIEW.

    Você pode usar as propriedades da tabela para marcar tabelas com informações não controladas pelo SQL.

  • opções de tabela

    O objetivo 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 quando executa uma CREATE TABLE. Você não pode SET ou UNSET uma opção de tabela.

TBLPROPERTIES

Define uma ou mais propriedades de tabela em uma nova tabela ou exibição.

Você pode usar as propriedades da tabela para marcar tabelas com informações não controladas pelo 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 da propriedade. O valor deve ser um BOOLEAN, STRING, INTEGER, ou DECIMAL literal.

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

DEFINIR TBLPROPERTIES

Define uma ou mais propriedades de tabela em uma tabela ou exibição existente.

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 BOOLEAN, STRING, INTEGER, ou DECIMAL literal.

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

  • SE EXISTE

    Uma cláusula opcional direcionando o Databricks SQL para não gerar um erro se qualquer uma das chaves de propriedade não existir.

  • property_key

    A chave de propriedade a ser removida. A chave pode consistir em um ou mais identificadores separados por um ponto ou um literal de cadeia de caracteres.

    As 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

OPTIONS

Define uma ou mais opções de tabela em uma nova tabela.

O objetivo das opções de tabela é passar as propriedades de armazenamento para o armazenamento subjacente, como as propriedades SERDE para o Hive.

A especificação de opções de tabela para tabelas Delta Lake também ecoará 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 da propriedade. O valor deve ser um BOOLEAN, STRING, INTEGER, ou DECIMAL literal.

    No Databricks SQL e Databricks Runtime 13.3 LTS e superior 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 da tabela reservada

O Azure Databricks reserva algumas chaves de propriedade para seu próprio uso e gera um erro se você tentar usá-las:

  • external

    Use CREATE EXTERNAL TABLE para criar uma tabela externa.

  • location

    Use as LOCATION cláusulas de ALTER TABLE e CREATE TABLE para definir um local de tabela.

  • owner

    Use a cláusula de ALTER TABLE e ALTER VIEW para transferir a [SET] OWNER TO propriedade de uma tabela ou exibição. SET é permitido como uma palavra-chave opcional no Databricks SQL.

  • provider

    Use a USING cláusula de CREATE TABLE para definir a fonte de dados de uma tabela

Você não deve usar chaves de propriedade começando com o option identificador. Este identificador de prefixo será filtrado em SHOW TBLPROPERTIES. O option prefixo também é usado para exibir opções de tabela.

Teclas TBLPROPERTIES e OPTIONS comuns

As seguintes configurações são comumente usadas com o Delta Lake:

  • delta.appendOnly: Defina para true desativar UPDATE e DELETE operações.
  • delta.dataSkippingNumIndexedCols: Defina o número de colunas à esquerda para as quais coletar e considerar estatísticas.
  • delta.deletedFileRetentionDuration: Defina para um intervalo como 'interval 7 days' para controlar quando VACUUM é permitido excluir arquivos.
  • delta.logRetentionDuration: Defina para um intervalo que 'interval 60 days' controle quanto tempo o histórico é mantido para consultas de viagem no tempo.