Condividi tramite


Ottimizzazione predittiva per le tabelle gestite di Unity Catalog

Databricks abilita l'ottimizzazione predittiva per impostazione predefinita per tutti gli account creati dopo il 11 novembre 2024.

L'ottimizzazione predittiva elimina la necessità di gestire manualmente le operazioni di manutenzione per le tabelle gestite di Unity Catalog in Azure Databricks.

Con l'ottimizzazione predittiva abilitata, Azure Databricks esegue automaticamente le operazioni seguenti:

  • Identifica le tabelle che traggono vantaggio dalle operazioni di manutenzione e inserisce queste operazioni nelle code per l'esecuzione.
  • Raccoglie le statistiche quando i dati vengono scritti in una tabella gestita.

Le operazioni di manutenzione vengono eseguite in base alle esigenze, eliminando le esecuzioni non necessarie per le operazioni di manutenzione e il carico di lavoro associato al rilevamento e alla risoluzione dei problemi delle prestazioni.

Databricks consiglia di usare il clustering liquido automatico e l'ottimizzazione predittiva per tutte le tabelle gestite di Unity Catalog. Queste funzionalità offrono un'ottimizzazione intelligente del layout dei dati in base ai modelli di utilizzo dei dati. Vedi l'uso del clustering liquido per le tabelle Delta.

Importante

L'ottimizzazione predittiva viene eseguita solo nelle tabelle gestite di Unity Catalog.

L'ottimizzazione predittiva non viene eseguita in tabelle di streaming o viste materializzate create in Databricks SQL o tramite pipeline DLT.

Quali operazioni vengono eseguite dall'ottimizzazione predittiva?

L'ottimizzazione predittiva esegue automaticamente le operazioni seguenti per le tabelle abilitate:

Operazione Descrizione
OPTIMIZE (1) Attiva il clustering incrementale per le tabelle abilitate. Vedi l'uso del clustering liquido per le tabelle Delta.
Migliora le prestazioni delle query ottimizzando le dimensioni dei file. Vedere Ottimizzare il layout dei file di dati.
VACUUM Riduce i costi di archiviazione eliminando i file di dati non più a cui fa riferimento la tabella. Vedi Eliminazione dei file di dati inutilizzati con vacuum.
ANALYZE Attiva l'aggiornamento incrementale delle statistiche per migliorare le prestazioni delle query. Vedi ANALYZE TABLE.

(1)OPTIMIZE non si avvia quando viene eseguito ZORDER con l'ottimizzazione predittiva. Nelle tabelle che usano l'ordine Z, l'ottimizzazione predittiva ignorerà i file ordinati Z.

Se il clustering liquido automatico è abilitato, l'ottimizzazione predittiva potrebbe selezionare nuove chiavi di clustering prima del clustering dei dati. Vedi l'uso del clustering liquido per le tabelle Delta.

Avviso

La finestra di conservazione per il comando VACUUM è determinata dalla proprietà della tabella delta.deletedFileRetentionDuration, che per impostazione predefinita è 7 giorni. Ciò significa che VACUUM rimuove i file di dati a cui non fa più riferimento una versione della tabella Delta negli ultimi 7 giorni. Se si desidera conservare i dati per più tempo ,ad esempio per supportare il viaggio nel tempo per durate più lunghe, è necessario impostare questa proprietà di tabella in modo appropriato prima di abilitare l'ottimizzazione predittiva, come nell'esempio seguente:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

Dove viene eseguita l'ottimizzazione predittiva?

L'ottimizzazione predittiva identifica le tabelle che trarrebbero vantaggio dalle operazioni ANALYZE, OPTIMIZEe VACUUM e le accoda per l'esecuzione usando il calcolo serverless per i carichi di lavoro. L'account viene fatturato per le risorse di calcolo associate a questi carichi di lavoro usando uno SKU specifico di Databricks Managed Services. Vedere i prezzi per i servizi gestiti di Databricks. Vedere Usare le tabelle di sistema per tenere traccia dell'ottimizzazione predittiva.

Prerequisiti per l'ottimizzazione predittiva

Per abilitare l'ottimizzazione predittiva, è necessario soddisfare i requisiti seguenti:

  • L'area di lavoro di Azure Databricks deve trovarsi nel piano Premium in un'area che supporta l'ottimizzazione predittiva. Consulta Funzionalità con disponibilità regionale limitata.
  • È necessario usare SQL Warehouse o Databricks Runtime 12.2 LTS o versione successiva quando si abilita l'ottimizzazione predittiva.
  • Sono supportate solo le tabelle gestite di Unity Catalog.

