GET¶
Télécharge les fichiers de données de l’un des types de zone de préparation interne suivants dans un répertoire ou un dossier local sur une machine cliente :
Zone de préparation interne nommée.
Zone de préparation pour une table spécifiée.
Zone de préparation interne pour l’utilisateur actuel.
Vous pouvez utiliser cette commande pour télécharger des fichiers de données après avoir déchargé des données d’une table sur une zone de préparation Snowflake à l’aide de la commande COPY INTO <emplacement>.
- Voir aussi :
LIST , PUT , REMOVE , COPY FILES
Syntaxe¶
GET internalStage file://<local_directory_path>
[ PARALLEL = <integer> ]
[ PATTERN = '<regex_pattern>'' ]
Où :
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]
Paramètres requis¶
internalStage
Indique l’emplacement dans Snowflake à partir duquel vous pouvez télécharger les fichiers :
@[namespace.]int_stage_name[/path]
Les fichiers sont téléchargés à partir de la zone de préparation interne nommée spécifiée.
@[namespace.]%table_name[/path]
Les fichiers sont téléchargés à partir de la zone de préparation de la table spécifiée.
@~[/path]
Les fichiers sont téléchargés à partir de la zone de préparation pour l’utilisateur actuel.
Où :
namespace
est la base de données et/ou le schéma dans lequel réside l’échelon ou la table interne 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.path
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. Sipath
est spécifié, mais qu’aucun fichier n’est explicitement nommé dans le chemin, tous les fichiers de données du chemin sont téléchargés.
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"
).file://local_directory_path
Spécifie le chemin d’accès au répertoire local sur la machine client où les fichiers sont téléchargés :
- Linux/macOS:
Vous devez inclure la barre oblique initiale dans le chemin (par ex.
file:///tmp/load
).Si le chemin d’accès au répertoire contient des caractères spéciaux, l’URI du fichier entier doit être placé entre guillemets simples.
- Windows:
Vous devez inclure le lecteur et la barre oblique inverse dans le chemin (par ex.
file://C:tempload
).Si le chemin d’accès au répertoire contient des caractères spéciaux, l’URI du fichier entier doit être placé entre guillemets simples. Notez que le séparateur de lecteur et de chemin d’accès est une barre oblique (
/
) dans des URIs délimitées (par exemple,'file://C:/temp/load data'
pour un chemin d’accès sous Windows qui inclut un répertoire nomméload data
).
Note
La commande GET renvoie une erreur si vous spécifiez un nom de fichier dans le chemin, sauf si vous utilisez le pilote JDBC ou ODBC. Si vous spécifiez un nom de fichier lors de l’utilisation de l’un ou l’autre des pilotes, le pilote traite le nom de fichier comme faisant partie du chemin d’accès au répertoire et crée un sous-répertoire avec le nom de fichier spécifié.
Par exemple, si vous spécifiez
file:///tmp/load/file.csv
, le pilote JDBC ou ODBC crée un sous-répertoire nomméfile.csv/
sous le chemin/tmp/load/
. La commande GET télécharge ensuite les fichiers en zone de préparation dans ce nouveau sous-répertoire.
Paramètres facultatifs¶
PARALLEL = integer
Spécifie le nombre de threads à utiliser pour télécharger les fichiers. L’unité de granularité pour le téléchargement est un fichier.
Augmenter le nombre de threads peut améliorer les performances lors du téléchargement de fichiers volumineux.
Valeurs prises en charge : toute valeur entière de
1
(pas de parallélisme) à99
(utilisez 99 threads pour télécharger des fichiers).Par défaut :
10
PATTERN = 'regex_pattern'
Spécifie un modèle d’expression régulière pour filtrer les fichiers à télécharger. La commande répertorie tous les fichiers dans le
path
spécifié et applique le modèle d’expression régulière sur chacun des fichiers trouvés.Par défaut : aucune valeur (tous les fichiers de la zone de préparation spécifiée sont téléchargés)
Notes sur l’utilisation¶
GET ne prend pas en charge les actions suivantes :
Téléchargement de fichiers à partir de zones de préparation externes. Pour télécharger des fichiers à partir de zones de préparation externes, utilisez les utilitaires fournis par votre service Cloud.
Téléchargement de plusieurs fichiers avec des chemins de répertoires divergents. La commande ne préserve pas la structure des répertoires de la zone de préparation lors du transfert des fichiers vers votre machine cliente.
Par exemple, l’instruction GET suivante renvoie une erreur, car il est impossible de télécharger plusieurs fichiers nommés
tmp.parquet
qui se trouvent dans différents sous-répertoires de la zone de préparation.GET @my_int_stage my_target_path PATTERN = "tmp.parquet";
Le pilote ODBC prend en charge GET avec les comptes Snowflake hébergés sur les plates-formes suivantes :
Amazon Web Services (en utilisant le pilote ODBC version 2.17.5 et supérieure).
Google Cloud Platform (en utilisant le pilote ODBC version 2.21.5 et supérieure).
Microsoft Azure (en utilisant le pilote ODBC version 2.20.2 et supérieure).
La commande ne peut pas être exécutée à partir de la page Worksheets dans aucune des interfaces Web de Snowflake ; utilisez plutôt le client SnowSQL pour télécharger les fichiers de données, ou consultez la documentation du client Snowflake spécifique pour vérifier si cette commande est prise en charge.
La commande ne renomme pas les fichiers.
Les fichiers téléchargés sont automatiquement déchiffrés à l’aide de la même clé que celle utilisée pour chiffrer le fichier lorsqu’il a été téléchargé (en utilisant PUT) ou déchargé d’une table (en utilisant COPY INTO <emplacement>).
Exemples¶
Télécharger tous les fichiers de zone de préparation de la table mytable
dans le répertoire /tmp/data
local (dans un environnement Linux ou macOS) :
GET @%mytable file:///tmp/data/;
Télécharger les fichiers à partir du chemin myfiles
dans la zone de préparation pour l’utilisateur actuel dans le répertoire /tmp/data
local (dans un environnement Linux ou macOS) :
GET @~/myfiles file:///tmp/data/;