Ottimizzazione predittiva per le tabelle gestite di Unity Catalog
Nota
Per tutti gli account creati dopo il 11 novembre 2024, Databricks abilita l'ottimizzazione predittiva per impostazione predefinita.
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 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.
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 di tabelle live Delta.
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. 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. |
ANALYZE (2) |
Attiva l'aggiornamento incrementale delle statistiche per migliorare le prestazioni delle query. |
(1) OPTIMIZE
non viene eseguito quando viene eseguito ZORDER
con l'ottimizzazione predittiva.
(2) L'ottimizzazione predittiva con ANALYZE
è disponibile in anteprima pubblica. Include una raccolta di stastistici intelligenti durante le scritture. Usare questo modulo per iscriversi all'anteprima pubblica. Durante l'anteprima pubblica iniziale, ANALYZE
i comandi possono essere eseguiti su tabelle con 500 colonne o meno.
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 ANALYZE
operazioni , OPTIMIZE
e VACUUM
e le accoda per l'esecuzione usando il calcolo serverless per i 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 dall’elaborazione serverless.
Abilitare l'ottimizzazione predittiva
È necessario abilitare l'ottimizzazione predittiva a livello di account.
Nota
Se l'account è stato creato dopo il 11 novembre 2024, l'ottimizzazione predittiva è abilitata per impostazione predefinita.
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:
- Accedere alla console degli account.
- Passare a Impostazioni, quindi Abilitare la funzionalità.
- 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.
Importante
Per visualizzare questo campo, è necessario abilitare l'ottimizzazione predittiva a livello di account.
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.
Messaggio di errore collegamento privato
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 dall’elaborazione 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 cronologico.
L'ottimizzazione predittiva non esegue operazioni di manutenzione nelle tabelle seguenti:
- Tabelle caricate in un'area di lavoro come destinatari di condivisione differenziale.
- Tabelle esterne.
- Viste materializzate. Vedere Utilizzare le viste materializzate in Databricks SQL.
- Tabelle di streaming. Vedere Caricare dati usando tabelle di streaming in Databricks SQL.