Pular para o conteúdo principal

Otimize o desempenho nos dados VARIANT com fragmentação

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.

Esta página descreve como usar a fragmentação para otimizar o desempenho da consulta em tabelas com dados semiestruturados em colunas VARIANT.

Consulte tipo deVARIANT, Compatibilidade com tipo de Variant e Consultar dados variant.

O que é fragmentação?

A fragmentação melhora o desempenho da query dos dados VARIANT ao armazenar campos comuns como colunas separadas nos arquivos Parquet. Este processo reduz o I/O necessário para ler campos e melhora a compressão usando um formato em colunas em vez de um blob binário.

Requisitos

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

Ativar exclusão

Habilite a fragmentação para todo o seu workspace pelo portal de pré-visualização. Não são necessárias alterações de código para ler ou gravar dados VARIANT com fragmentação.

Depois de ativar o recurso para seu workspace, a destruição é ativada automaticamente 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 habilitar manualmente a fragmentação, definindo a propriedade da tabela enableVariantShredding como TRUE, e desabilitá-la 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.

Desativar a fragmentação em gravações futuras para uma tabela específica

Se você habilitar o shredding Beta para o seu workspace, mas quiser excluir uma tabela específica, defina a propriedade da tabela enableVariantShredding:

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

Remova a desagregaçã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.
  • A habilitação da fragmentação não converte automaticamente os dados existentes de VARIANT 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.