Abilitare l'ottimizzazione predittiva

È possibile abilitare l'ottimizzazione predittiva per un account, un catalogo o uno schema. Tutte le tabelle gestite di Unity Catalog ereditano il valore dell'account per impostazione predefinita. È possibile eseguire l'override dell'impostazione predefinita dell'account per un catalogo o uno schema per abilitare o disabilitare l'ottimizzazione predittiva a tale livello.

Nota

Se l'account è stato creato dopo il 11 novembre 2024, l'ottimizzazione predittiva è abilitata per impostazione predefinita per l'account.

Per abilitare o disabilitare l'ottimizzazione predittiva a livello specificato, è necessario disporre dei privilegi seguenti:

Oggetto del Catalogo di Unity Privilegio
Conto Amministratore dell'account
Catalogo Proprietario del catalogo
Schema Proprietario dello schema

Nota

Quando si abilita l'ottimizzazione predittiva per la prima volta, Azure Databricks crea automaticamente un principale del servizio nell'account Azure Databricks. Azure Databricks usa questo principale del servizio per eseguire delle operazioni di manutenzione richieste. Consulta Gestione dei principali del servizio.

Abilitare o disabilitare l'ottimizzazione predittiva per l'account

Un amministratore dell'account può completare i passaggi seguenti per abilitare l'ottimizzazione predittiva per tutti i metastore in un account. Per impostazione predefinita, gli oggetti nell'account erediteranno questa impostazione, ma l'impostazione può essere sostituita a livello di catalogo o schema.

  1. Accedere alla console dei conti.
  2. Passare a Impostazioni, quindi Abilitare la funzionalità.
  3. Seleziona l'opzione da usare (ad esempio, Abilitato) accanto a Ottimizzazione predittiva.

Nota

  • I metastore nelle aree che non supportano l'ottimizzazione predittiva non sono abilitati.
  • La disabilitazione dell'ottimizzazione predittiva a livello di account non la disabilita per cataloghi o schemi che l'hanno abilitata in modo specifico.

Abilitare o disabilitare l'ottimizzazione predittiva per un catalogo o uno schema

L'ottimizzazione predittiva usa un modello di ereditarietà. Quando abilitato per un catalogo, gli schemi ereditano la proprietà. Le tabelle all'interno di uno schema abilitato ereditano l'ottimizzazione predittiva. Per eseguire l'override di questo comportamento di ereditarietà, è possibile abilitare o disabilitare in modo esplicito l'ottimizzazione predittiva per un catalogo o uno schema.

Nota

È possibile disabilitare l'ottimizzazione predittiva a livello di catalogo o schema prima di abilitarla a livello di account. Se l'ottimizzazione predittiva viene abilitata in un secondo momento nell'account, viene bloccata per le tabelle in questi oggetti.

Usare la sintassi seguente per abilitare o disabilitare l'ottimizzazione predittiva oppure per tornare all'impostazione predefinita di ereditare dall'oggetto padre:

ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;

Controllare se l'ottimizzazione predittiva è abilitata

Il campo Predictive Optimization è una proprietà del catalogo Unity che illustra in dettaglio se l'ottimizzazione predittiva è abilitata. Se l'ottimizzazione predittiva viene ereditata da un oggetto padre, questo valore è indicato nel valore del campo.

Usare la sintassi seguente per verificare se l'ottimizzazione predittiva è abilitata:

DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name

Usare le tabelle di sistema per tenere traccia dell'ottimizzazione predittiva

Azure Databricks fornisce la tabella di sistema system.storage.predictive_optimization_operations_history per l'osservabilità in operazioni di ottimizzazione predittiva, costi e impatto. Vedere Riferimento alla tabella del sistema di ottimizzazione predittiva.

Se la tabella di sistema contrassegna le operazioni come non riuscite con FAILED: PRIVATE_LINK_SETUP_ERROR, potrebbe non essere stato configurato correttamente il collegamento privato per l'ambiente di calcolo serverless. Vedi Configurare la connettività privata dall’elaborazione serverless.

Limiti

L'ottimizzazione predittiva non è disponibile in tutte le aree. Consulta Funzionalità con disponibilità regionale limitata.

Per le tabelle con durata di conservazione dei file eliminata (delta.deletedFileRetentionDuration) configurata al di sotto del valore predefinito di 7 giorni, l'ottimizzazione predittiva viene eseguita VACUUM con durata di conservazione specificata come 7 giorni. Vedere Configurare la conservazione dei dati per le query di spostamento cronologico.

L'ottimizzazione predittiva non esegue operazioni di manutenzione nelle tabelle seguenti: