Condividi tramite


Ottimizzazione predittiva per Delta Lake

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

Con l'ottimizzazione predittiva abilitata, Azure Databricks identifica automaticamente le tabelle che traggono vantaggio dalle operazioni di manutenzione e le esegue per l'utente. Le operazioni di manutenzione vengono eseguite solo se necessario, 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.

Quali operazioni vengono eseguite dall'ottimizzazione predittiva?

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

Operazione Descrizione
OPTIMIZE Attiva il clustering incrementale per le tabelle abilitate. Vedere Usare il clustering liquido per le tabelle Delta.

Migliora le prestazioni delle query ottimizzando le dimensioni dei file. Vedere Ottimizzare il layout del file di dati.
VACUUM Riduce i costi di archiviazione eliminando i file di dati non più a cui fa riferimento la tabella. Vedere Rimuovere i file di dati inutilizzati con vuoto.

Nota

OPTIMIZE non viene eseguito ZORDER quando viene eseguito con l'ottimizzazione predittiva.

Avviso

La finestra di conservazione per il VACUUM comando è determinata dalla delta.deletedFileRetentionDuration proprietà della tabella, che per impostazione predefinita è 7 giorni. Ciò significa VACUUM che 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 OPTIMIZE operazioni e VACUUM dalle code per l'esecuzione usando il calcolo dei processi. L'account viene fatturato per il calcolo associato a questi carichi di lavoro usando uno SKU specifico per Databricks Managed Services. Vedere i prezzi per i servizi gestiti di Databricks. Azure Databricks fornisce tabelle di sistema per l'osservabilità in operazioni di ottimizzazione predittiva, costi e impatto. 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. Vedere Aree di Azure Databricks.

  • È 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.

  • Se è necessaria la connettività privata per gli account di archiviazione, è necessario configurare la connettività privata serverless. Vedere Configurare la connettività privata dal calcolo serverless.

Abilitare l'ottimizzazione predittiva

È necessario abilitare l'ottimizzazione predittiva a livello di account.

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

Oggetto Catalog di Unity Privilege
Conto Amministratore dell'account
Catalogo Proprietario catalogo
Schema Proprietario dello schema

Nota

Quando si abilita l'ottimizzazione predittiva per la prima volta, Azure Databricks crea automaticamente un'entità servizio nell'account Azure Databricks. Azure Databricks usa questa entità servizio per eseguire le operazioni di manutenzione richieste. Vedere Gestire le entità servizio.

Abilitare l'ottimizzazione predittiva per l'account

Un amministratore dell'account deve completare i passaggi seguenti per abilitare l'ottimizzazione predittiva per tutti i metastore in un account:

  1. Accedere alla console degli account.
  2. Passare a Impostazioni, quindi Abilitare la funzionalità.
  3. Selezionare Abilitato accanto a Ottimizzazione predittiva.

Nota

I metastore nelle aree che non supportano l'ottimizzazione predittiva non sono abilitati.

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

L'ottimizzazione predittiva usa un modello di ereditarietà. Se 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 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:

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

Controllare se l'ottimizzazione predittiva è abilitata

Il Predictive Optimization campo è 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 una tabella di sistema per tenere traccia della cronologia delle operazioni di ottimizzazione predittiva. Vedere Informazioni di riferimento sulla tabella di 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 il calcolo serverless. Vedere Configurare la connettività privata dal calcolo serverless.

Limiti

L'ottimizzazione predittiva non è disponibile in tutte le aree. Vedere Aree di Azure Databricks.

L'ottimizzazione predittiva non esegue OPTIMIZE comandi nelle tabelle che usano l'ordine Z.

L'ottimizzazione predittiva non esegue VACUUM operazioni sulle tabelle con una finestra di conservazione dei file configurata al di sotto del valore predefinito di 7 giorni. Vedere Configurare la conservazione dei dati per le query di spostamento del tempo.

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