Catégories :

Fonctions système (Informations système)

SYSTEM$GET_ICEBERG_TABLE_INFORMATION

Renvoie l’emplacement du fichier de métadonnées racine et le statut du dernier instantané d’une table Iceberg.

La fonction SYSTEM$GET_ICEBERG_TABLE_INFORMATION fonctionne différemment selon le type de table :

  • Pour une table Iceberg qui utilise Snowflake comme catalogue, l’appel de la fonction génère des métadonnées pour les opérations du langage de manipulation des données (Data Manipulation Language ou DML) ou d’autres mises à jour de table qui ont eu lieu depuis la dernière génération par Snowflake de métadonnées pour la table.

    S’il n’existe pas de mises à jour, la fonction renvoie l’emplacement du dernier fichier de métadonnées, mais ne génère pas de nouvelles métadonnées.

  • Pour une table Iceberg non gérée par Snowflake, la fonction renvoie des informations sur le dernier instantané actualisé.

Syntaxe

SYSTEM$GET_ICEBERG_TABLE_INFORMATION('<iceberg_table_name>')
Copy

Arguments

'iceberg_table_name'

Nom de la table Iceberg pour laquelle vous souhaitez récupérer des informations. Le nom de table est une chaîne ; elle doit donc être placée entre guillemets simples.

  • Si le nom de la table Iceberg est complet (« entièrement qualifié »), par exemple, '<db>.<schema>.<iceberg_table_name>', le nom tout entier doit être placé entre guillemets simples, y compris la base de données et le schéma.

  • Si le nom de la table Iceberg 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, par exemple, '"<case_sensitive_iceberg_table_name>"'.

Renvoie

La fonction renvoie un objet JSON contenant les paires nom/valeur suivantes :

valeur {« metadataLocation »: »<valeur > », »status »: »<> »}

Où :

metadataLocation

Emplacement du fichier de métadonnées racine mis à jour ou récupéré par la fonction.

status

Statut de l’opération. Ce champ renvoie un message de réussite ou d’échec.

Notes sur l’utilisation

L’appel de cette fonction nécessite un rôle disposant du privilège OWNERSHIP sur la table Iceberg.

Exemples

Générer un instantané de la table Iceberg it1 dans le schéma db1.schema1 :

SELECT SYSTEM$GET_ICEBERG_TABLE_INFORMATION('db1.schema1.it1');
Copy

Sortie :

+-----------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ICEBERG_TABLE_INFORMATION('DB1.SCHEMA1.IT1')                                                   |
|-----------------------------------------------------------------------------------------------------------|
| {"metadataLocation":"s3://mybucket/metadata/v1.metadata.json","status":"success"}                         |
+-----------------------------------------------------------------------------------------------------------+