Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A fragmentação de variantes melhora o desempenho das consultas em colunas VARIANT ao armazenar 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 columnar em vez de um blob binário.
Consulte VARIANTtipo, suporte ao tipo de variante no Apache Iceberg e no Delta Lake e Consultar dados de variante.
Requirements
O Databricks Runtime 17.3 ou superior é necessário para ler e gravar tabelas VARIANT fragmentadas. Para obter o melhor desempenho de consulta com coleta de estatísticas de variantes e eliminação de dados, o Databricks recomenda o Databricks Runtime 18.1 ou posterior.
Habilitar fragmentação
A partir do Databricks Runtime 17.3, a fragmentação é habilitada automaticamente quando você cria uma nova tabela com uma ou mais VARIANT colunas usando CREATE TABLE.
CREATE OR REPLACE TABLE e ALTER TABLE não habilitam a fragmentação automaticamente. Isso evita alterar o comportamento de fragmentação de tabelas e cargas de trabalho existentes.
Para tabelas existentes, você pode ativar manualmente o shredding definindo a propriedade da tabela enableVariantShredding como TRUE e desativá-lo definindo a propriedade como FALSE:
Lago Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
Tabela do Iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');
Verifique se a fragmentação está habilitada verificando se a propriedade enableVariantShredding da tabela está definida como true.
Recusar a fragmentação de uma tabela específica
Para excluir uma tabela específica da fragmentação em gravações futuras, defina a propriedade da enableVariantShredding tabela como FALSE:
Lago Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
Tabela do Iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Remover a fragmentação de uma tabela existente
Para remover a fragmentação em uma tabela existente, use o comando ALTER TABLE para soltar o recurso. Essa operação também regrava dados fragmentados VARIANT no local no formato não fragmentado VARIANT e define a propriedade da tabela enableVariantShredding como falsa.
ALTER TABLE my_table DROP FEATURE "variantShredding";
Limitations
- Introduzir a fragmentação de dados gera alguma sobrecarga nas operações de gravação.
- Habilitar a fragmentação não converte automaticamente dados existentes
VARIANTem uma tabela. Ele só se aplica aos dados gravados depois que o recurso é habilitado. Para reescrever dados existentesVARIANT, useREORG TABLE my_table APPLY (SHRED VARIANT). - A fragmentação se aplica a colunas de alto nível
VARIANTou camposVARIANTem structs, exceto dados armazenadosVARIANTdentro de arrays ou mapas.