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.

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

So listen Sie die dynamischen Tabellen in einem Schema auf und zeigen Informationen zu einer dynamischen Tabelle an:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data » Databases aus.

  3. Wählen Sie im Datenbankobjekt-Explorer neben dem Navigationsbereich ein Datenbankschema aus.

  4. Wählen Sie auf der Detailseite zum Schema 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.

  5. 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:

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 Schema myschema aufzulisten, deren Namen mit product_ beginnen, führen Sie die folgende SQL-Anweisung aus:

    SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
    
    Copy

    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;
    
    Copy

Dynamische Tabellen sind auch in den Ergebnissen der TABLES-Ansicht enthalten.

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.

Freigeben von Daten für dynamische Tabellen

Anbieter können ausgewählte dynamische Tabellen für andere Snowflake-Konten freigeben, indem sie entweder eine direkte Freigabe oder Freigabeangebote verwenden, wodurch Daten zwischen Konten ausgetauscht werden können, ohne sie physisch bewegen zu müssen. Der Prozess umfasst das Erstellen einer Freigabe für eine Datenbank im Konto des Anbieters, das Gewähren des Datenbankzugriffs im Konto des Anbieters, das Erteilen von Zugriffsrechten und das Hinzufügen anderer Objekte zur Freigabe. Weitere Informationen dazu finden Sie unter Einführung in Secure Data Sharing und Übersicht zur Datenfreigabe in Snowflake.

Ein Data-Sharing-Anbieter kann entweder die SELECT-Berechtigung für eine einzelne dynamische Tabelle oder die SELECT-Berechtigung für alle dynamischen Tabellen in einer Datenbank erteilen, wie in den folgenden Beispielen gezeigt.

GRANT SELECT ON ALL DYNAMIC TABLES IN SCHEMA mydb.public TO SHARE share1;

GRANT SELECT ON DYNAMIC TABLE mydb.public TO SHARE share1;
Copy

Weitere Details dazu finden Sie unter GRANT <Berechtigung> … TO SHARE.

Dynamischen Tabelle zum Erfassen freigegebener Daten erstellen

Gehen Sie wie folgt vor, um eine dynamische Tabelle zu erstellen, die freigegebene Daten erfasst:

  1. Vergewissern Sie sich, dass Sie über die notwendigen Berechtigungen verfügen, und erstellen Sie dann eine Datenbank aus einer Freigabe und erteilen Sie Berechtigungen für diese.

    CREATE DATABASE shared_db FROM SHARE provider_account.share1;
    
    Copy
  2. Erteilen Sie Berechtigungen für die freigegebene Datenbank.

  3. Erstellen Sie eine freigegebene dynamische Tabelle.

    CREATE OR REPLACE DYNAMIC TABLE <dt_name>
      TARGET_LAG = '1 day'
      WAREHOUSE = <warehouse_name>
      AS
        SELECT * FROM shared_db.public.mydb;
    
    Copy

    Bemerkung

    Die Änderungsverfolgung muss für alle zugrunde liegenden Objekte, die von einer dynamischen Tabelle verwendet werden, aktiviert sein. Um eine dynamische Tabelle zum Erfassen freigegebener Daten zu verwenden, muss der Data-Sharing-Anbieter change_tracking für das freigegebene Objekt aktivieren. Siehe Dynamische Tabellen und Änderungsverfolgung.

Für das Verwenden von dynamischen Tabellen zum Erfassen freigegebener Daten gelten folgende Einschränkungen:

  • Das Erstellen einer dynamischen Tabelle, die auf einer freigegebenen dynamischen Tabelle basiert, wird derzeit nicht unterstützt.

  • Das Erstellen einer dynamischen Tabelle, die auf einer freigegebenen sicheren Ansicht basiert, die wiederum eine vorgelagerte dynamische Tabelle referenziert, wird derzeit nicht unterstützt.

  • Die Cloud-übergreifende automatische Ausführung wird derzeit nicht für freigegebene dynamische Tabellen unterstützt.

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;
    
    Copy

Die vollständige Syntax des Befehls ALTER DYNAMIC TABLE finden Sie unter ALTER DYNAMIC TABLE.

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
  1. Klicken Sie auf der Detailseite der dynamischen Tabelle auf die Registerkarte Refresh History.

  2. 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.

    Wenn REFRESH_MODE = FULL ist, enthält REFRESH_MODE_REASON zusätzliche Details darüber, warum eine vollständige Aktualisierung ausgeführt wurde.