- Catégories :
Fonctions système (Informations système)
SYSTEM$EXTERNAL_TABLE_PIPE_STATUS¶
Récupère une représentation JSON du statut actuel d’actualisation de l’objet canal interne (masqué) associé à une table externe.
L’actualisation automatique des métadonnées d’une table externe repose en interne sur Snowpipe, qui reçoit des notifications d’événements lorsque des changements se produisent dans le stockage Cloud surveillé. Pour plus d’informations, voir Introduction aux tables externes.
Syntaxe¶
SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )
Arguments¶
nom_table_externe
Table externe pour laquelle vous voulez récupérer le statut actuel d’actualisation automatique.
Notes sur l’utilisation¶
Cette fonction renvoie uniquement des résultats pour le propriétaire de la table externe (c’est-à-dire le rôle qui possède le privilège OWNERSHIP sur la table externe).
nom_table_externe
est une chaîne, elle doit donc être placée entre guillemets simples :Notez que le nom complet doit être placé entre guillemets simples, y compris la base de données et le schéma (si le nom est complètement qualifié), c’est-à-dire
'<bd>.<schéma>.<nom_table_externe>'
.Si le nom de la table externe est sensible à la casse ou inclut des caractères spéciaux ou des espaces, des guillemets doubles sont nécessaires pour traiter la casse/les caractères. Les guillemets doubles doivent être placés entre guillemets simples, c’est-à-dire
'"<nom_canal>"'
.
Sortie¶
La fonction renvoie un objet JSON contenant les paires nom/valeur suivantes (si applicable au statut actuel du canal) :
{« executionState »: »<valeur> », »oldestFileTimestamp »:<valeur>, »pendingFileCount »:<valeur>, »notificationChannelName »: »<valeur> », »numOutstandingMessagesOnChannel »:<valeur>, »lastReceivedMessageTimestamp »: »<valeur> », »lastForwardedMessageTimestamp »: »<valeur> », »error »:<valeur>, »fault »:<valeur>}
Où :
executionState
État d’exécution actuel du canal. La valeur peut être l’une des suivantes :
RUNNING
(c’est-à-dire que tout est normal ; Snowflake peut ou non traiter activement les fichiers de ce canal)
STOPPED_FEATURE_DISABLED
STOPPED_STAGE_DROPPED
STOPPED_FILE_FORMAT_DROPPED
STOPPED_NOTIFICATION_INTEGRATION_DROPPED
STOPPED_MISSING_PIPE
STOPPED_MISSING_TABLE
(la table cible définie dans la définition du canal a été détruite)
STALLED_COMPILATION_ERROR
STALLED_INITIALIZATION_ERROR
STALLED_EXECUTION_ERROR
STALLED_INTERNAL_ERROR
PAUSED
PAUSED_BY_SNOWFLAKE_ADMIN
PAUSED_BY_ACCOUNT_ADMIN
oldestFileTimestamp
Le plus ancien horodatage parmi les fichiers de données en file d’attente (le cas échéant), l’horodatage étant défini lors de l’ajout du fichier à la file d’attente.
pendingFileCount
Nombre de fichiers en cours de traitement par le canal. Si le canal est mis en pause, cette valeur diminue à mesure que tous les fichiers en file d’attente avant que le canal a été mis en pause sont traités. Lorsque cette valeur est
0
, aucun fichier n’est en file d’attente pour ce canal ou le canal est effectivement mis en pause.notificationChannelName
File d’attente de stockage Amazon SQS ou Microsoft Azure associée au canal.
numOutstandingMessagesOnChannel
Nombre de messages dans la file d’attente qui ont été mis en file d’attente mais pas encore reçus.
lastReceivedMessageTimestamp
Horodatage du dernier message reçu de la file d’attente.
lastForwardedMessageTimestamp
Horodatage du dernier message d’événement qui a été transmis au canal.
error
Message d’erreur généré lors de la dernière compilation du canal en vue de son exécution (le cas échéant).
fault
La plus récente erreur interne liée au processus Snowflake (le cas échéant). Utilisé principalement par Snowflake à des fins de débogage.
Exemples¶
Récupérer le statut d’actualisation automatique pour une table externe avec un nom non sensible à la casse :
SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema.exttable'); +---------------------------------------------------------------+ | SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA.EXTTABLE') | |---------------------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------------------+
Récupérez le statut d’un canal avec un nom sensible à la casse :
SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema."extTable"'); +---------------------------------------------------------------+ | SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA."extTable"') | |---------------------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------------------+