Kategorien:

Tabellenfunktionen (Information Schema)

STORAGE_LIFECYCLE_POLICY_HISTORY

Gibt den Ausführungsverlauf für Speicherlebenszyklusrichtlinien Ihres Kontos innerhalb der letzten 14 Tage zurück.

Verwenden Sie diese Tabellenfunktion, um die letzten (abgeschlossenen oder noch laufenden) Richtlinienausführungen abzufragen, in absteigender Reihenfolge nach Ausführungsendzeit. Weitere Informationen zur Überwachung von Speicherlebenszyklusrichtlinien finden Sie unter Überwachen von Speicherlebenszyklusrichtlinien.

Siehe auch:

CREATE STORAGE LIFECYCLE POLICY, ALTER STORAGE LIFECYCLE POLICY, DROP STORAGE LIFECYCLE POLICY

Syntax

Nach Objekt

STORAGE_LIFECYCLE_POLICY_HISTORY( REF_ENTITY_NAME => '<string>', REF_ENTITY_DOMAIN => '<string>' [, TIME_RANGE_START => <constant_expr> ] [, TIME_RANGE_END => <constant_expr> ] [, RESULT_LIMIT => <integer> ] ) 
Copy

Nach Speicherlebenszyklusrichtlinie

STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => '<string>' [, TIME_RANGE_START => <constant_expr> ] [, TIME_RANGE_END => <constant_expr> ] [, RESULT_LIMIT => <integer> ] ) 
Copy

Argumente

Bemerkung

Geben Sie eine der folgenden Optionen an, wenn Sie die Funktion aufrufen:

  • REF_ENTITY_NAME und REF_ENTITY_DOMAIN: Ruft den Ausführungsverlauf für alle Speicherlebenszyklusrichtlinien ab, die mit einem Objekt (Tabelle) verknüpft sind.

  • POLICY_NAME: Ruft den Ausführungsverlauf für eine bestimmte, durch den Namen angegebene Speicherlebenszyklusrichtlinie ab.

Benötigt:

REF_ENTITY_NAME => 'string'

Der Bezeichner des Objekts (Tabelle), auf dem die Ausführung stattgefunden hat; zum Beispiel der Name der Tabelle, an die die Speicherlebenszyklusrichtlinie angehängt ist.

Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten. Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

REF_ENTITY_DOMAIN => 'string'

Der Objekttyp, mit dem die Speicherlebenszyklusrichtlinie verknüpft ist:

  • 'Table': Gibt an, dass die Speicherlebenszyklusrichtlinie mit einer Tabelle verknüpft ist.

POLICY_NAME => 'string'

Der Bezeichner einer Speicherlebenszyklusrichtlinie, für die der Ausführungsverlauf abgerufen werden soll. Wenn Sie keinen Richtliniennamen angeben, müssen Sie Werte für REF_ENTITY_NAME und REF_ENTITY_DOMAIN angeben.

Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optional:

TIME_RANGE_START => constant_expr, . TIME_RANGE_END => constant_expr

Zeitraum innerhalb der letzten 14 Tage, in dem die Richtlinie ausgeführt wurde.

Wenn keiner der beiden Parameter angegeben ist, gibt die Funktion Zeilen (bis RESULT_LIMIT) für die letzten Richtlinienausführungen in absteigender Reihenfolge nach END_TIME zurück.

RESULT_LIMIT => integer

Die maximale Anzahl von Zeilen, die von der Funktion zurückgegeben werden.

Bereich: 1 bis 1000

Standard: 1000.

Rückgabewerte

Die Funktion gibt Ausführungsverlaufsdatensätze für Speicherlebenszyklusrichtlinien zurück. Jeder Datensatz enthält Informationen zur Ausführung der Richtlinie, einschließlich des Richtliniennamens, der zugehörigen Tabelle, des Ausführungsstatus, der Start- und Endzeiten sowie der Ausführungsergebnisse.

Detaillierte Spaltenbeschreibungen finden Sie unter Ausgabe.

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

POLICY_DB

VARCHAR

Name der Datenbank, die die Richtlinie enthält.

