- Catégories :
Fonctions système (Informations système)
SYSTEM$AUTO_REFRESH_STATUS¶
Renvoie le statut d’actualisation automatique pour une table Iceberg gérée en externe.
Note
Pour renvoyer ce statut d’actualisation pour toutes les tables Apache Iceberg™ applicables gérées en externe pour lesquelles vous disposez de privilèges d’accès, exécutez la commande SHOW ICEBERG TABLES et consultez la colonne auto_refresh_status
dans la sortie.
Syntaxe¶
SYSTEM$AUTO_REFRESH_STATUS('<table_name>')
Arguments¶
'table_name'
Nom de la table Iceberg dont vous souhaitez récupérer le statut d’actualisation automatisée actuel.
Si vous utilisez le nom complet, mettez-le entre guillemets simples, y compris la base de données et le schéma. Si le nom de la table est sensible à la casse ou inclut des caractères spéciaux ou des espaces, vous devez utiliser des guillemets doubles. Placez les guillemets doubles entre les guillemets simples, par exemple,
'"Table_Name"'
.
Renvoie¶
La fonction renvoie un objet JSON contenant les paires nom/valeur suivantes :
{
"executionState":"<value>",
"invalidExecutionStateReason":"<value>",
"pendingSnapshotCount":"<value>",
"oldestSnapshotTime":"<value>",
"currentSnapshotId":"<value>",
"currentSnapshotSummary":"<value>",
"lastSnapshotTime":"<value>",
"lastUpdatedTime":"<value>",
"currentMetadataFile":"<value>",
"currentSchemaId":"<value>"
}
Où :
executionState
État d’exécution actuel du canal que Snowflake utilise pour automatiser les actualisations des métadonnées de la table.
Valeurs :
RUNNING
: L’actualisation automatisée s’exécute comme prévu. Ce statut n’indique pas si Snowflake traite activement les messages d’événement pour le canal.
STALLED
: L’actualisation automatisée a rencontré une erreur et tente de la réparer.
STOPPED
: L’actualisation automatisée a rencontré une erreur irrécupérable ; elle restera arrêtée jusqu’à ce que vous interveniez. Pour plus d’informations, voir Reprise en cas d’erreur.invalidExecutionStateReason
Message d’erreur associé à un état d’exécution
STALLED
ouSTOPPED
.pendingSnapshotCount
Nombre d’instantanés mis en file d’attente pour une actualisation automatique.
oldestSnapshotTime
Horodatage le plus ancien parmi les instantanés en file d’attente. Snowflake définit l’horodatage d’un instantané lorsque l’instantané est ajouté à la file d’attente.
currentSnapshotId
ID de l’instantané actuel suivi par Snowflake. Cette valeur représente l’instantané auquel correspondent les données de la table actuelle.
currentSnapshotSummary
Résumé de l’instantané Iceberg du fichier
metadata.json
. NULL s’il n’est pas présent dans le fichier de métadonnées.lastSnapshotTime
Horodatage de création de l’instantané actuel selon les métadonnées Iceberg. Cet horodatage correspond au moment où l’instantané actuel a été généré dans le catalogue externe.
lastUpdatedTime
Horodatage indiquant quand Snowflake a traité correctement l’instantané actuel. La différence entre cette valeur et
lastSnapshotTime
indique la latence entre le moment où les instantanés sont créés dans le catalogue externe et le moment où Snowflake parvient à actualiser les métadonnées de la table.Pour diminuer la latence, ajustez le paramètre
REFRESH_INTERVAL_SECONDS
pour l’intégration du catalogue associé à la table.currentMetadataFile
Le chemin complet vers le fichier de métadonnées actuel.
currentSchemaId
ID du schéma actuel.
Notes sur l’utilisation¶
L’appel de cette fonction nécessite un rôle disposant du privilège OWNERSHIP sur la table Iceberg.
Pour les tables de base Delta, notez ce qui suit :
Dans le contexte de cette fonction et de l’actualisation automatisée dans Snowflake, le terme « instantané » fait référence à une validation Delta.
La fonction ne renvoie pas de valeur pour
lastSnapshotTime
.
Exemples¶
Récupérer le statut d’actualisation automatisée de la table my_iceberg_table
dans le schéma db1.schema1
:
SELECT SYSTEM$AUTO_REFRESH_STATUS('db1.schema1.my_iceberg_table');