Catégories :

Commandes DML - Stockage de fichiers

LIST

Retourne une liste de fichiers qui ont été préparés (c.-à-d. téléchargés à partir d’un système de fichiers local ou déchargés d’une table) dans l’une des zones de préparation suivantes de Snowflake :

  • Zone de préparation interne nommée.

  • Zone de préparation externe nommée.

  • Zone de préparation pour une table spécifiée.

  • Zone de préparation pour l’utilisateur actuel.

LIST peut être abrégé en LS.

Voir aussi :

REMOVE

PUT , COPY INTO <table>

COPY INTO <emplacement> , GET

Syntaxe

LIST { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]

Où :

internalStage ::=
    @[<namespace>.]<int_stage_name>[/<path>]
  | @[<namespace>.]%<table_name>[/<path>]
  | @~[/<path>]
externalStage ::=
    @[<namespace>.]<ext_stage_name>[/<path>]

Paramètres requis

internalStage | externalStage

Indique l’emplacement où les fichiers de données sont stockés :

@[espace_noms.]nom_zone_de_préparation_interne[/chemin]

Les fichiers se trouvent dans la zone de préparation interne nommée spécifiée.

@[espace_noms.]nom_zone_de_préparation_externe[/chemin]

Les fichiers se trouvent dans la zone de préparation externe nommée spécifiée.

@[espace_noms.]%nom_table[/chemin]

Les fichiers sont préparés pour la table spécifiée.

@~[/chemin]

Les fichiers sont mis en zone de préparation pour l’utilisateur actuel.

Où :

  • espace_noms est la base de données et/ou le schéma dans lequel réside la zone de préparation ou la table nommée. Il est facultatif si une base de données et un schéma sont actuellement utilisés dans la session. Dans le cas contraire, il est nécessaire.

  • chemin est un chemin facultatif sensible à la casse pour les fichiers de l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne commune) qui limite l’accès à un ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

La chaîne peut être délimitée par des guillemets simples, ce qui permet d’insérer des caractères spéciaux, y compris des espaces, dans les noms de lieux (par exemple '@"my stage"').

Astuce

La spécification d’un chemin permet à la commande LIST d’avoir une portée, ce qui réduit potentiellement le temps nécessaire à l’exécution de la commande.

Paramètres facultatifs

PATTERN = 'motif_regex'

Spécifie un modèle d’expression régulière pour filtrer les fichiers de la sortie.

Notes sur l’utilisation

  • Contrairement aux zones de préparation nommées, les zones de préparation de table et d’utilisateur ne sont pas des objets de base de données de première classe, mais plutôt des zones de préparation implicites associées à la table/l’utilisateur. En tant que tels, ils n’ont pas de privilèges qui leur sont propres :

    • Vous pouvez toujours lister les fichiers dans votre zone de préparation utilisateur (c’est-à-dire qu’aucun privilège n’est requis).

    • Pour lister les fichiers dans une zone de préparation de table, vous devez utiliser un rôle qui a le privilège OWNERSHIP sur la table.

Sortie

La commande renvoie les colonnes suivantes :

Colonne

Description

nom

Nom du fichier préparé

taille

Taille du fichier compressé

md5

La colonne MD5 stocke un hachage MD5 du contenu du fichier de données mis en zone de préparation, qui peut être utilisé pour vérifier que le fichier a été mis en zone de préparation (transféré) correctement. Notez que les zones de préparation Amazon S3 signalent la valeur via le champ S3 eTag, qui ne correspond peut-être pas à un hachage MD5 du contenu du fichier.

dernière_modification

Horodatage de la dernière mise à jour du fichier dans la zone de préparation

Exemples

Énumérer tous les fichiers de la zone de préparation de la table mytable :

LIST @%mytable;

Énumérer tous les fichiers dans le chemin path1 de la zone de préparation nommée mystage :

LIST @mystage/path1;

Énumérer les fichiers qui correspondent à une expression régulière (c’est-à-dire tous les noms de fichiers contenant la chaîne data_0) dans la zone de préparation de la table mytable :

LIST @%mytable PATTERN='.*data_0.*';

Énumérer les fichiers dans le chemin /analysis/ de la zone de préparation my_csv_stage qui correspondent à une expression régulière (c’est-à-dire tous les noms de fichiers contenant la chaîne data_0) :

LIST @my_csv_stage/analysis/ PATTERN='.*data_0.*';

Utiliser la forme abrégée de la commande pour lister tous les fichiers de la zone de préparation pour l’utilisateur courant :

LS @~;