LIST¶
Renvoie une liste de fichiers de l’une des fonctionnalités de stockage Snowflake suivantes :
Zone de préparation
Interne nommée
Externe nommée
Pour une table spécifiée
Pour l’utilisateur actuel
LIST peut être abrégé en LS.
- Voir aussi :
REMOVE, PUT, COPY INTO <table>, COPY INTO <emplacement>, GET
Syntaxe¶
La syntaxe diffère selon que vous répertoriez les fichiers dans une zone de préparation ou dans un clone de référentiel Git.
Pour une zone de préparation¶
LIST { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]
Où :
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]externalStage ::= @[<namespace>.]<ext_stage_name>[/<path>]
Pour un clone de référentiel Git¶
LIST repositoryClone [ PATTERN = '<regex_pattern>' ]
Où :
repositoryClone ::= @[<namespace>.]<repository_clone>/<path>
Paramètres requis¶
Pour une zone de préparation¶
internalStage | externalStageIndique l’emplacement où les fichiers de données sont stockés en zone de préparation :
@[namespace.]int_stage_name[/path]Les fichiers se trouvent dans la zone de préparation interne nommée spécifiée.
@[namespace.]ext_stage_name[/path]Les fichiers se trouvent dans la zone de préparation externe nommée spécifiée.
@[namespace.]%table_name[/path]Les fichiers sont mis en zone de préparation pour la table spécifiée.
@~[/path]Les fichiers sont mis en zone de préparation pour l’utilisateur actuel.
Où :
namespaceest la base de données et/ou le schéma dans lequel réside l’échelon 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.pathest 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.
Note
Si le nom ou le chemin de la zone de préparation comprend des espaces ou des caractères spéciaux, il doit être placé entre guillemets simples (par exemple,
'@"my stage"'pour une zone de préparation nommée"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.
Pour un clone de référentiel Git¶
repositoryCloneSpécifie le nom du clone de référentiel et la branche, la balise ou la validation pour laquelle répertorier les fichiers.
@[namespace.]repository_clone/pathQuand les fichiers d’un clone de référentiel Git sont répertoriés, le
pathest obligatoire et doit commencer par l’un des éléments suivants :branches/branch_nameRépertorier les fichiers de la branche spécifiée.
tags/tag_nameRépertorier les fichiers de la balise spécifiée.
commits/commit_hashRépertorier les fichiers de la validation spécifiée par le hachage de validation.
Note
Si le nom ou le chemin du clone du référentiel comprend des espaces ou des caractères spéciaux, il doit être placé entre guillemets simples (exemple :
'@"my repository"'pour un référentiel nommé"my repository").
Paramètres facultatifs¶
PATTERN = 'regex_pattern'Spécifie un modèle d’expression régulière pour filtrer les fichiers de la sortie. La commande répertorie tous les fichiers dans le
pathspécifié et applique le modèle d’expression régulière sur chacun des fichiers trouvés.
Notes sur l’utilisation¶
Pour exécuter cette commande avec une zone de préparation externe qui utilise une intégration de stockage, vous devez utiliser un rôle qui possède ou hérite du privilège USAGE sur l’intégration de stockage.
Pour plus d’informations, voir Privilèges de zone de préparation.
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.
PATTERN prend en charge la syntaxe de la classe de modèle Java.
Sortie¶
La commande renvoie les colonnes dans les tables suivantes. Les valeurs des colonnes diffèrent selon que vous utilisez LIST avec une zone de préparation ou un clone de référentiel Git.
Pour une zone de préparation¶
Colonne |
Type de données |
Description |
|---|---|---|
nom |
VARCHAR |
Nom du fichier préparé |
taille |
NUMBER |
Taille du fichier compressé (en octets) |
md5 |
VARCHAR |
La colonne MD5 stocke un hachage MD5 du contenu du fichier de données en zone de préparation. Pour les zones de préparation internes avec le chiffrement par défaut (SNOWFLAKE_FULL), lors du chargement, le fichier source est chiffré à l’aide d’une clé aléatoire, et le résumé MD5 qui en résulte sera toujours différent du fichier local d’origine. 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 de fichier. Pour les zones de préparation Google Cloud qui utilisent une clé de chiffrement gérée par le client (CMEK), md5 devrait être NULL. Pour plus d’informations, voir clés de chiffrement gérées par le client. |
sha1 |
VARCHAR |
Non utilisé |
dernière_modification |
VARCHAR |
Horodatage de la dernière mise à jour du fichier dans la zone de préparation |
Pour un clone de référentiel Git¶
Colonne |
Type de données |
Description |
|---|---|---|
nom |
VARCHAR |
Chemin d’accès complet au fichier avec extension |
taille |
NUMBER |
Taille du fichier compressé (en octets) |
md5 |
VARCHAR |
Non utilisé |
sha1 |
VARCHAR |
Un identificateur unique généré en appliquant l’algorithme de hachage SHA-1 vers au contenu du fichier. Il est utilisé par Git pour suivre et référencer la version exacte d’un fichier dans le référentiel, et peut être utilisé pour détecter les modifications dans le contenu du fichier. |
dernière_modification |
VARCHAR |
Horodatage de la validation associée aux fichiers répertoriés. Cela n’indique pas nécessairement la date de la dernière modification du contenu du fichier. |
Exemples¶
Pour une zone de préparation¶
É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 @~;
Pour un clone de référentiel Git¶
Pour des exemples, voir Voir une liste des fichiers du référentiel.