Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende Dataoppdateringer og Slettinger | Grunnleggende Databricks-Konsepter
Databricks Grunnleggende: En Nybegynnerguide

Grunnleggende Dataoppdateringer og Slettinger

Sveip for å vise menyen

Note
Definisjon

I vanlige Data Lakes er det nesten umulig å oppdatere eller slette en enkelt rad uten å skrive om hele datasettet. Siden Delta Lake bruker en transaksjonslogg, støtter det standard SQL-kommandoene UPDATE og DELETE, noe som gir mulighet for presise endringer i tabellene dine.

I forrige seksjon fokuserte du på å lese og oppsummere data. Data er imidlertid sjelden statisk — du kan oppdage at en batch med diamantdata har feil pris, eller at en bestemt "cut"-type må fjernes fra rapporteringen.

Siden diamonds-tabellen er en Delta-tabell, kan du endre den på samme måte som en tradisjonell database.

1. Oppdatering av poster

UPDATE-kommandoen lar deg endre verdier i spesifikke rader som oppfyller en betingelse. For eksempel, hvis alle diamanter med "Fair" cut fikk en prisøkning på 10 %:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — Definerer den nye verdien for kolonnen
  • WHERE — Kritisk. Uten en WHERE-setning ville du oppdatert prisen for hver eneste diamant i hele tabellen

2. Slette poster

Kommandoen DELETE fjerner rader fra tabellen permanent. Brukes når data ikke lenger er relevant eller ble lastet inn ved en feil.

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

Denne kommandoen identifiserer alle diamanter større enn 5 carat og fjerner dem fra den aktive versjonen av tabellen.

3. Verifisering etter endring

Etter å ha kjørt en oppdatering eller sletting, bør du alltid verifisere endringen med en enkel SELECT count for å sikre at operasjonen fungerte som forventet.

-- 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. Sikkerheten ved Delta-oppdateringer

Når du kjører DELETE eller UPDATE, sletter ikke Delta Lake data fra de gamle filene direkte. I stedet følger den en trestegsprosess:

  1. Marker de gamle filene som "ugyldige"
  2. Skriv nye filer med de oppdaterte dataene
  3. Registrer endringen i transaksjonsloggen

Dette er grunnen til at Time Travel fortsatt fungerer selv etter en sletting — de gamle dataene eksisterer fortsatt i tidligere versjoner av tabellfilene inntil historikken manuelt fjernes.

5. Beste praksis: Test med SELECT

Før du kjører en DELETE eller UPDATE, test alltid filteret ditt med en SELECT først.

  • I stedet for: DELETE FROM diamonds WHERE color = 'J'
  • Prøv først: SELECT * FROM diamonds WHERE color = 'J'

Hvis resultatene fra SELECT viser nøyaktig det du hadde tenkt å fjerne, kan du trygt fortsette med DELETE-kommandoen.

1. Hva skjer hvis du kjører en UPDATE-kommando uten en WHERE-klausul?

2. Sletter en DELETE-kommando på en Delta-tabell umiddelbart dataene fra den underliggende skylagringen for alltid?

question mark

Hva skjer hvis du kjører en UPDATE-kommando uten en WHERE-klausul?

Velg det helt riktige svaret

question mark

Sletter en DELETE-kommando på en Delta-tabell umiddelbart dataene fra den underliggende skylagringen for alltid?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 5. Kapittel 4
some-alt