Otimizar o desempenho dos dados VARIANT com fragmentação
Beta
Esse recurso está na versão beta.
Esta página descreve como usar a fragmentação para otimizar o desempenho da consulta em tabelas com dados semiestruturados nas colunas VARIANT.
Consulte VARIANT type, Variant support in Delta Lake e Query variant data.
O que é trituração?
A fragmentação melhora o desempenho da consulta dos dados do site VARIANT, armazenando campos que ocorrem com frequência como colunas separadas nos arquivos Parquet. Esse processo reduz a E/S necessária para ler campos e melhora a compactação usando um formato colunar em vez de um blob binário.
Requisitos
Databricks Runtime 17.2 ou acima é necessário para ler e gravar tabelas VARIANT fragmentadas.
Habilitar a destruição
Habilite a fragmentação para todo o site workspace por meio do Preview Portal. Nenhuma alteração no código é necessária para ler ou gravar dados VARIANT com destruição.
Depois que o senhor ativar o recurso para o seu workspace, a fragmentação será automaticamente ativada para os seguintes cenários:
CREATE TABLEcom uma ou mais colunasVARIANT.CREATE AND REPLACE TABLEcom uma ou mais colunasVARIANT.ALTER TABLEao adicionar uma ou mais colunasVARIANT.
Você também pode habilitar manualmente a fragmentação em uma tabela definindo a propriedade enableVariantShredding da tabela:
- Delta table
- Iceberg table
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');
Verifique se a fragmentação está ativada verificando se a propriedade da tabela enableVariantShredding está definida como true.
Opte por não destruir em futuras gravações para uma tabela específica
Se o senhor ativar a fragmentação Beta para o site workspace, mas quiser excluir uma tabela específica, defina a propriedade enableVariantShredding table:
- Delta table
- Iceberg table
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Remover a destruição em uma tabela existente
Para remover a fragmentação em uma tabela existente, elimine o recurso com o comando ALTER TABLE. Essa operação também reescreve os dados fragmentados do site VARIANT no lugar do formato VARIANT não fragmentado e define a propriedade da tabela enableVariantShredding como false.
ALTER TABLE my_table DROP FEATURE "variantShredding-preview";
Limitações
- A destruição de dados gera alguma sobrecarga nas gravações.
- A ativação da destruição não converte automaticamente os dados
VARIANTexistentes em uma tabela. Aplica-se apenas aos dados gravados depois que o recurso é ativado. Para reescrever os dados existentesVARIANTuso de dadosREORG TABLE my_table APPLY (SHRED VARIANT). - A destruição se aplica às colunas
VARIANTde nível superior ou aos camposVARIANTem estruturas, excluindo os dadosVARIANTarmazenados em matrizes ou mapas.