Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING

Wenn ein Verbrauchender eines Freigabeangebots die Daten des Freigabeangebots in eine andere Region weitergibt, erstellt Snowflake verborgene dynamische Tabellen, um die automatische Ausführung des Freigabeangebots in der Zielregion zu ermöglichen. Diese Systemfunktion gibt Informationen zu den verborgenen dynamischen Tabellen zurück, die Snowflake unter der ausgehenden Ansicht erstellt, um importierte Daten für die regionsübergreifende gemeinsame Nutzung zu materialisieren.

Verwenden Sie diese Funktion für Folgendes:

  • Identifizieren, welche importierten Objekte dynamische Tabellen für eine bestimmte ausgehende Ansicht unterstützen.

  • Untersuchen der letzten Aktualisierungszeiten dieser dynamischen Tabellen (zum Debuggen oder zur Kosten- bzw. Zustandsanalyse).

Siehe auch:

Erneutes Freigeben von Freigabeangeboten

Syntax

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING( '<view_name>' )

Argumente

'view_name'

Der Name der ausgehenden Ansicht, die mit einem Freigabeangebot oder einer Freigabe verbunden ist, deren importierte Daten automatisch in ausgeblendeten dynamischen Tabellen für die Freigabe materialisiert werden.

Sie können einen vollqualifizierten Ansichtsnamen übergeben, zum Beispiel:

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
  'RESHARER_DB.PUBLIC.SHARED_VIEW'
);

Rückgabewerte

Gibt eine JSON-Zeichenfolge zurück, die ein Array von Objekten enthält. Jedes Objekt repräsentiert eine ausgeblendete dynamische Tabelle, die unter der angegebenen Ansicht für die wiederholte Freigabe erstellt wurde:

Feld

Typ

Beschreibung

dtName

STRING

Der vollqualifizierte Name der verborgenen dynamischen Tabelle, die unter der ausgehenden Ansicht verschachtelt ist (z. B. _<id>_IMPORTED_DB.SCHEMA.TABLE_DT_FOR_RESHARING).

dtSourceObject

STRING

Der vollqualifizierte Name des importierten Objekts (z. B. IMPORTED_DB.SCHEMA.TABLE), das in dieser dynamischen Tabelle zur erneuten Freigabe materialisiert wird. Dies entspricht der ursprünglichen importierten Entität, auf die in der Definition der Ansicht verwiesen wird.

dtRefreshStartTimeMillis

NUMBER

Der Epochenzeitstempel in Millisekunden, für den die letzte Aktualisierung dieser dynamischen Tabelle gestartet wurde. Null, wenn keine Aktualisierung stattgefunden hat. Konvertieren mit TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::number, 3).

dtRefreshEndTimeMillis

NUMBER

Der Epochenzeitstempel in Millisekunden, für den die letzte Aktualisierung dieser dynamischen Tabelle abgeschlossen wurde. Null, wenn keine Aktualisierung stattgefunden hat. Konvertieren mit TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::number, 3).

Status

STRING

Der Status der letzten Aktualisierung. Null, wenn keine Aktualisierung stattgefunden hat. Mögliche Werte: SCHEDULED, EXECUTING, SUCCEEDED, FAILED, CANCELLED, UPSTREAM_FAILED. Eine Beschreibung der einzelnen Status finden Sie in der DYNAMIC_TABLE_REFRESH_HISTORY-Ausgabe.

Nutzungshinweise

  • In den folgenden Szenarios werden keine dynamischen Tabellen erstellt, und die Funktion gibt keine Zeilen zurück:

    • Die Ansicht verweist nicht auf importierte Datenbanken.

    • Die Ansicht verwendet importierte Daten, die nicht für eine erneute Freigabe in Frage kommen.

    • Die Ansicht wurde noch nicht von der automatischen Ausführung des Freigabeangebots verarbeitet.

  • Diese Funktion ist für die Beobachtbarkeit und das Debugging vorgesehen.

Beispiele

Im folgenden Beispiel werden die dynamischen Tabellen abgerufen, die für eine erneut freigegebene Ansicht erstellt wurden:

SELECT * FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

So erhalten Sie eine lesbare Tabelle mit korrekten Zeitstempeln:

SELECT
  value:dtName::STRING AS dt_name,
  value:dtSourceObject::STRING AS dt_source_object,
  TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::NUMBER, 3) AS dt_refresh_start_time,
  TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::NUMBER, 3) AS dt_refresh_end_time,
  value:status::STRING AS status
FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

Beispielausgabe:

+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| DT_NAME                                                  | DT_SOURCE_OBJECT           | DT_REFRESH_START_TIME         | DT_REFRESH_END_TIME           | STATUS            |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| _12345_IMPORTED_DB.PUBLIC.TABLE_A_DT_FOR_RESHARING       | IMPORTED_DB.PUBLIC.TABLE_A | 2026-03-19 10:00:00.000 -0700 | 2026-03-19 10:00:05.000 -0700 | SUCCEEDED |
| _12345_IMPORTED_DB.PUBLIC.VIEW_B_DT_FOR_RESHARING        | IMPORTED_DB.PUBLIC.VIEW_B  | 2026-03-19 10:00:01.000 -0700 | 2026-03-19 10:00:04.000 -0700 | SUCCEEDED |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+