Pular para o conteúdo principal

Use o variant shredding para otimizar o desempenho

info

Beta

Este recurso está em Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.

A fragmentação de variantes melhora o desempenho da query em colunas VARIANT, armazenando campos que ocorrem com frequência como colunas separadas nos arquivos Parquet subjacentes. A fragmentação reduz a E/S necessária para ler campos e melhora a compactação usando um formato de colunas em vez de um blob binário.

Consulte tipoVARIANT, suporte a tipo Variant para Apache Iceberg e Delta Lake e consultar dados variant.

Requisitos

Databricks Runtime 17,2 ou superior é necessário para ler e gravar tabelas VARIANT fragmentadas.

Ativar exclusão

Os administradores do workspace podem ativar o shredding na página Pré-visualizações do workspace. Consulte Gerenciar prévias do Databricks.

Nenhuma alteração de código é necessária para ler ou gravar dados VARIANT com fragmentação.

Depois de ativar o recurso para seu workspace, a fragmentação será ativada automaticamente nas tabelas para os seguintes cenários:

  • CREATE TABLE com uma ou mais VARIANT colunas.
  • CREATE AND REPLACE TABLE com uma ou mais VARIANT colunas.
  • ALTER TABLE ao adicionar uma ou mais VARIANT colunas.

Para tabelas existentes, é possível optar manualmente pela fragmentação, definindo a propriedade de tabela enableVariantShredding como true, e cancelar a opção, definindo a propriedade como false, desde que a fragmentação esteja habilitada no nível do workspace:

SQL
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');

Verifique se a fragmentação está habilitada, verificando se a propriedade da tabela enableVariantShredding está definida como true.

Cancelar a participação na desagregação para uma tabela específica

Se você habilitar a versão Beta de desagregação para seu workspace, mas quiser excluir uma tabela específica, defina a propriedade da tabela enableVariantShredding como false:

SQL
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');

Remover fragmentação de uma tabela existente

Para remover a fragmentação em uma tabela existente, descarte o recurso com o comando ALTER TABLE. Esta operação também reescreve os dados VARIANT fragmentados no local para o formato VARIANT não fragmentado e define a propriedade da tabela enableVariantShredding como false.

SQL
ALTER TABLE my_table DROP FEATURE "variantShredding-preview";

Limitações

  • A fragmentação de dados introduz alguma sobrecarga de escrita.
  • Habilitar o desmembramento não converte automaticamente os dados VARIANT existentes em uma tabela. Aplica-se somente a dados gravados após a ativação do recurso. Para reescrever os dados VARIANT existentes, use REORG TABLE my_table APPLY (SHRED VARIANT).
  • A fragmentação se aplica a colunas VARIANT de nível superior ou campos VARIANT em structs, excluindo dados VARIANT armazenados dentro de arrays ou mapas.