- 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> ] ) Nach Speicherlebenszyklusrichtlinie
STORAGE_LIFECYCLE_POLICY_HISTORY( POLICY_NAME => '<string>' [, TIME_RANGE_START => <constant_expr> ] [, TIME_RANGE_END => <constant_expr> ] [, RESULT_LIMIT => <integer> ] ) 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_exprZeitraum 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 => integerDie maximale Anzahl von Zeilen, die von der Funktion zurückgegeben werden.
Bereich:
1bis1000Standard:
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 |
STATE | VARCHAR | Der Status der Ausführung der Richtlinie: |
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: |
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' ) ); 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 ) ); 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 ) ); 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') ) );