Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 ficheiros Parquet subjacentes. A trituração reduz a I/O necessária para ler campos e melhora a compressão ao usar um formato colunar em vez de um blob binário.
Veja VARIANT tipo, Suporte a tipos variantes para Apache Iceberg e Delta Lake, e Consultar dados variantes.
Requirements
Databricks Runtime 17.3 ou superior é necessário para ler e escrever tabelas VARIANT trituradas. Para um desempenho ótimo de consultas com recolha de estatísticas variantes e salto de dados, a Databricks recomenda o Databricks Runtime 18.1 ou superior.
Ativar destruição de dados
A partir do Databricks Runtime 17.3, a destruição é automaticamente ativada quando cria uma nova tabela com uma ou mais VARIANT colunas usando CREATE TABLE.
CREATE OR REPLACE TABLE e ALTER TABLE não ativam automaticamente a trituração. Isto evita alterar o comportamento de destruição das mesas e cargas de trabalho existentes.
Para tabelas existentes, pode optar manualmente por triturar definindo a enableVariantShredding propriedade da tabela para TRUE e optar por sair definindo a propriedade para FALSE:
Lago Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
Tabela de iceberg
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.
Desative a fragmentação para uma tabela específica
Para excluir uma tabela específica da destruição em futuras escritas, defina a enableVariantShredding propriedade da tabela para FALSE:
Lago Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
Tabela de iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Remova o sharding de uma tabela existente
Para remover a fragmentação em uma tabela existente, remova o recurso com o comando ALTER TABLE. Esta operação também reescreve diretamente no local os dados fragmentados VARIANT no seu formato original VARIANT e define a propriedade enableVariantShredding da tabela como false.
ALTER TABLE my_table DROP FEATURE "variantShredding";
Limitations
- A destruição de dados introduz alguma sobrecarga nas gravações.
- Ativar a trituração não converte automaticamente os dados existentes
VARIANTnuma tabela. Ele só se aplica a dados gravados depois que o recurso é ativado. Para reescrever dados existentesVARIANT, useREORG TABLE my_table APPLY (SHRED VARIANT). - A fragmentação aplica-se às colunas de nível superior
VARIANTou aos camposVARIANTem structs, excluindo os dados armazenados dentro de matrizes ou mapasVARIANT.