Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Aggiornamenti e Cancellazioni di Dati di Base | Core Databricks Concepts
Fondamenti di Databricks: Guida per Principianti

Aggiornamenti e Cancellazioni di Dati di Base

Scorri per mostrare il menu

Note
Definizione

Nei Data Lake standard, aggiornare o eliminare una singola riga è quasi impossibile senza riscrivere l'intero dataset. Poiché Delta Lake utilizza un registro delle transazioni, supporta i comandi SQL standard UPDATE e DELETE, consentendo modifiche precise alle tabelle.

Nella sezione precedente, l'attenzione era rivolta alla lettura e alla sintesi dei dati. Tuttavia, i dati sono raramente statici: potresti scoprire che un lotto di record di diamanti presenta prezzi errati, oppure che un determinato tipo di "cut" deve essere rimosso dai report.

Poiché la tabella diamonds è una tabella Delta, può essere modificata come un database tradizionale.

1. Aggiornamento dei record

Il comando UPDATE consente di modificare i valori nelle righe specifiche che soddisfano una condizione. Ad esempio, se tutti i diamanti con taglio "Fair" ricevono un aumento di prezzo del 10%:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — Definisce il nuovo valore per la colonna
  • WHERE — Fondamentale. Senza una clausola WHERE, il prezzo verrebbe aggiornato per ogni diamante dell'intera tabella

2. Eliminazione dei record

Il comando DELETE rimuove definitivamente le righe dalla tabella. Utilizzare questa operazione quando i dati non sono più rilevanti o sono stati inseriti per errore.

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

Questo comando identifica tutti i diamanti con peso superiore a 5 carati e li rimuove dalla versione attiva della tabella.

3. Verifica dopo la modifica

Dopo aver eseguito un aggiornamento o una cancellazione, è sempre consigliabile verificare la modifica con un semplice SELECT count per assicurarsi che l'operazione sia stata eseguita correttamente.

-- Verify how many 'Fair' diamonds are left (count should be the same, but prices changed)
SELECT count(*) FROM workspace.workshop.diamonds WHERE cut = 'Fair'

4. Sicurezza degli aggiornamenti Delta

Quando si esegue un comando DELETE o UPDATE, Delta Lake non elimina direttamente i dati dai vecchi file. Invece, segue un processo in tre fasi:

  1. Segna i vecchi file come "non validi"
  2. Scrive nuovi file contenenti i dati aggiornati
  3. Registra la modifica nel Transaction Log

Per questo motivo la Time Travel continua a funzionare anche dopo una cancellazione: i vecchi dati esistono ancora nelle versioni precedenti dei file della tabella finché la cronologia non viene eliminata manualmente.

5. Best practice: test con SELECT

Prima di eseguire un DELETE o un UPDATE, testare sempre il filtro con un SELECT.

  • Invece di: DELETE FROM diamonds WHERE color = 'J'
  • Provare prima: SELECT * FROM diamonds WHERE color = 'J'

Se i risultati del SELECT mostrano esattamente ciò che si intende rimuovere, è possibile procedere in sicurezza con il comando DELETE.

1. Cosa succede se si esegue un comando UPDATE senza una clausola WHERE?

2. L'esecuzione di un comando DELETE su una tabella Delta cancella immediatamente e per sempre i dati dallo storage cloud sottostante?

question mark

Cosa succede se si esegue un comando UPDATE senza una clausola WHERE?

Seleziona la risposta corretta

question mark

L'esecuzione di un comando DELETE su una tabella Delta cancella immediatamente e per sempre i dati dallo storage cloud sottostante?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 5. Capitolo 4
some-alt