Beschränkungen für dynamische Tabellen

Unter diesem Thema werden allgemeine und Feature-übergreifende Beschränkungen für dynamische Tabellen beschrieben.

Allgemeine Einschränkungen

Für die Verwendung dynamischer Tabellen gelten die folgenden allgemeinen Einschränkungen:

  • Ein einzelnes Konto kann maximal 50.000 dynamische Tabellen enthalten.

  • Sie können Daten aus einer dynamischen Tabelle nicht abschneiden.

  • Sie können keine temporäre dynamische Tabelle erstellen.

  • Wenn Sie eine dynamische Tabelle zum Aufnehmen freigegebener Daten verwenden, kann die Abfrage kein SELECT auf einer freigegebenen dynamischen Tabelle oder einer freigegebenen sicheren Ansicht ausführen, die eine vorgelagerte dynamische Tabelle referenziert.

  • Sie können keine Sekundärrollen mit dynamischen Tabellen verwenden, da die Aktualisierungen dynamischer Tabellen als ihre Eigentümerrolle fungieren. Weitere Informationen dazu finden Sie unter Autorisierung durch Primärrolle und Sekundärrollen.

  • Sie können den Objektparameter DATA_RETENTION_TIME_IN_DAYS in Ihren Quelltabellen nicht auf Null festlegen.

  • Sie können dynamische SQL (z. B. Sitzungsvariablen oder ungebundene Variablen von anonymen Blöcken) nicht in der Definition der dynamischen Tabelle verwenden.

  • In der Definition einer dynamischen Tabelle müssen SELECT-Blöcke, die aus benutzerdefinierten Tabellenfunktionen (UDTF) lesen, explizit Spalten angeben und können * nicht verwenden.

  • Dynamische Tabellen können veralten, wenn sie nicht im Zeitraum von MAX_DATA_EXTENSION_TIME_IN_DAYS der Eingabetabellen aufgefrischt werden. Sobald sie veraltet sind, müssen sie neu erstellt werden, um die Aktualisierungen fortzusetzen.

  • Dynamische Tabellen unterstützen derzeit keine Änderungsverfolgung in der Ansicht ACCESS_HISTORY. Das bedeutet, dass Abfragen und Operationen, die an dynamischen Tabellen durchgeführt werden, nicht für Auditing- oder Überwachungszwecke in der ACCESS_HISTORY von Snowflake erfasst werden.

  • Wenn Sie eine dynamische Tabelle erstellen, die ein Warehouse mit dem Namen DEFAULT verwendet, müssen Sie den Namen in Anführungszeichen setzen und dabei die Anforderungen für in doppelte Anführungszeichen gesetzte Bezeichner befolgen. Zum Beispiel CREATE DYNAMIC TABLE ... WAREHOUSE = "DEFAULT". Weitere Informationen zum Erstellen dynamischer Tabellen finden Sie unter Dynamische Tabellen erstellen.

  • Dynamische Tabellen unterstützen keine Quellen, die Verzeichnistabellen, externe Tabellen, Streams und materialisierte Ansichten enthalten.

  • Sie können keine dynamischen Tabellen erstellen, die aus Ansichten lesen, die andere dynamische Tabellen abfragen.

Unterstützung von Feature-übergreifenden Interaktionen

Die folgenden Feature-übergreifenden Interaktionen werden nicht unterstützt:

  • Verwenden des Abfragebeschleunigungsdienstes (Query Acceleration Service, QAS) für Aktualisierungen dynamischer Tabellen

  • Maskierungsrichtlinien mit Datenbankrollen auf gemeinsamen Tabellen.

  • Aggregations- und Projektionsrichtlinien können nicht auf die Basistabellen von dynamischen Tabellen angewendet werden. Wenn eine Basistabelle mit Aggregations- oder Projektionsrichtlinien verknüpft ist, kann die dynamische Tabelle nicht erstellt werden.

Unterstützung von inkrementellen Aktualisierungen

Dynamische Tabellen unterstützen zwei Aktualisierungsmodi: inkrementell und vollständig. Sie können den Aktualisierungsmodus entweder auf AUTO einstellen oder ihn explizit festlegen. Weitere Informationen dazu finden Sie unter Aktualisierungsmodi für dynamische Tabellen und Best Practices für die Auswahl von Aktualisierungsmodi für dynamische Tabellen.

Maskierungs- und Zeilenzugriffsrichtlinien

Maskierungs- oder Zeilenzugriffsrichtlinien haben keinen Einfluss auf den Aktualisierungsmodus. Allerdings können Richtlinien, die auf Quelltabellen angewendet werden, den Aktualisierungsmodus beeinflussen:

  • Die inkrementelle Aktualisierung wird unterstützt, wenn die Richtlinien für die Quelltabellen die Funktion CURRENT_ROLE oder IS_ROLE_IN_SESSION verwenden.

  • Die inkrementelle Aktualisierung wird nicht unterstützt, wenn die Richtlinien für die Quelltabellen andere Funktionen, INFORMATION_SCHEMA-Ansichten verwenden oder eine Tabelle abfragen (z. B. eine Zuordnungstabelle).

Replikation

Replizierte dynamische Tabellen mit inkrementeller Aktualisierung werden nach dem Failover neu initialisiert, bevor die inkrementelle Aktualisierung fortgesetzt wird.

Weitere Informationen dazu finden Sie unter Replikation und dynamische Tabellen.

Klonen

Geklonte inkrementelle dynamische Tabellen müssen bei ihrer ersten Aktualisierung nach der Erstellung möglicherweise neu initialisiert werden.

Wenn eine dynamische Tabelle von einer anderen dynamischen Tabelle mit gelöschten Basistabellen geklont wird, wird das Klonen ausgesetzt und kann nicht wieder aufgenommen oder aktualisiert werden.