POLICY_SCHEMA

VARCHAR

Name des Schemas, das die Richtlinie enthält.

POLICY_NAME

VARCHAR

Der Name der Richtlinie.

REF_ENTITY_DB

VARCHAR

Der Name der Datenbank, die das Objekt enthält, mit dem die Richtlinie verknüpft ist.

REF_ENTITY_SCHEMA

VARCHAR

Der Name des Schemas, das das Objekt enthält, mit dem die Richtlinie verknüpft ist.

REF_ENTITY_NAME

VARCHAR

Der Name des Objekts, mit dem die Richtlinie verknüpft ist.

REF_ENTITY_DOMAIN

VARCHAR

Die Domäne (Typ) des Objekts, mit dem die Richtlinie verknüpft ist; zum Beispiel Table.

STATE

VARCHAR

Der Status der Ausführung der Richtlinie: QUEUED, EXECUTING, SUCCEEDED oder FAILED.

START_TIME

TIMESTAMP_LTZ

Frühester Zeitstempel, wann eine Aufgabe im Rahmen der Ausführung der Richtlinie gestartet wurde.

END_TIME

TIMESTAMP_LTZ

Letzter Zeitstempel, wann eine Aufgabe im Rahmen der Ausführung der Richtlinie abgeschlossen wurde.

EXECUTION_RESULT

VARIANT

JSON-Objekt, das die Ergebnisse der Jobs enthält, die während der Ausführung der Richtlinien ausgeführt wurden. Weitere Informationen dazu finden Sie unter EXECUTION_RESULT-Felder.

POLICY_BODY

VARCHAR

Der Text der Speicherlebenszyklusrichtlinie.

EXECUTION_RESULT-Felder

Die Spalte EXECUTION_RESULT ist ein JSON-Objekt, das verschachtelte Objekte für jeden Aufgabentyp in der Richtlinienausführung enthält:

  • EXPIRE: Enthält die Ergebnisse von Ablaufvorgängen (dauerhaftes Löschen von Zeilen).

  • ARCHIVE: Enthält die Ergebnisse von Archivierungsvorgängen (Verschieben von Zeilen in den Archivspeicher).

  • EXPIRE_ARCHIVE: Enthält die Ergebnisse von Ablaufvorgängen (dauerhaftes Löschen von Zeilen aus dem Archivspeicher).

Jedes verschachtelte Objekt kann die folgenden Felder enthalten, wobei bestimmte Felder für bestimmte Aufgabentypen gelten:

Feldname

Beschreibung

START_TIME

Zeitstempel für den Start der einzelnen Aufgaben.

END_TIME

Zeitstempel für das Ende der einzelnen Aufgaben.

STATE

Status der einzelnen Aufgaben: SUCCEEDED oder FAILED.

ROWS_EXPIRED

(Nur EXPIRE-Aufgabe) Die Anzahl der Zeilen, die dauerhaft aus dem aktiven Speicher gelöscht werden.

ROWS_ARCHIVED

(Nur ARCHIVE-Aufgabe) Die Anzahl der im Speicher archivierten Zeilen.

ROWS_EXPIRED_FROM_ARCHIVE

(Nur EXPIRE_ARCHIVE-Aufgabe) Die Anzahl der Zeilen, die dauerhaft aus dem Archivspeicher gelöscht werden.

ERROR_MESSAGE_CODE

Der Code, der die Art des Fehlers angibt, der während der Ausführung der Aufgabe aufgetreten ist.

ERROR_MESSAGE

Eine detaillierte Fehlermeldung.

Beispiel: EXECUTION_RESULT Text:

EXECUTION_RESULT = {  “EXPIRE”: {  “start_time”: "Thu, 27 Jun 2024 02:57:57 -0700",  “end_time”: "Thu, 27 Jun 2024 02:58:01 -0700",  “state”: "SUCCEEDED",  “rows_expired”: 100,  “error_message_code”: null,  “error_message”: null  } } 

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens eine der folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

APPLY STORAGE LIFECYCLE POLICY

Global

