- 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.invalidExecutionStateReasonMessage d’erreur associé à un état d’exécution
STALLEDouSTOPPED.pendingSnapshotCountNombre d’instantanés mis en file d’attente pour une actualisation automatique.
oldestSnapshotTimeHorodatage 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.
currentSnapshotIdID de l’instantané actuel suivi par Snowflake. Cette valeur représente l’instantané auquel correspondent les données de la table actuelle.
currentSnapshotSummaryRésumé de l’instantané Iceberg du fichier
metadata.json. NULL s’il n’est pas présent dans le fichier de métadonnées.lastSnapshotTimeHorodatage 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.
lastUpdatedTimeHorodatage indiquant quand Snowflake a traité correctement l’instantané actuel. La différence entre cette valeur et
lastSnapshotTimeindique 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_SECONDSpour l’intégration du catalogue associé à la table.currentMetadataFileLe chemin complet vers le fichier de métadonnées actuel.
currentSchemaIdID 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');