Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine vollständige Aktualisierung einer Streamingtabelle verwirft alle vorhandenen Daten und Metadaten und startet den Datenstrom von Anfang an neu. Konkret wird dabei die Streaming-Tabelle gekürzt, alle Checkpoint-Daten werden entfernt und der Streaming-Prozess wird mit neuen Checkpoints für jeden Flow, der in die Tabelle schreibt, neu gestartet. In den folgenden Abschnitten wird beschrieben, wann eine vollständige Aktualisierung ausgeführt wird, welche Auswirkungen auf Datenquellen und bewährte Methoden es hat.
Eine Übersicht darüber, wie Aktualisierungsvorgänge für Pipeline-Datasets funktionieren, finden Sie unter Wie werden Pipelines aktualisiert?. Anleitungen zum Auslösen einer vollständigen Aktualisierung finden Sie unter Ausführen eines Pipelineupdates.
Auswirkungen auf Datenquellen
Eine vollständige Aktualisierung entfernt alle vorhandenen Daten aus der Streamingtabelle. Wenn Ihre Datenquelle Aufbewahrungsbeschränkungen aufweist (z. B. Kafka-Themen mit kurzen Aufbewahrungszeiträumen), können einige historische Daten nach einer vollständigen Aktualisierung nicht wiederhergestellt werden.
Wenn Ihre Quelle z. B. Kafka mit 24-Stunden-Aufbewahrung ist und Sie nach diesem Fenster eine vollständige Aktualisierung ausführen, sind ältere Nachrichten nicht mehr verfügbar und können nicht erneut verarbeitet werden.
Hinweis
Vollständige Aktualisierungen werden für Streaming-Workloads mit hohem Volumen nicht empfohlen, oder wenn die vorgelagerte Aufbewahrung verhindert, dass verlaufsbezogene Daten wiedergegeben werden.
Wenn die Streamingtabelle abhängige Downstreamtabellen enthält, schlägt die Pipeline fehl, bis diese Tabellen ebenfalls vollständig aktualisiert werden, es sei denn, die Streamingtabelle hat skipChangeCommits aktiviert. Nachgelagerte materialisierte Ansichten müssen ebenfalls vollständig aktualisiert werden.
Wann eine vollständige Aktualisierung ausgeführt werden soll
Vollständige Aktualisierungen müssen explizit ausgelöst werden. Sie können eine vollständige Aktualisierung ausführen, indem Sie in der Pipeline-Benutzeroberfläche auf "Vollständig aktualisieren" klicken oder die automatische vollständige Aktualisierung in Lakeflow Connect aktivieren.
Eine vollständige Aktualisierung wird empfohlen, wenn Änderungen verhindern, dass eine Streamingabfrage sicher vom vorhandenen Prüfpunkt fortgesetzt wird oder wenn zuvor verarbeitete Daten mit der aktualisierten Logik, dem Schema oder der Quellkonfiguration inkonsistent werden. In den folgenden Abschnitten werden allgemeine Szenarien beschrieben.
Schema-Änderungen
Die folgenden Schemaänderungen in der Zieltabelle sind nicht abwärtskompatibel und erfordern eine vollständige Aktualisierung:
- Das Umbenennen von Spalten ohne aktivierten Spaltenzuordnungsmodus.
- Ändern von Deduplizierungsspalten
- Ändern von Spaltendatentypen, einschließlich:
- Typeneinschränkung (zum Beispiel
BIGINT → INToderDOUBLE → FLOAT). - Inkompatible Typänderungen (z. B.
STRING → INT).
- Typeneinschränkung (zum Beispiel
- Festes Löschen von Spalten aus dem Tabellenschema.
Für diese Arten von Schemaänderungen empfiehlt Databricks, eine neue Spalte mit dem gewünschten Schema oder Namen zu erstellen und dann eine Ansicht über der Streamingtabelle zu verwenden, um die alten und neuen Werte zu verknüpfen.
Änderungen des Layouts für physische Daten
Für die folgenden Änderungen des physischen Datenlayouts ist eine vollständige Aktualisierung erforderlich:
- Das Migrieren von der Legacy-Partitionierung zu einem neuen Clusteringschema.
Änderungen an der vorgelagerten Quelle
Für die folgenden Upstream-Quelländerungen ist eine vollständige Aktualisierung erforderlich:
- Ändern der Quelltabellen, die von der Streamingabfrage gelesen werden.
- Wechseln zwischen Quelltypen (z. B. Kafka zu Delta oder Auto Loader zu Kafka).
- Ändern von Quellspeicherorten, z. B. Tabellenpfade oder Kafka-Themenabonnements.
- Löschen und erneutes Erstellen einer Delta-Quelltabelle, auch wenn das Schema unverändert bleibt.
Änderungen bei der zustandsbehafteten Verarbeitung
Die folgenden zustandsbehafteten Verarbeitungsänderungen erfordern eine vollständige Aktualisierung:
- Ändern von Aggregationsgruppierungsschlüsseln oder Aggregatfunktionen.
- Hinzufügen oder Entfernen von Aggregationen.
- Ändern von Verknüpfungsschlüsseln oder Verknüpfungstypen
- Hinzufügen oder Entfernen von Verknüpfungen.
- Ändern von Deduplizierungsspalten oder Deduplizierungslogik.
Probleme mit der Datenkontinuität
Eine vollständige Aktualisierung kann erforderlich sein, wenn die Datenkontinuität kompromittiert wird:
- CDC-Protokolle sind aufgrund des Ablaufs der Aufbewahrungsfrist nicht mehr verfügbar.
- Beschädigung oder Löschung des Streaming-Checkpoint-Verzeichnisses.
- Beschädigung oder Verlust von Schemanachverfolgungs- oder Schemaspeicherortdateien.
Weitere Informationen zum Wiederherstellen einer Pipeline aus Prüfpunktfehlern finden Sie unter "Wiederherstellen einer Pipeline aus Streamingprüfpunktfehlern".
Einschränkungen
Die folgenden Einschränkungen gelten für vollständige Aktualisierungen. Informationen zum Arbeiten innerhalb dieser Einschränkungen finden Sie unter "Bewährte Methoden ".
- Eine vollständige Aktualisierung verarbeitet keine Daten, es sei denn, Ihre Quelle behält das vollständige historische Dataset bei.
- Große Datasets können umfangreiche Aktualisierungen kostspielig und zeitaufwändig machen.
- Nachgeschaltete Verbraucher, die von der Tabelle abhängen, können ausfallen oder unvollständige Ergebnisse zurückgeben, bis die Aktualisierung abgeschlossen ist.
Bewährte Methoden
| Situation | Bewährte Methoden |
|---|---|
| Design für Stabilität | Planen Sie Ihr Schema, um Änderungen zu vermeiden, die eine vollständige Aktualisierung erfordern. Das Hinzufügen von Spalten ist im Allgemeinen sicher, während beim Ändern vorhandener Spalten oder Partitionierungsschemas in der Regel eine Neukompilierung der Tabelle erforderlich ist. |
| Daten aus Quellen mit kurzen Aufbewahrungsfristen streamen | Das Streamen von Quellen wie z. B. einem Kafka-Thema, das keine langen Aufbewahrungszeiträume hat, bedeutet, dass eine vollständige Aktualisierung Daten verliert, die nicht noch in der Quelle enthalten sind. Um den Verlust historischer Daten zu vermeiden, streamen Sie Rohdaten in eine Streamingtabelle (eine Bronzetabelle in der Medallion-Architektur). Verwenden Sie flexible Spaltentypen (z. B. Variante oder Zeichenfolge), um diese Tabelle zu vermeiden, die eine vollständige Aktualisierung erfordert, wenn sich die Upstreamdaten ändern. Diese Tabelle kann Verlaufsdaten speichern und von nachgelagerten Streamingtabellen verwendet werden (die möglicherweise strengere Typen oder andere strukturelle Änderungen aufweisen). Wenn für die nachgeschalteten Tabellen eine vollständige Aktualisierung erforderlich ist, enthält diese Tabelle Verlaufsdaten, ohne dass eine vollständige Aktualisierung selbst erforderlich ist. |
| Erwägen Sie Alternativen vor dem Ausführen einer vollständigen Aktualisierung | Zu den Alternativen gehören:
|
| Wenn eine vollständige Aktualisierung erforderlich ist | Befolgen Sie die folgenden bewährten Methoden, wenn eine vollständige Aktualisierung erforderlich ist :
|
Um Daten nach einer vollständigen Aktualisierung aufzufüllen, können Sie einen append onceFlow erstellen. Dadurch wird ein einmaliges Backfill ausgeführt, ohne nach dem ersten Backfill weiterzulaufen. Der Code verbleibt in Ihrer Pipeline, und wenn die Pipeline irgendwann wieder vollständig aktualisiert wird, wird der Abgleich erneut ausgeführt.