Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende Dataopdateringer og Sletninger | Kernebegreber i Databricks
Databricks Grundlæggende: En Begyndervejledning

Grundlæggende Dataopdateringer og Sletninger

Stryg for at vise menuen

Note
Definition

I standard Data Lakes er det næsten umuligt at opdatere eller slette en enkelt række uden at omskrive hele datasættet. Fordi Delta Lake bruger en transaktionslog, understøtter det standard SQL-kommandoerne UPDATE og DELETE, hvilket muliggør præcise ændringer i dine tabeller.

I det forrige afsnit fokuserede du på at læse og opsummere data. Data er dog sjældent statiske — du kan opdage, at et parti diamantposter har forkerte priser, eller at en bestemt "cut"-type skal fjernes fra din rapportering.

Fordi diamonds-tabellen er en Delta-tabel, kan du ændre den ligesom en traditionel database.

1. Opdatering af poster

Kommandoen UPDATE giver dig mulighed for at ændre værdier i specifikke rækker, der opfylder en betingelse. For eksempel, hvis alle "Fair" cut diamanter får en prisstigning på 10%:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — Definerer den nye værdi for kolonnen
  • WHERE — Kritisk. Uden en WHERE-klausul ville du opdatere prisen for hver eneste diamant i hele tabellen

2. Sletning af poster

DELETE-kommandoen fjerner rækker permanent fra tabellen. Anvendes når data ikke længere er relevante eller er blevet indlæst ved en fejl.

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

Denne kommando identificerer alle diamanter større end 5 karat og fjerner dem fra den aktive version af tabellen.

3. Verificering efter ændring

Efter at have kørt en opdatering eller sletning, bør du altid verificere ændringen med en simpel SELECT count for at sikre, at operationen har fungeret 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. Sikkerheden ved Delta-opdateringer

Når du kører DELETE eller UPDATE, sletter Delta Lake ikke data fra de gamle filer direkte. I stedet følger det en tretrinsproces:

  1. De gamle filer markeres som "ugyldige"
  2. Der skrives nye filer med de opdaterede data
  3. Ændringen registreres i transaktionsloggen

Derfor fungerer Time Travel stadig selv efter en sletning — de gamle data eksisterer fortsat i tidligere versioner af tabel-filerne, indtil historikken manuelt slettes.

5. Bedste praksis: Test med SELECT

Før du kører en DELETE eller UPDATE, bør du altid teste dit filter 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 resultaterne fra SELECT viser præcis det, du havde tænkt dig at fjerne, kan du trygt fortsætte med DELETE-kommandoen.

1. Hvad sker der, hvis du kører en UPDATE-kommando uden en WHERE-klausul?

2. Sletter en DELETE-kommando på en Delta-tabel straks dataene fra den underliggende cloud-lagring for altid?

question mark

Hvad sker der, hvis du kører en UPDATE-kommando uden en WHERE-klausul?

Vælg det korrekte svar

question mark

Sletter en DELETE-kommando på en Delta-tabel straks dataene fra den underliggende cloud-lagring for altid?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 5. Kapitel 4
some-alt