<service_name>!SPCS_GET_LOGS¶
Renvoie les journaux que Snowflake a collectés depuis les conteneurs du service spécifié. Pour plus d’informations, voir Accéder aux journaux des conteneurs.
Note
La fonction n’est prise en charge que pour les services et les tâches créés dans la version 9.20 ou ultérieure.
- Voir aussi :
Syntaxe¶
<service_name>!SPCS_GET_LOGS(
[ START_TIME => <constant_expr> ],
[ END_TIME => <constant_expr> ] )
Arguments¶
START_TIME => constant_expr
Heure de début (au format TIMESTAMP_LTZ) pour la plage de temps à partir de laquelle récupérer les journaux. Pour les fonctions disponibles pour créer des données, des heures et des horodatages, voir Fonctions de date et d’heure.
Si
START_TIME
n’est pas spécifiée, la valeur par défaut est 1 jour auparavant.END_TIME => constant_expr
Heure de fin (au format TIMESTAMP_LTZ) pour la plage de temps à partir de laquelle récupérer les journaux.
Si END_TIME n’est pas spécifié, la valeur par défaut est l’horodatage actuel.
Sortie¶
Chaque ligne de la sortie correspond à un événement enregistré dans la table des événements. Chaque ligne que votre service renvoie à stdout
ou stderr
donne lieu à une ligne dans la sortie.
La fonction renvoie les colonnes suivantes :
Colonne |
Type de données |
Description |
---|---|---|
|
TIMESTAMP_NTZ |
Horodatage temps universel coordonné (UTC) du moment où Snowflake a collecté le journal du conteneur. Cette valeur correspond à la colonne TIMESTAMP dans la table des événements. |
|
NUMBER |
ID de l’instance de service associé aux tâches. Cette valeur correspond au champ de la colonne RESOURCE_ATTRIBUTES dans la table des événements. |
|
VARCHAR |
Nom du conteneur. Cette valeur correspond au champ |
|
VARCHAR |
Journal Snowflake collecté à partir du conteneur de votre application. Cette valeur correspond à la colonne VALUE dans la table des événements. |
|
OBJECT |
Ajout d’informations sur le journal. Par exemple, le flux de journal (stderr ou stdout) à partir duquel le journal a été collecté. Cette valeur correspond à la colonne RECORD_ATTRIBUTES dans la table des événements. |
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :
Privilège |
Objet |
Remarques |
---|---|---|
OWNERSHIP |
Service |
Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Il peut s’écouler quelques minutes avant que les journaux de vos conteneurs n’apparaissent dans la sortie.
Exemples¶
Récupérer les journaux que Snowflake a collectés depuis les conteneurs de la tâche my_test_job
au cours de la journée écoulée.
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS());
Exemple de sortie :
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
| TIMESTAMP | INSTANCE_ID | CONTAINER_NAME | LOG | RECORD_ATTRIBUTES |
|-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------|
| 2025-06-26 00:23:40.281 | 0 | main | job-tutorial - INFO - Job finished | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Executing query [select current_time() as time,'hello'] and writing result to table [results] | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Connection succeeded. Current session context: database="TUTORIAL_DB", schema="DATA_SCHEMA", warehouse="TUTORIAL_WAREHOUSE", role="TEST_ROLE" | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:36.852 | 0 | main | job-tutorial - INFO - Job started | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
Récupérer les journaux que Snowflake a collectés depuis les conteneurs de la tâche my_test_job
au cours des trois derniers jours.
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS(START_TIME => DATEADD('day', -3, CURRENT_TIMESTAMP())));
Récupérer les journaux pour l’instance 0
de la tâche my_test_job
dans le conteneur nommé main
. Comme l’illustre l’exemple suivant, si vous omettez les arguments START_TIME et END_TIME, la fonction récupère les journaux de la journée passée :
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';