Basisgegevens Bijwerken en Verwijderen
Veeg om het menu te tonen
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:
- De oude bestanden worden als "ongeldig" gemarkeerd
- Nieuwe bestanden met de bijgewerkte gegevens worden geschreven
- 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?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.