Dynamische Tabellen¶
Dynamische Tabellen sind Tabellen, die auf der Grundlage einer definierten Abfrage und Zielaktualität automatisch aktualisiert werden. Dies vereinfacht die Datenumwandlung und das Pipeline-Management, ohne dass manuelle Aktualisierungen oder eine benutzerdefinierte Planung erforderlich sind.
Beim Erstellen einer dynamischen Tabelle definieren Sie eine Abfrage, die angibt, wie Daten aus Basisobjekten umgewandelt werden sollen. Snowflake kümmert sich dann um den Aktualisierungszeitplan der dynamischen Tabelle und aktualisiert sie automatisch mit den Änderungen, die an den Basisobjekten auf der Grundlage der Abfrage vorgenommen wurden.
Funktionsweise von dynamischen Tabellen¶
Dynamische Tabellen werden durch einen automatischen Aktualisierungsprozess aktualisiert, der die Transformationsabfrage regelmäßig ausführt. Dieser Prozess berechnet die an den Basisobjekten vorgenommenen Änderungen und fügt sie unter Verwendung der mit der Tabelle verbundenen Computeressourcen in die dynamische Tabelle ein.

Die Aktualisierungshäufigkeit und die Aktualität der Daten werden durch die bei der Erstellung der dynamischen Tabelle angegebene Zielverzögerungszeit bestimmt, die festlegt, wie aktuell die Daten sein sollen. Der Aktualisierungsprozess verwendet die angegebene Zielverzögerungszeit, um Aktualisierungen zu planen. Eine Zielverzögerungszeit von fünf Minuten stellt zum Beispiel sicher, dass die Daten in der dynamischen Tabelle nicht mehr als fünf Minuten hinter den Aktualisierungen der Basistabelle zurückbleiben.
Längere Zielverzögerungen können zur Kostensenkung verwendet werden, wenn Datenaktualisierungen nicht in Echtzeit erforderlich sind. Wenn die Daten Ihrer dynamischen Tabelle beispielsweise nur maximal eine Stunde hinter den Aktualisierungen der Basistabellen zurückbleiben dürfen, können Sie eine Zielaktualität von einer Stunde (statt fünf Minuten) angeben, um die Kosten zu senken.
Weitere Informationen dazu finden Sie unter Die Zielverzögerung dynamischer Tabellen verstehen und Initialisierung und Aktualisierung dynamischer Tabellen verstehen.
Einsatzszenarios für dynamische Tabellen¶
Dynamische Tabellen sind ideal für Szenarien, in denen Sie:
vermeiden möchten, dass Sie Datenabhängigkeiten manuell verfolgen und Aktualisierungszeitpläne verwalten müssen.
Abfrageergebnisse aus mehreren Basistabellen materialisieren müssen, ohne eigenen Code zu schreiben.
mehrere Tabellen für Datenumwandlungen in einer Pipeline erstellen.
keine detaillierte Kontrolle über die Aktualisierungszeitpläne brauchen und nur eine Zielaktualität für die Pipeline angeben möchten.
eine dynamische Tabelle als Quelle für einen Stream verwenden möchten.
Beispielhafte Anwendungsfälle¶
Langsam wechselnde Dimensionen (SCDs): Dynamische Tabellen können verwendet werden, um SDCs vom Typ 1 und Typ 2 zu implementieren, indem sie aus einem Änderungsstream lesen und mithilfe von Fensterfunktionen nach über nach Änderungszeitpunkt geordneten Schlüsseln arbeiten. Diese Methode behandelt Einfügungen, Löschungen und Aktualisierungen, die nicht in der richtigen Reihenfolge erfolgen, und vereinfacht so die Erstellung von SCDs. Weitere Informationen dazu finden Sie unter Slowly Changing Dimensions mit dynamischen Tabellen.
Übergänge von Batch zu Streaming: Dynamische Tabellen unterstützen nahtlose Übergänge von Batch zu Streaming mit einem einzigen ALTER DYNAMIC TABLE-Befehl. Sie können die Aktualisierungshäufigkeit in Ihrer Pipeline steuern, um ein Gleichgewicht zwischen Kosten und Aktualität der Daten herzustellen.
Wichtige Überlegungen¶
Deklarative SQL: Mit dynamischen Tabellen können Sie Pipeline-Ergebnisse deklarativ definieren, ohne Transformationsschritte manuell verwalten zu müssen.
Automatisierte Aktualisierung: Snowflake übernimmt die Koordination der Datenaktualisierungen, einschließlich der Planung und Ausführung, basierend auf Ihren Anforderungen an die Aktualität der Daten.
Leistungsoptimierung: Dynamische Tabellen verwenden inkrementelle Verarbeitung für Workloads, die dies unterstützen. Dies kann die Leistung verbessern, da nur die Daten aktualisiert werden, die sich geändert haben, anstatt eine vollständige Aktualisierung durchzuführen.