Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlegende Datenaktualisierungen und -Löschungen | Kernkonzepte von Databricks
Databricks-Grundlagen: Ein Leitfaden für Einsteiger

Grundlegende Datenaktualisierungen und -Löschungen

Swipe um das Menü anzuzeigen

Note
Definition

In Standard-Data Lakes ist das Aktualisieren oder Löschen einer einzelnen Zeile nahezu unmöglich, ohne den gesamten Datensatz neu zu schreiben. Da Delta Lake ein Transaktionsprotokoll verwendet, unterstützt es die Standard-SQL-Befehle UPDATE und DELETE und ermöglicht so präzise Änderungen an Ihren Tabellen.

Im vorherigen Abschnitt lag der Fokus auf dem Lesen und Zusammenfassen von Daten. Daten sind jedoch selten statisch – es kann vorkommen, dass eine Charge von Diamantdatensätzen falsche Preise enthält oder ein bestimmter "cut"-Typ aus Ihren Berichten entfernt werden muss.

Da die diamonds-Tabelle eine Delta-Tabelle ist, können Sie sie wie eine herkömmliche Datenbank bearbeiten.

1. Aktualisieren von Datensätzen

Der Befehl UPDATE ermöglicht das Ändern von Werten in bestimmten Zeilen, die eine Bedingung erfüllen. Wenn beispielsweise alle Diamanten mit dem "Fair"-Schliff eine Preiserhöhung von 10 % erhalten:

UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
  • SET — Definiert den neuen Wert für die Spalte
  • WHERE — Kritisch. Ohne eine WHERE-Klausel würden Sie den Preis für jeden einzelnen Diamanten in der gesamten Tabelle aktualisieren

2. Löschen von Datensätzen

Der Befehl DELETE entfernt Zeilen dauerhaft aus der Tabelle. Dies wird verwendet, wenn Daten nicht mehr relevant sind oder versehentlich importiert wurden.

DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0

Dieser Befehl identifiziert alle Diamanten mit mehr als 5 Karat und entfernt sie aus der aktiven Version der Tabelle.

3. Überprüfung nach Änderungen

Nach dem Ausführen eines Updates oder Löschvorgangs sollte die Änderung immer mit einem einfachen SELECT count überprüft werden, um sicherzustellen, dass die Operation wie erwartet durchgeführt wurde.

-- 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. Die Sicherheit von Delta-Updates

Beim Ausführen von DELETE oder UPDATE löscht Delta Lake die Daten nicht direkt aus den alten Dateien. Stattdessen folgt es einem dreistufigen Prozess:

  1. Die alten Dateien werden als "ungültig" markiert
  2. Neue Dateien mit den aktualisierten Daten werden geschrieben
  3. Die Änderung wird im Transaktionsprotokoll aufgezeichnet

Deshalb funktioniert Time Travel auch nach einem Löschvorgang weiterhin – die alten Daten existieren in früheren Versionen der Tabellendateien, bis der Verlauf manuell bereinigt wird.

5. Best Practice: Testen mit SELECT

Vor dem Ausführen eines DELETE oder UPDATE sollte der Filter immer zuerst mit einem SELECT getestet werden.

  • Stattdessen: DELETE FROM diamonds WHERE color = 'J'
  • Zuerst ausprobieren: SELECT * FROM diamonds WHERE color = 'J'

Wenn die Ergebnisse des SELECT genau das anzeigen, was entfernt werden soll, kann der DELETE-Befehl sicher ausgeführt werden.

1. Was passiert, wenn ein UPDATE-Befehl ohne WHERE-Klausel ausgeführt wird?

2. Wird durch das Ausführen eines DELETE-Befehls auf einer Delta-Tabelle die zugrunde liegenden Cloud-Speicherdaten sofort und dauerhaft gelöscht?

question mark

Was passiert, wenn ein UPDATE-Befehl ohne WHERE-Klausel ausgeführt wird?

Wählen Sie die richtige Antwort aus

question mark

Wird durch das Ausführen eines DELETE-Befehls auf einer Delta-Tabelle die zugrunde liegenden Cloud-Speicherdaten sofort und dauerhaft gelöscht?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 5. Kapitel 4
some-alt