Problembehandlung bei dynamischen Tabellen¶
Unter diesem Thema werden Lösungen für die Problembehandlung bei dynamischen Tabellen vorgestellt, die nicht wie erwartet funktionieren:
Einige Aktionen können eingeschränkt sein, einerseits aufgrund von Beschränkungen bei der Verwendung dynamischer Tabellen und andererseits, weil Sie nicht über die erforderlichen Berechtigungen verfügen. Weitere Informationen dazu finden Sie unter Bekannte Einschränkungen für dynamische Tabellen und Zugriffssteuerung für dynamische Tabellen.
Weitere Informationen zu den Kosten dynamischer Tabellen finden Sie unter Erläuterungen zu den Kosten von dynamischen Tabellen.
Wenn Sie ein Problem feststellen, das hier nicht aufgeführt ist, wenden Sie sich an den Snowflake-Support.
Probleme bei der Aktualisierung dynamischer Tabellen lösen¶
Problem |
Lösung |
---|---|
Meine dynamische Tabelle verwendet eine vollständige Aktualisierung anstelle einer inkrementellen Aktualisierung. |
Der tatsächliche Aktualisierungsmodus einer dynamischen Tabelle wird zum Zeitpunkt der Erstellung festgelegt und ist danach unveränderlich. Wenn nicht explizit angegeben, ist der Aktualisierungsmodus standardmäßig auf Um eine konsistente Verhaltensweise in allen Snowflake-Releases zu gewährleisten, legen Sie Aktualisierungsmodus aller dynamischen Tabellen explizit fest. Wenn Sie z. B. möchten, dass Ihre dynamischen Tabellen nur inkrementell aktualisiert werden, müssen Sie den Aktualisierungsmodus beim Erstellen der Tabellen explizit auf Wenn Sie eine Rolle mit den erforderlichen Berechtigungen verwenden, können Sie den Aktualisierungsmodus mit einer der folgenden Methoden überprüfen:
|
Die inkrementelle Aktualisierung meiner dynamischen Tabelle ist langsam. |
Die Aktualisierungsleistung einer dynamischen Tabelle hängt von bestimmten Annahmen über den Workload oder die Daten ab, die verarbeitet werden. Verwenden Sie Refresh History, um die Varianz zu sehen oder Ausreißer zu erkennen:
|
Meine dynamische Tabelle führt eine leere Aktualisierung durch, aber ich sehe Kosten. |
Aktualisierungen, die keine neuen Nettozeilen erzeugen (d. h. keine hinzugefügten, aktualisierten oder gelöschten Zeilen), verbrauchen Warehouse-Ressourcen, wenn sie mit Änderungen in einem der Upstream-Objekte verbunden sind, auf die die dynamische Tabelle verweist. Wenn zum Beispiel das zugehörige virtuelle Warehouse angehalten wird und keine Änderungen an den Basisobjekten festgestellt werden, wird das angehaltene virtuelle Warehouse nicht wieder fortgesetzt und es werden keine Credits verbraucht. Dies wird als NO_DATA-Aktualisierung bezeichnet. Werden hingegen Änderungen festgestellt, wird das virtuelle Warehouse automatisch fortgesetzt, um die Aktualisierungen zu verarbeiten, was Warehouse-Ressourcen verbraucht, selbst wenn das Nettoergebnis null Zeilen für die dynamische Tabelle ist. Wenn Sie Kosten sehen, aber keine Änderungen an Ihrer dynamischen Tabelle vorgenommen haben, könnte das an einer Änderung in Ihrer Quelltabelle liegen. Auf der Registerkarte Refresh History in Snowsight können Sie überprüfen, ob virtuelle Warehouses Credits verbraucht haben:
Weitere Informationen dazu finden Sie unter Erläuterungen zu den Kosten von dynamischen Tabellen. |
Meine dynamische Tabelle hat eine Aktualisierung übersprungen. |
Dynamische Tabellen werden nach einem Zeitplan aktualisiert. Wenn eine geplante Aktualisierung beginnt, kann es in den folgenden Situationen dazu kommen, dass die Aktualisierung übersprungen wird:
Manuelle Aktualisierungen werden nie übersprungen, aber sie können dazu führen, dass andere Aktualisierungen übersprungen werden, insbesondere wenn Sie häufige manuelle Aktualisierungen einer dynamischen Tabelle vornehmen. Dies kann dazu führen, dass nachgelagerte dynamische Tabellen nicht mehr aktualisiert werden. Aus diesem Grund empfiehlt Snowflake nicht, häufig manuelle Aktualisierungen einer dynamischen Tabelle mit nachgelagerten dynamischen Tabellen durchzuführen, von denen erwartet wird, dass sie gemäß der Zielverzögerung aktualisiert werden. |
Die Aktualisierung meiner dynamischen Tabelle ist fehlgeschlagen. |
Wie eine normale Snowflake-Abfrage kann auch die Aktualisierung einer dynamischen Tabellen aufgrund von Problemen mit der Abfragedefinition der dynamischen Tabelle, den Eingabedaten (z. B. Parsing-Fehler) oder internen Systemproblemen fehlschlagen. Um festzustellen, warum die Aktualisierung fehlgeschlagen ist, gehen Sie wie folgt vor:
Wenn die Aktualisierung aufgrund eines
|
Meine dynamische Tabelle wird neu initialisiert. |
Ihre dynamische Tabelle wird möglicherweise aus einem der folgenden Gründe neu initialisiert:
Allgemeine Informationen zur Initialisierung finden Sie unter Erläuterungen zur Initialisierung dynamischer Tabellen. |
Probleme beim Erstellen dynamischer Tabellen lösen¶
Problem |
Lösung |
---|---|
Das Erstellen meiner dynamischen Tabelle dauert sehr lange. |
Wenn Sie eine dynamische Tabelle mit einer CREATE DYNAMIC TABLE-Anweisung erstellen, erfolgt ihre erstmalige Aktualisierung entweder zu einem geplanten Zeitpunkt ( Die Initialisierung kann einige Zeit dauern, je nachdem, wie viele Daten gescannt werden. Um den Fortschritt zu sehen, gehen Sie wie folgt vor:
Allgemeine Informationen zur Initialisierung finden Sie unter Erläuterungen zur Initialisierung dynamischer Tabellen. |
Dynamische Tabellen debuggen¶
Problem |
Lösung |
---|---|
Ich kann die Metadaten für meine dynamische Tabelle nicht sehen. |
Um die Metadaten und das Information Schema einer dynamischen Tabelle anzuzeigen, müssen Sie eine Rolle verwenden, die über die Berechtigung MONITOR für diese dynamische Tabelle verfügt. Weitere Informationen dazu finden Sie unter Berechtigung zum Anzeigen der Metadaten einer dynamischen Tabelle. |
Meine dynamische Tabelle wurde ausgesetzt. |
Eine dynamische Tabelle kann aus verschiedenen Gründen ausgesetzt werden:
Um den Grund zu erfahren, warum Ihre dynamische Tabelle ausgesetzt wurde, gehen Sie wie folgt vor:
|