Kategorien:

Information Schema, Tabellenfunktionen

DYNAMIC_TABLE_REFRESH_HISTORY

Diese Tabellenfunktion gibt Informationen über jede Aktualisierung (abgeschlossen und in Ausführung) von dynamischen Tabellen zurück.

Diese Tabellenfunktion gibt alle in Ausführung befindlichen Aktualisierungen sowie alle Aktualisierungen zurück, die eine REFRESH_VERSION innerhalb von 1 Tag nach dem aktuellen Zeitpunkt haben.

Syntax

DYNAMIC_TABLE_REFRESH_HISTORY(
  [ DATA_TIMESTAMP_START => <constant_expr> ]
  [ , DATA_TIMESTAMP_END => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , NAME => '<string>' ]
  [ , NAME_PREFIX => '<string>' ]
  [ , ERROR_ONLY => { TRUE | FALSE } ]
)
Copy

Argumente

Alle Argumente sind optional. Wenn keine Argumente angegeben werden, werden 100 Aktualisierungen aus allen dynamischen Tabellen des Kontos zurückgegeben.

DATA_TIMESTAMP_START => constant_expr, . DATA_TIMESTAMP_END => constant_expr

Zeitbereich (im Format TIMESTAMP_LTZ), in der die Aktualisierungen stattgefunden haben.

  • Wenn weder eine Start- noch eine Endversion angegeben wird, ist der Standardbereich der letzte Tag.

  • Wenn kein Enddatum angegeben ist, wird CURRENT_TIMESTAMP als Ende des Bereichs verwendet.

  • Wenn keine Startversion angegeben ist, beginnt der Bereich 1 Tag vor dem Start von DATE_TIMESTAMP_END.

RESULT_LIMIT => integer

Eine Zahl, die die maximale Anzahl von Zeilen angibt, die von der Funktion zurückgegeben werden.

Wenn die Anzahl der übereinstimmenden Zeilen größer als dieser Grenzwert ist, werden die Aktualisierungen mit der jüngsten Endzeit (oder Aktualisierungen, die noch ausgeführt werden) zurückgegeben – bis zum angegebenen Grenzwert.

Bereich: 1 bis 10000

Standard: 100.

NAME => string

Der Name einer dynamischen Tabelle.

Die Namen müssen in einfachen Anführungszeichen stehen, wobei Groß-/Kleinschreibung nicht berücksichtigt wird.

Sie können den nicht qualifizierten Namen (dynamic_table_name), den teilweise qualifizierten Namen (schema_name.dynamic_table_name) oder den vollqualifizierten Namen (database_name.schema_name.dynamic_table_name) angeben.

Weitere Informationen zur Auflösung von Objektnamen finden Sie unter Auflösung des Objektnamens.

Die Funktion gibt die Aktualisierungen für diese Tabelle zurück.

NAME_PREFIX => string

Ein Präfix für dynamische Tabellen.

Namenspräfixe müssen in einfachen Anführungszeichen stehen, wobei Groß-/Kleinschreibung nicht berücksichtigt wird.

Die Funktion liefert Aktualisierungen für Tabellen, deren Namen mit diesem Präfix beginnen.

Sie können dieses Argument verwenden, um die Aktualisierungen für dynamische Tabellen in einer bestimmten Datenbank oder einem bestimmten Schema zurückzugeben.

ERROR_ONLY => TRUE | FALSE

Wenn diese Funktion auf TRUE gesetzt ist, werden nur Aktualisierungen zurückgegeben, die fehlgeschlagen sind oder abgebrochen wurden.

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

NAME

TEXT

Name der dynamischen Tabelle.

SCHEMA_NAME

TEXT

Name des Schemas, das die dynamische Tabelle enthält.

DATABASE_NAME

TEXT

Name der Datenbank, die die dynamische Tabelle enthält.

STATE

TEXT

Status der Aktualisierung der dynamischen Tabelle. Folgende Status sind verfügbar:

  • SCHEDULED: Aktualisierung geplant, aber noch nicht ausgeführt.

  • EXECUTING: Aktualisierung ist in Ausführung.

  • SUCCEEDED: Aktualisierung erfolgreich abgeschlossen.

  • FAILED: Aktualisierung während der Ausführung fehlgeschlagen.

  • CANCELLED: Aktualisierung wurde vor der Ausführung abgebrochen.

  • SKIPPED: Bedeutet, dass der automatische Aktualisierungsprozess die Aktualisierung aus irgendeinem Grund nicht ausgeführt hat. Der Grund könnte beispielsweise sein, weil eine dynamische Eingabetabelle nicht aktualisiert wurde oder um den Workload zu reduzieren, um eine gleichbleibende Performance zu erreichen.

STATE_CODE

TEXT

