- Catégories :
Fonctions de table (Information Schema)
STORAGE_LIFECYCLE_POLICY_HISTORY¶
Renvoie l’historique d’exécution pour les politiques de cycle de vie du stockage dans votre compte au cours des 14 derniers jours.
Utilisez cette fonction de table pour interroger les exécutions de politiques les plus récentes (terminées ou en cours), dans l’ordre décroissant en fonction de l’heure de fin d’exécution. Pour plus d’informations sur la surveillance des politiques de cycle de vie du stockage, voir Surveillance des politiques de cycle de vie du stockage.
- Voir aussi :
CREATE STORAGE LIFECYCLE POLICY, ALTER STORAGE LIFECYCLE POLICY, DROP STORAGE LIFECYCLE POLICY
Syntaxe¶
Par objet
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> ] )
Par politique de cycle de vie du stockage
STORAGE_LIFECYCLE_POLICY_HISTORY(
POLICY_NAME => '<string>'
[, TIME_RANGE_START => <constant_expr> ]
[, TIME_RANGE_END => <constant_expr> ]
[, RESULT_LIMIT => <integer> ] )
Arguments¶
Note
Spécifiez l’une des options suivantes lorsque vous appelez la fonction :
REF_ENTITY_NAME et REF_ENTITY_DOMAIN : Récupère l’historique d’exécution de toutes les politiques de cycle de vie du stockage attachées à un objet (table).
POLICY_NAME : Récupère l’historique d’exécution d’une politique de cycle de vie du stockage particulière spécifiée par son nom.
Obligatoire :
REF_ENTITY_NAME => 'string'L’identificateur de l’objet (table) sur lequel l’exécution s’est produite ; par exemple, le nom de la table à laquelle la politique de cycle de vie du stockage est associée.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse. Pour plus d’informations, voir Exigences relatives à l’identificateur.
REF_ENTITY_DOMAIN => 'string'Le type d’objet auquel la politique de cycle de vie du stockage est associée :
'Table': Spécifie que la politique de cycle de vie du stockage est associée à une table.
POLICY_NAME => 'string'L’identificateur d’une politique de cycle de vie du stockage pour lequel il faut récupérer l’historique d’exécution. Si vous ne spécifiez pas de nom de politique, vous devez spécifier des valeurs pour REF_ENTITY_NAME et REF_ENTITY_DOMAIN.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
Facultatif :
TIME_RANGE_START => constant_expr, .TIME_RANGE_END => constant_exprIntervalle de temps, au cours des 14 derniers jours, pendant lequel l’exécution de la politique a eu lieu.
Si aucun paramètre n’est spécifié, la fonction renvoie des lignes (jusqu’à RESULT_LIMIT) pour les dernières exécutions de politiques dans l’ordre décroissant par END_TIME.
RESULT_LIMIT => integerNombre maximum de lignes renvoyées par la fonction.
Plage : de
1à1000Par défaut :
1000.
Renvoie¶
La fonction renvoie les enregistrements d’historique d’exécution pour les politiques de cycle de vie du stockage. Chaque enregistrement contient des informations sur l’exécution de la politique, notamment le nom de la politique, la table associée, l’état d’exécution, les heures de début et de fin et les résultats de l’exécution.
Pour une description détaillée des colonnes, voir Sortie.
Sortie¶
La fonction renvoie les colonnes suivantes :
Nom de la colonne |
Type de données |
Description |
|---|---|---|
POLICY_DB |
VARCHAR |
Nom de la base de données contenant la politique. |
POLICY_SCHEMA |
VARCHAR |
Nom du schéma contenant la politique. |
POLICY_NAME |
VARCHAR |
Nom de la politique. |
REF_ENTITY_DB |
VARCHAR |
Nom de la base de données contenant l’objet auquel la politique est associée. |
REF_ENTITY_SCHEMA |
VARCHAR |
Nom du schéma contenant l’objet auquel la politique est associée. |
REF_ENTITY_NAME |
VARCHAR |
Nom de l’objet auquel la politique est associée. |
REF_ENTITY_DOMAIN |
VARCHAR |
Domaine (type) de l’objet auquel la politique est associée ; par exemple, |
STATE |
VARCHAR |
L’état d’exécution de la politique : |
START_TIME |
TIMESTAMP_LTZ |
Horodatage le plus ancien du moment où l’une des tâches de l’exécution de la politique a démarré. |
END_TIME |
TIMESTAMP_LTZ |
Horodatage le plus récent du moment où l’une des tâches de la politique s’est achevée. |
EXECUTION_RESULT |
VARIANT |
Objet JSON contenant les résultats des tâches exécutées pendant l’exécution de la politique. Pour plus d’informations, voir Champs EXECUTION_RESULT. |
POLICY_BODY |
VARCHAR |
Le corps de la politique de cycle de vie du stockage. |
Champs EXECUTION_RESULT¶
La colonne EXECUTION_RESULT est un objet JSON qui inclut des objets imbriqués pour chaque type de tâche dans l’exécution de la politique :
EXPIRE: Contient les résultats des opérations d’expiration (suppression permanente de lignes).ARCHIVE: Contient les résultats des opérations d’archivage (déplacement de lignes vers le stockage d’archivage).EXPIRE_ARCHIVE: Contient les résultats des opérations d’expiration (suppression permanente de lignes du stockage d’archive).
Chaque objet imbriqué peut contenir les champs suivants, où des champs spécifiques s’appliquent à des types de tâches spécifiques :
Nom du champ |
Description |
|---|---|
START_TIME |
Horodatage de début des tâches individuelles. |
END_TIME |
Horodatage de fin des tâches individuelles |
STATE |
Statut de la tâche individuelle : |
ROWS_EXPIRED |
(tâche EXPIRE uniquement) Le nombre de lignes définitivement supprimées du stockage actif. |
ROWS_ARCHIVED |
(tâche ARCHIVE uniquement) Le nombre de lignes archivées dans le stockage. |
ROWS_EXPIRED_FROM_ARCHIVE |
(tâche EXPIRE_ARCHIVE uniquement) Le nombre de lignes définitivement supprimées du stockage d’archives. |
ERROR_MESSAGE_CODE |
Le code identifiant le type d’erreur rencontrée lors de l’exécution de la tâche. |
ERROR_MESSAGE |
Un message d’erreur détaillé. |
Exemple de corps EXECUTION_RESULT :
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
}
}
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir au moins l’un des privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
|---|---|---|
APPLY STORAGE LIFECYCLE POLICY |
Global |
Si le rôle qui appelle la fonction dispose de ce privilège, Snowflake renvoie toutes les exécutions de politiques liées à toutes les politiques et leurs tables associées dans le compte Snowflake. |
APPLY |
Politique de cycle de vie du stockage |
Pour voir les exécutions d’une politique, un rôle doit également disposer du privilège OWNERSHIP sur la ou les tables associées à la politique. Ce privilège n’est pas requis si un rôle dispose du privilège APPLY STORAGE LIFECYCLE POLICY global. |
OWNERSHIP |
Table |
Pour voir les exécutions d’une politique, un rôle doit également disposer du privilège APPLY sur la politique associée à la table. Ce privilège n’est pas requis si un rôle dispose du privilège APPLY STORAGE LIFECYCLE POLICY global. |
Notes sur l’utilisation¶
Les résultats sont renvoyés en fonction des privilèges accordés au rôle qui exécute la requête :
Si le rôle possède le privilège APPLY STORAGE LIFECYCLE POLICY global, Snowflake renvoie toutes les exécutions de politiques liées aux associations de politiques et de tables dans le compte.
Si le rôle dispose du privilège APPLY sur une politique de cycle de vie de stockage spécifique, Snowflake renvoie les exécutions pour cette politique uniquement pour les objets qui appartiennent au rôle qui appelle la fonction.
Si le rôle dispose du privilège APPLY ou du privilège OWNERSHIP sur la politique, mais ne dispose pas du privilège OWNERSHIP sur la table à laquelle la politique est associée, Snowflake n’affiche pas les exécutions de la politique dans les résultats.
Si le rôle ne dispose pas de privilèges de politique, mais dispose du privilège OWNERSHIP sur la table à laquelle une politique est associée, Snowflake renvoie un message d’erreur et ne renvoie aucune exécution de politique.
Exemples¶
Spécifiez les arguments REF_ENTITY_NAME et REF_ENTITY_DOMAIN pour récupérer l’historique de la politique de cycle de vie du stockage pour une table nommée t1 :
SELECT * FROM
TABLE (
INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY(
REF_ENTITY_NAME => 'my_db.my_schema.t1',
REF_ENTITY_DOMAIN => 'Table'
)
);
Récupérez l’historique des politiques de cycle de vie du stockage pour chaque table associée à la politique nommée slp et limitez les résultats à 100 lignes :
SELECT * FROM
TABLE(
INFORMATION_SCHEMA.STORAGE_LIFECYCLE_POLICY_HISTORY(
POLICY_NAME => 'my_db.my_schema.slp',
RESULT_LIMIT => 100
)
);
Récupérez les 100 exécutions les plus récentes d’une politique spécifiée, planifiées au cours de la dernière heure :
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
)
);
Récupérez l’historique d’exécution des politiques pour une table donnée dans un intervalle de temps de 30 minutes :
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')
)
);