Wenn die Rolle, die die Funktion aufruft, über diese Berechtigung verfügt, gibt Snowflake alle Richtlinienausführungen zurück, die sich auf alle Richtlinien und ihre zugehörigen Tabellen im Snowflake-Konto beziehen.

APPLY

Speicherlebenszyklusrichtlinie

Um die Ausführungen für eine Richtlinie anzuzeigen, muss eine Rolle auch über die OWNERSHIP-Berechtigung für die Tabellen verfügen, die mit der Richtlinie verbunden sind. Diese Berechtigung ist nicht erforderlich, wenn eine Rolle die globale Berechtigung APPLY STORAGE LIFECYCLE POLICY hat.

OWNERSHIP

Tabelle

Um die Ausführungen für eine Richtlinie anzuzeigen, muss eine Rolle auch über die APPLY-Berechtigung für die Richtlinie verfügen, die mit der Tabelle verbunden ist. Diese Berechtigung ist nicht erforderlich, wenn eine Rolle die globale Berechtigung APPLY STORAGE LIFECYCLE POLICY hat.

Nutzungshinweise

  • Die Ergebnisse werden auf der Grundlage der Berechtigungen zurückgegeben, die der Rolle erteilt wurden, die die Abfrage ausführt:

    • Wenn die Rolle über die globale APPLY STORAGE LIFECYCLE POLICY-Berechtigung verfügt, gibt Snowflake alle Richtlinienausführungen zurück, die sich auf Richtlinien- und Tabellenzuordnungen im Konto beziehen.

    • Wenn die Rolle über die APPLY-Berechtigung für eine bestimmte Speicherlebenszyklusrichtlinie verfügt, gibt Snowflake Ausführungen für diese Richtlinie nur für Objekte zurück, deren Eigentümer die Rolle ist, die die Funktion aufruft.

    • Wenn die Rolle entweder über die Berechtigung APPLY oder die Berechtigung OWNERSHIP für die Richtlinie verfügt, aber nicht die OWNERSHIP-Berechtigung für die Tabelle hat, mit der die Richtlinie verknüpft ist, zeigt Snowflake keine Richtlinienausführungen für die Richtlinie in den Ergebnissen an.

    • Wenn die Rolle keine Richtlinienberechtigungen hat, aber die OWNERSHIP-Berechtigung für die Tabelle, mit der eine Richtlinie verknüpft ist, gibt Snowflake eine Fehlermeldung aus und keine Richtlinienausführungen zurück.

Beispiele

Geben Sie die Argumente REF_ENTITY_NAME und REF_ENTITY_DOMAIN an, um den Verlauf der Speicherlebenszyklusrichtlinie für eine Tabelle namens t1 abzurufen:

SELECT * FROM TABLE ( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( REF_ENTITY_NAME => 'my_db.my_schema.t1', REF_ENTITY_DOMAIN => 'Table' ) ); 
Copy

Rufen Sie den Verlauf der Speicherlebenszyklusrichtlinie für jede Tabelle ab, mit der die Richtlinie namens slp verknüpft ist, und begrenzen die Ergebnisse auf 100 Zeilen:

SELECT * FROM TABLE( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => 'my_db.my_schema.slp', RESULT_LIMIT => 100 ) ); 
Copy

Abrufen der 100 neuesten Ausführungen einer bestimmten Richtlinie, geplant in der letzten Stunde:

SELECT * FROM TABLE( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => 'my_db.my_schema.slp', TIME_RANGE_START => DATEADD('HOUR', -1, CURRENT_TIMESTAMP()), RESULT_LIMIT => 100 ) ); 
Copy

Abrufen des Richtlinienausführungsverlaufs für eine bestimmte Tabelle innerhalb eines Zeitraums von 30 Minuten:

SELECT * FROM TABLE ( INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY( REF_ENTITY_NAME => 'my_db.my_schema.t1', REF_ENTITY_DOMAIN => 'Table', TIME_RANGE_START => TO_TIMESTAMP_LTZ('2024-07-08 12:00:00.000 -0700'), TIME_RANGE_END => TO_TIMESTAMP_LTZ('2024-07-08 12:30:00.000 -0700') ) ); 
Copy