Code, der den aktuellen Status der Aktualisierung angibt.

STATE_MESSAGE

TEXT

Beschreibung des aktuellen Status der Aktualisierung.

QUERY_ID

TEXT

ID der SQL-Anweisung, die die Ergebnisse für die dynamische Tabelle erzeugt hat.

DATA_TIMESTAMP

TIMESTAMP_LTZ

Zeitstempel der Transaktion zum Zeitpunkt, als die Aktualisierung ausgewertet wurde. (Dies kann einen Moment vor dem tatsächlichen Zeitpunkt der Aktualisierung liegen.) Alle Daten in Basisobjekten, die vor diesem Zeitstempel eingegangen sind, sind derzeit in der dynamischen Tabelle enthalten.

REFRESH_START_TIME

TIMESTAMP_LTZ

Zeitpunkt, zu dem der Aktualisierungsjob gestartet wurde.

REFRESH_END_TIME

TIMESTAMP_LTZ

Zeitpunkt, zu dem die Aktualisierung abgeschlossen wurde.

COMPLETION_TARGET

TIMESTAMP_LTZ

Zeit, bis zu der diese Aktualisierung abgeschlossen sein muss, um die Verzögerung unter dem Parameter TARGET_LAG für die dynamische Tabelle zu halten. Entspricht der vorherigen Version REFRESH_VERSION + Verzögerung TARGET_LAG.

QUALIFIED_NAME

TEXT

Vollqualifizierter Name der dynamischen Tabelle, wie er im Task-Graph der dynamischen Tabellen angezeigt wird. Sie können dies verwenden, um die Ausgabe mit der Ausgabe der Funktion DYNAMIC_TABLE_GRAPH_HISTORY zu verknüpfen.

LAST_COMPLETED_DEPENDENCY

OBJECT

Enthält die folgenden Eigenschaften:

  • qualified_name: Der qualifizierte Name der letzten verfügbaren Abhängigkeit.

  • data_timestamp: Die Aktualisierungsversion dieser Abhängigkeit.

STATISTICS

OBJECT

Enthält die folgenden Eigenschaften:

  • numInsertedRows: Die Anzahl der eingefügten Zeilen.

  • numDeletedRows: Die Anzahl der gelöschten Zeilen.

  • numCopiedRows: Die Anzahl der Zeilen, die unverändert kopiert wurden.

  • numAddedPartitions: Die Anzahl der hinzugefügten Partitionen.

  • numRemovedPartitions: Die Anzahl der entfernten Partitionen.

    Beispiel: Angenommen, eine UPDATE-Anweisung aktualisiert 1 Zeile in einer Partition mit 10 Zeilen. Dann zeigen die Kennzahlen oben 1 eingefügte Zeile, 1 gelöschte Zeile und 9 kopierte Zeilen. Außerdem wird 1 Partition entfernt und 1 Partition hinzugefügt.

REFRESH_ACTION

TEXT

Eine der folgenden Optionen:

  • NO_DATA - Keine neuen Daten in Basistabellen. Gilt nicht für die erstmalige Aktualisierung von neu erstellten dynamischen Tabellen, unabhängig davon, ob die Basistabellen Daten enthalten oder nicht.

  • REINITIALIZE - Basistabelle wurde geändert oder Quelltabelle einer geklonten dynamischen Tabelle wurde während des Klonens aktualisiert.

  • FULL - Vollständige Aktualisierung, weil die dynamische Tabelle Abfrageelemente enthält, die nicht inkrementierbar sind (siehe SHOW DYNAMIC TABLE refresh_mode_reason) oder weil die vollständige Aktualisierung kostengünstiger war als die inkrementelle Aktualisierung.

  • INCREMENTAL - Normale inkrementelle Aktualisierung.

REFRESH_TRIGGER

TEXT

Eine der folgenden Optionen:

  • SCHEDULED – Normale Hintergrundaktualisierung, um die Zielverzögerung oder die nachgelagerte Zielverzögerung zu erreichen.

  • MANUAL - Benutzer/Aufgabe verwendet ALTER DYNAMIC TABLE <Name> REFRESH

Nutzungshinweise

  • Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder der Funktionsname muss vollqualifiziert sein. Weitere Details dazu finden Sie unter Snowflake Information Schema.

Beispiele

Abrufen der Aktualisierungen, die fehlgeschlagen sind oder abgebrochen wurden:

SELECT
  name,
  state,
  state_code,
  state_message,
  query_id,
  data_timestamp,
  refresh_start_time,
  refresh_end_time
FROM
  TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY (
      NAME_PREFIX => 'MYDB.MYSCHEMA.', ERROR_ONLY => TRUE
    )
  )
ORDER BY
  name,
  data_timestamp;
Copy