Condividi tramite


Ottimizzare prestazioni sui dati VARIANT con smistamento

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Questa pagina descrive come usare la suddivisione per ottimizzare le prestazioni delle query nelle tabelle con dati semistrutturati nelle VARIANT colonne.

Vedi VARIANT tipo, supporto per il tipo Varia, e interrogare i dati del tipo Varia.

Che cos'è il processo di distruzione dati (shredding)?

Shredding migliora le prestazioni delle query sui dati VARIANT archiviando i campi comuni come colonne separate nei file Parquet. Questo processo riduce l'I/O necessario per leggere i campi e migliora la compressione usando un formato a colonne anziché un BLOB binario.

Requisiti

Databricks Runtime 17.2 o versione successiva è necessario per leggere e scrivere tabelle VARIANT suddivise.

Abilitare la cancellazione dati

Abilitare la suddivisione per l'intera area di lavoro tramite il portale di anteprima. Non sono necessarie modifiche al codice per leggere o scrivere VARIANT dati con frammentazione.

Dopo aver abilitato la funzionalità per l'area di lavoro, la suddivisione automatica viene abilitata per gli scenari seguenti:

  • CREATE TABLE con una o più VARIANT colonne.
  • CREATE AND REPLACE TABLE con una o più VARIANT colonne.
  • ALTER TABLE quando si aggiungono una o più VARIANT colonne.

Per le tabelle esistenti, è possibile acconsentire esplicitamente manualmente alla suddivisione impostando la enableVariantShredding proprietà table su TRUE e rifiutare esplicitamente impostando la proprietà su FALSE, a condizione che la suddivisione sia abilitata a livello di area di lavoro:

Tabella Delta

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

Tabella Iceberg

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

Verificare che lo shredding sia abilitato controllando che la proprietà enableVariantShredding della tabella sia impostata su true.

** Disattivare la cancellazione sicura per le scritture future per una tabella specifica

Se si abilita la versione beta di Shredding per l'area di lavoro, ma si desidera escludere una tabella specifica, impostare la proprietà della tabella enableVariantShredding.

Tabella Delta

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

Tabella Iceberg

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

Rimuovere la cancellazione da una tabella esistente

Per rimuovere la suddivisione in una tabella esistente, eliminare la funzionalità con il ALTER TABLE comando . Questa operazione sovrascrive anche i dati shredded direttamente nel formato VARIANT ricostruito e imposta la proprietà della tabella VARIANT su false.

ALTER TABLE my_table DROP FEATURE "variantShredding-preview";

Limitazioni

  • La frammentazione dei dati introduce un sovraccarico nelle operazioni di scrittura.
  • L'abilitazione dello shredding non converte automaticamente i dati esistenti VARIANT in una tabella. Si applica solo ai dati scritti dopo l'abilitazione della funzionalità. Per riscrivere i dati esistenti VARIANT , usare REORG TABLE my_table APPLY (SHRED VARIANT).
  • Lo shredding si applica ai campi di primo livello VARIANT o alle colonne VARIANT degli struct, ad eccezione dei dati archiviati all'interno di matrici o mappe VARIANT.