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.

When you create a dynamic table, you define a query that specifies how data should be transformed from base objects. Snowflake handles the refresh schedule of the dynamic table and updates the table automatically to reflect the changes made to the base objects based on the query.

Wichtige Hinweise und allgemeine Best Practices

Unveränderlichkeitseinschränkungen: Verwenden Sie Unveränderlichkeitseinschränkungen, um die Aktualisierungen dynamischer Tabellen zu steuern. Die Einschränkungen halten bestimmte Zeilen statisch, während gleichzeitig inkrementelle Aktualisierungen der restlichen Tabelle ermöglicht werden. Sie verhindern unerwünschte Änderungen an markierten Daten, während andere Teile der Tabelle normale Aktualisierungen ermöglichen. Weitere Informationen dazu finden Sie unter Erstellen dynamischer Tabellen mit Unveränderlichkeitseinschränkungen.

Performance considerations: Dynamic tables use incremental processing for workloads that support it, which can improve performance by recomputing only the data that has changed, rather than performing a full refresh. For more information, see Best Practices zur Optimierung der Leistung dynamischer Tabellen.

Aufschlüsseln komplexer dynamischer Tabellen: Teilen Sie Ihre Pipeline in kleinere, fokussierte dynamische Tabellen auf, um die Leistung zu verbessern und die Problembehandlung zu vereinfachen. Weitere Informationen dazu finden Sie unter Best Practices für das Erstellen dynamischer Tabellen.

Funktionsweise von dynamischen Tabellen

Snowflake führt die in Ihrer CREATE DYNAMIC TABLE-Anweisung angegebene Definitionsabfrage aus, und Ihre dynamischen Tabellen werden durch einen automatischen Aktualisierungsprozess aktualisiert.

The following diagram shows how this process computes the changes made to the base objects and merges them into the dynamic table by using compute resources associated with the table.

Visuelle Darstellung des automatischen Aktualisierungsprozesses zwischen Basisobjekten und dynamischen Tabellen

Zielverzögerung

Verwenden Sie Zielverzögerung, um festzulegen, wie aktuell Ihre Daten sein sollen. Normalerweise liegt die Aktualität der Tabellendaten nicht weit hinter der Aktualität der Basistabellen zurück. Mit der Zielverzögerung steuern Sie, wie oft die Tabelle aktualisiert wird und wie aktuell die Daten bleiben.

For more information, see Die Zielverzögerung dynamischer Tabellen verstehen.

Dynamic table refresh

Dynamische Tabellen sind bestrebt, innerhalb der von Ihnen festgelegten Zielverzögerung aktualisiert zu werden. Eine Zielverzögerung von 5 Minuten stellt beispielsweise sicher, dass die Daten in der dynamischen Tabelle nicht mehr als 5 Minuten hinter den Datenaktualisierungen der Basistabelle zurückbleiben. Sie legen den Aktualisierungsmodus fest, wenn Sie die Tabelle erstellen. Danach können die Aktualisierungen nach einem Zeitplan oder manuell erfolgen.

For more information, see Initialisierung und Aktualisierung dynamischer Tabellen verstehen and Dynamische Tabellen manuell aktualisieren.

Einsatzszenarios für dynamische Tabellen

Dynamic tables are ideal for the following scenarios:

  • You want to materialize query results without writing custom code.

  • You want to avoid manually tracking data dependencies and managing refresh schedules. Dynamic tables enable you to define pipeline outcomes declaratively, without managing transformation steps manually.

  • You want to chain together multiple tables for data transformations in a pipeline.

  • You don’t need fine-grained control over refresh schedules, and you only need to specify a target freshness for the pipeline. Snowflake handles the orchestration of data refreshes, including scheduling and execution, based on your target freshness requirements.

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.

  • Joins und Aggregationen: Sie können dynamische Tabellen verwenden, um langsame Joins und Aggregationen schrittweise vorzuberechnen, um schnelle Abfragen zu ermöglichen.

  • Ü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.