Allgemeine Informationen zum Verwalten von dynamischen Tabellen¶
Das Verwalten von dynamischen Tabellen umfasst die folgenden Aufgaben:
Aufgabe |
Beschreibung |
---|---|
Auflisten dynamischer Tabellen und Anzeigen von Informationen zu dynamischen Tabellen |
Auflisten und Anzeigen von dynamischen Tabellen. |
Löschen dynamischer Tabellen. |
|
Warehouse oder Zielverzögerung einer dynamischen Tabelle ändern |
Ändern von dynamischen Tabellen. |
Auflisten dynamischer Tabellen und Anzeigen von Informationen zu dynamischen Tabellen¶
Um die dynamischen Tabellen in einer Datenbank aufzulisten und Informationen zu diesen dynamischen Tabellen anzuzeigen, können Sie entweder Snowsight oder SQL-Befehle verwenden:
Verwenden von Snowsight zum Auflisten dynamischer Tabellen und zum Anzeigen von Details
Verwenden von SQL-Befehlen zum Auflisten dynamischer Tabellen und zum Anzeigen von Details
Verwenden von Snowsight zum Auflisten dynamischer Tabellen und zum Anzeigen von Details¶
So listen Sie die dynamischen Tabellen in einem Schema auf und zeigen Informationen zu einer dynamischen Tabelle an:
Melden Sie sich bei Snowsight an.
Wählen Sie Data » Databases aus.
Wählen Sie eine Datenbank und ein Schema aus.
Wählen Sie unter Schema Details die Registerkarte Dynamic Tables aus.
Beachten Sie, dass Sie die Liste der dynamischen Tabellen auch im Objekt-Explorer der Datenbank einsehen können, indem Sie Dynamic Tables erweitern.
Um Informationen zu einer bestimmten dynamischen Tabelle anzuzeigen, wählen Sie die dynamische Tabelle im Objekt-Explorer der Datenbank oder in der Liste der dynamischen Tabellen auf der Registerkarte Dynamic Tables aus.
Einige Informationen auf den Registerkarten dieser Seite sind die gleichen wie auf der Detailseite der Tabelle:
Die Definition der dynamischen Tabelle und die Berechtigungen, die zur Verwendung der dynamischen Tabelle erteilt wurden
Informationen zu den Spalten der dynamischen Tabelle
Eine Vorschau von bis zu 100 Zeilen der Daten in der dynamischen Tabelle
Außerdem enthält die Detailseite der dynamischen Tabelle Registerkarten, auf denen Sie Informationen zu der dynamischen Tabelle anzeigen können:
Auf der Registerkarte Graph wird der DAG (Directed Acyclic Graph) angezeigt, der diese dynamische Tabelle enthält. Siehe Verwenden von Snowsight zum Untersuchen des Task-Graphen von dynamischen Tabellen.
Auf der Registerkarte Refresh History wird der Verlauf der Aktualisierungen angezeigt. Siehe Verwenden von Snowsight zum Überwachen von Aktualisierungen.
Verwenden von SQL-Befehlen zum Auflisten dynamischer Tabellen und zum Anzeigen von Details¶
Um die dynamischen Tabellen aufzulisten, die in der aktuellen Datenbank vorhanden sind (oder im Konto, wenn derzeit keine Datenbank verwendet wird), verwenden Sie den Befehl SHOW DYNAMIC TABLES.
Um beispielsweise die dynamischen Tabellen in der Datenbank
mydb
und dem Schemamyschema
aufzulisten, deren Namen mitproduct_
beginnen, führen Sie die folgende SQL-Anweisung aus:SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
Die vollständige Syntax des Befehls finden Sie unter SHOW DYNAMIC TABLES.
Um Informationen zu den Spalten in einer dynamischen Tabelle auszugeben, verwenden Sie den Befehl DESCRIBE DYNAMIC TABLE.
So können Sie beispielsweise die Spalten in der dynamischen Tabelle
product
aufzulisten:DESC DYNAMIC TABLE product;
Dynamische Tabellen sind auch in den Ergebnissen der Ansicht TABLES enthalten.
Dynamische Tabelle löschen¶
Um eine dynamische Tabelle zu löschen, können Sie entweder Snowsight oder SQL-Befehle verwenden.
- Snowsight:
Öffnen Sie in Snowsight die Detailseite der dynamischen Tabelle (Anleitung).
Wählen Sie im Menü More in der rechten oberen Ecke der Seite die Option Drop aus.
- SQL:
Verwenden Sie den Befehl DROP DYNAMIC TABLE.
So löschen Sie beispielsweise die dynamische Tabelle
product
:
DROP DYNAMIC TABLE product;
Data Sharing und dynamische Tabellen¶
Dynamische Tabellen sind freigabefähige Objekte. Um eine dynamische Tabelle freizugeben, erteilen Data-Sharing-Anbieter einer Freigabe die Berechtigungen für eine dynamische Tabelle, und diese Freigabe kann dann von Data-Sharing-Verbrauchern genutzt werden.
Warehouse oder Zielverzögerung einer dynamischen Tabelle ändern¶
Um das Warehouse oder die Zielverzögerung einer dynamischen Tabelle zu ändern, verwenden Sie den Befehl ALTER DYNAMIC TABLE.
Um beispielsweise das Warehouse für die dynamische Tabelle product
in my_other_wh
zu ändern, führen Sie Folgendes aus:
ALTER DYNAMIC TABLE product SET WAREHOUSE = my_other_wh;
Die folgende Abbildung illustriert die Operationen für das Anhalten, Fortsetzen und manuelle Aktualisieren im Kontext der vor- und nachgelagerten Beziehungen zu anderen dynamischen Tabellen.
![Beziehung zwischen dynamischen Tabellen. Dient zur Erläuterung von Anhalten, Fortsetzen und manueller Aktualisierung.](../_images/dynamic-tables-relationships.png)
Die Abbildung zeigt eine einfache deklarative Datenpipeline, die aus dynamischen Tabellen aufgebaut ist. Ähnlich wie Wasser, das in einem Strom fließt, fließen die Daten in einer dynamischen Tabellen-Pipeline von der Wurzel stromabwärts in Richtung der dynamischen Tabelle am Stromende:
DT2 wird als stromabwärts, also nachgelagert, von DT1 beschrieben, weil sie von dieser dynamischen Tabelle abhängt, und als stromaufwärts, also vorgelagert, von DT3 beschrieben, die von ihr abhängt.
DT3 befindet sich stromabwärts, also nachgelagert von DT2 als auch von DT1, da sie direkt von DT2 und indirekt von DT1 abhängt.
DT1 befindet sich stromaufwärts gegenüber den anderen dynamischen Tabellen, ist ihnen also direkt oder indirekt vorgelagert.
Weitere Details und Beispiele für die Verwendung der Downstream-Zielverzögerung (Target Lag) finden Sie unter Erläuterungen zur Zielverzögerung.
Optimale Zielverzögerung einer dynamischen Tabelle bestimmen¶
Um die optimale Zielverzögerungszeit für eine dynamische Tabelle zu bestimmen, können Sie entweder Snowsight oder SQL-Befehle verwenden.
- Snowsight:
Wählen Sie auf der Detailseite der dynamischen Tabelle die Registerkarte Refresh History aus.
Prüfen Sie die tatsächliche maximale Verzögerungszeit, die oben auf der Registerkarte angezeigt wird. Diese Kennzahl basiert auf der tatsächlichen Verzögerungszeit bei jeder Aktualisierung.
- SQL:
Verwenden Sie die Tabellenfunktion DYNAMIC_TABLE_REFRESH_HISTORY in INFORMATION_SCHEMA. Diese Funktion gibt Informationen zu jeder Aktualisierung einer dynamischen Tabelle zurück, einschließlich der Zeit, die für die Aktualisierung benötigt wurde, sowie Angaben zu den Aktualisierungen, die übersprungen wurden.
Die von Ihnen gewählte Verzögerungszeit kann sich auf den Aktualisierungszeitplan auswirken, der durch den automatischen Aktualisierungsprozess bestimmt wird. Der automatische Aktualisierungsprozess wählt einen Zeitplan, der den Verzögerungszeiten der dynamischen Tabellen am besten entspricht.
Feststellen, ob inkrementelle oder vollständige Aktualisierung verwendet wird¶
Um festzustellen, ob bei der Aktualisierung einer dynamischen Tabelle eine inkrementelle oder eine vollständige Aktualisierung vorgenommen wird, können Sie entweder Snowsight oder SQL-Befehle verwenden.
- Snowsight:
Rufen Sie die Detailseite der dynamischen Tabelle auf.
Die grundlegenden Details oben auf der Seite zeigen an, ob für diese Tabelle inkrementelle oder vollständige Aktualisierungen verwendet werden.
- SQL:
Verwenden Sie den Befehl SHOW DYNAMIC TABLES, und überprüfen Sie in der Ausgabe den Wert in der Spalte
REFRESH_MODE
.REFRESH_MODE_REASON enthält zusätzliche Details zur Auswahl von REFRESH_MODE.
Erläuterungen zu den Auswirkungen von Änderungen an Spalten in Basistabellen¶
Die Spalten in den Basistabellen, Ansichten und den zugrunde liegenden dynamischen Tabellen können sich im Laufe der Zeit ändern. Einige Änderungen können sich auf die dynamische Tabelle selbst auswirken, während andere nur begrenzte oder gar keine Auswirkungen haben.
Wenn sich die zugrunde liegenden Objekte, die mit einer dynamischen Tabelle verbunden sind, ändern, hat dies folgende Auswirkungen:
Änderung |
Auswirkung |
---|---|
|
Keine. Wenn der Basistabelle eine neue Spalte hinzugefügt wurde oder eine nicht genutzte Spalte gelöscht wurde, werden keine Aktionen ausgeführt, und die Aktualisierungen werden wie zuvor fortgesetzt. |
|
Vollständige Aktualisierung/Neuinitialisierung: Während des nächsten Aktualisierungszyklus wird eine vollständige Aktualisierung ausgeführt, um sicherzustellen, dass keine falschen oder veralteten Daten in der dynamischen Tabelle vorhanden sind. |
|
Der Status der dynamischen Tabelle ändert sich in FAILED. Die dynamische Tabelle muss neu erstellt werden, um die Änderung zu berücksichtigen. |
Erläuterungen zum Verhalten bei automatischem Anhalten¶
Bemerkung
Eine dynamische Tabelle wird angehalten, wenn das System fünf aufeinanderfolgende Aktualisierungsfehler feststellt. Dynamische Tabellen, die aufgrund von Aktualisierungsfehlern angehalten wurden, werden gemeinhin als automatisch angehalten (auto suspended) bezeichnet, da sie vom System und nicht durch Benutzeraktionen angehalten wurden.
Alle dynamischen Tabellen, die von der angehaltenen dynamischen Tabelle abhängen, werden ebenfalls angehalten. SCHEDULING_STATE beschreibt den aktuellen Status einer dynamischen Tabelle.
Um den Zeitplanungsstatus der dynamischen Tabelle anzuzeigen, rufen Sie die Tabellenfunktion DYNAMIC_TABLE_GRAPH_HISTORY auf und prüfen die Spalte SCHEDULING_STATE.