Che cos'è l'I/O predittivo?

L'I/O predittivo è una raccolta di ottimizzazioni di Azure Databricks che migliorano le prestazioni per le interazioni con i dati. Le funzionalità di I/O predittive sono raggruppate nelle categorie seguenti:

  • Le letture accelerate riducono il tempo necessario per analizzare e leggere i dati.
  • Gli aggiornamenti accelerati riducono la quantità di dati che devono essere riscritti durante gli aggiornamenti, le eliminazioni e i merge.

L'I/O predittivo è esclusivo del motore Photon in Azure Databricks.

Usare le operazioni di I/O predittive per accelerare le letture

L'I/O predittivo viene usato per accelerare l'analisi dei dati e filtrare le prestazioni per tutte le operazioni sui tipi di calcolo supportati.

Importante

Le letture di I/O predittive sono supportate dai tipi serverless e pro di sql warehouse e dai cluster con accelerazione Photon che eseguono Databricks Runtime 11.3 LTS e versioni successive.

L'I/O predittivo migliora le prestazioni di analisi applicando tecniche di Deep Learning per eseguire le operazioni seguenti:

  • Determinare il modello di accesso più efficiente per leggere i dati e analizzare solo i dati effettivamente necessari.
  • Eliminare la decodifica di colonne e righe non necessarie per generare i risultati della query.
  • Calcolare le probabilità dei criteri di ricerca nelle query selettive corrispondenti a una riga. Durante l'esecuzione delle query, si usano queste probabilità per prevedere la posizione in cui si verificherebbe la riga corrispondente successiva e leggere solo i dati dall'archiviazione cloud.

Usare l'I/O predittivo per accelerare gli aggiornamenti

Le operazioni di I/O predittive per gli aggiornamenti vengono usate automaticamente per tutte le tabelle con vettori di eliminazione abilitati usando i tipi di calcolo abilitati per Photon seguenti:

  • Serverless SQL Warehouse.
  • Pro SQL Warehouse.
  • Cluster che eseguono Databricks Runtime 14.0 e versioni successive.

Nota

Il supporto per l'I/O predittivo per gli aggiornamenti è presente in Databricks Runtime 12.2 LTS e versioni successive, ma Databricks consiglia di usare 14.0 e versioni successive per ottenere prestazioni ottimali.

Vedere Che cosa sono i vettori di eliminazione?.

Importante

Un'impostazione di amministratore dell'area di lavoro controlla se i vettori di eliminazione sono abilitati automaticamente per le nuove tabelle Delta. Vedere Abilitare automaticamente i vettori di eliminazione.

È possibile abilitare il supporto per i vettori di eliminazione in una tabella Delta Lake impostando una proprietà di tabella Delta Lake. È possibile abilitare i vettori di eliminazione durante la creazione di tabelle o modificare una tabella esistente, come negli esempi seguenti:

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Avviso

Quando si abilitano i vettori di eliminazione, la versione del protocollo di tabella viene aggiornata. Dopo l'aggiornamento, la tabella non sarà leggibile dai client Delta Lake che non supportano i vettori di eliminazione. Vedere How does Azure Databricks manage Delta Lake feature compatibility?.

Per un elenco dei client che supportano vettori di eliminazione, vedere Compatibilità con i client Delta.

In Databricks Runtime 14.1 e versioni successive è possibile eliminare la funzionalità di tabella dei vettori di eliminazione per abilitare la compatibilità con altri client Delta. Vedere Eliminare le funzionalità della tabella Delta.

L'I/O predittivo sfrutta i vettori di eliminazione per accelerare gli aggiornamenti riducendo la frequenza di riscrittura completa dei file durante la modifica dei dati nelle tabelle Delta. L'I/O predittivo ottimizza le DELETEoperazioni , MERGEe UPDATE .

Anziché riscrivere tutti i record in un file di dati quando un record viene aggiornato o eliminato, l'I/O predittivo usa vettori di eliminazione per indicare che i record sono stati rimossi dai file di dati di destinazione. I file di dati supplementari vengono usati per indicare gli aggiornamenti.

Le letture successive sulla tabella risolvono lo stato corrente della tabella applicando le modifiche annotate alla versione più recente della tabella.

Importante

Gli aggiornamenti di I/O predittivi condividono tutte le limitazioni con i vettori di eliminazione. In Databricks Runtime 12.2 LTS e versioni successive esistono le limitazioni seguenti:

  • La condivisione differenziale non è supportata nelle tabelle con vettori di eliminazione abilitati.
  • Non è possibile generare un file manifesto per una tabella con vettori di eliminazione presenti. Eseguire REORG TABLE ... APPLY (PURGE) e verificare che non siano in esecuzione operazioni di scrittura simultanee per generare un manifesto.
  • Non è possibile generare in modo incrementale i file manifesto per una tabella con vettori di eliminazione abilitati.