Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Basisgegevens Bijwerken en Verwijderen | Kernbegrippen van Databricks
Databricks Fundamentals: Een Beginnersgids

Basisgegevens Bijwerken en Verwijderen

Veeg om het menu te tonen

Note
Definitie

In standaard Data Lakes is het vrijwel onmogelijk om een enkele rij bij te werken of te verwijderen zonder de volledige dataset opnieuw te schrijven. Omdat Delta Lake een transactielogboek gebruikt, ondersteunt het standaard SQL-commando's UPDATE en DELETE, waardoor nauwkeurige aanpassingen aan je tabellen mogelijk zijn.

In de vorige sectie lag de focus op het lezen en samenvatten van data. Data is echter zelden statisch — het kan voorkomen dat een batch diamantrecords onjuiste prijzen bevat, of dat een specifiek "cut"-type uit je rapportage verwijderd moet worden.

Omdat de diamonds-tabel een Delta-tabel is, kun je deze aanpassen zoals bij een traditionele database.

1. Records bijwerken

Het UPDATE-commando maakt het mogelijk om waarden in specifieke rijen te wijzigen die aan een bepaalde voorwaarde voldoen. Bijvoorbeeld, als alle diamanten met een "Fair" cut een prijsverhoging van 10% krijgen:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — Definieert de nieuwe waarde voor de kolom
  • WHERE — Essentieel. Zonder een WHERE-clausule zou je de prijs van elke diamant in de hele tabel bijwerken

2. Records verwijderen

Het DELETE-commando verwijdert rijen permanent uit de tabel. Gebruik dit wanneer gegevens niet langer relevant zijn of per ongeluk zijn geïmporteerd.

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

Dit commando identificeert alle diamanten groter dan 5 karaat en verwijdert deze uit de actieve versie van de tabel.

3. Verificatie na wijziging

Na het uitvoeren van een update of delete, altijd de wijziging verifiëren met een eenvoudige SELECT count om te controleren of de bewerking naar verwachting is uitgevoerd.

-- 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. De veiligheid van Delta-updates

Wanneer je DELETE of UPDATE uitvoert, verwijdert Delta Lake de gegevens niet direct uit de oude bestanden. In plaats daarvan volgt het een proces in drie stappen:

  1. De oude bestanden worden als "ongeldig" gemarkeerd
  2. Nieuwe bestanden met de bijgewerkte gegevens worden geschreven
  3. De wijziging wordt vastgelegd in het Transaction Log

Hierdoor blijft Time Travel werken, zelfs na een verwijdering — de oude gegevens blijven bestaan in eerdere versies van de tabelbestanden totdat de geschiedenis handmatig wordt opgeschoond.

5. Best practice: Testen met SELECT

Voer altijd eerst een DELETE uit om je filter te testen voordat je een UPDATE of SELECT uitvoert.

  • In plaats van: DELETE FROM diamonds WHERE color = 'J'
  • Probeer eerst: SELECT * FROM diamonds WHERE color = 'J'

Als de resultaten van de SELECT precies tonen wat je wilt verwijderen, kun je veilig doorgaan met het DELETE-commando.

1. Wat gebeurt er als je een UPDATE-commando uitvoert zonder WHERE-clausule?

2. Worden gegevens direct en permanent uit de onderliggende cloudopslag verwijderd als je een DELETE-commando uitvoert op een Delta-tabel?

question mark

Wat gebeurt er als je een UPDATE-commando uitvoert zonder WHERE-clausule?

Selecteer het correcte antwoord

question mark

Worden gegevens direct en permanent uit de onderliggende cloudopslag verwijderd als je een DELETE-commando uitvoert op een Delta-tabel?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 5. Hoofdstuk 4
some-alt