- Catégories :
Commandes DML - Déchargement des données
GET¶
Télécharge les fichiers de données de l’une des zones de préparation suivantes de Snowflake vers un répertoire/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.
En principe, cette commande est exécutée après avoir utilisé la commande COPY INTO <emplacement> pour décharger les données d’une table dans une zone de préparation Snowflake.
Note
GET ne prend pas en charge le 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 le service Cloud.
Les clients Snowflake suivants ne prennent pas en charge GET :
Pilote Go Snowflake
Pilote .NET
Pilote Node.js
Le pilote ODBC prend en charge GET avec les comptes Snowflake hébergés sur les plateformes 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).
Syntaxe¶
GET internalStage file://<path_to_file>/<filename>
[ 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 :
@[espace_noms.]nom_zone_de_préparation_interne[/chemin]
Les fichiers sont téléchargés à partir de la zone de préparation interne nommée spécifiée.
@[espace_noms.]%nom_table[/chemin]
Les fichiers sont téléchargés à partir de la zone de préparation de la table spécifiée.
@~[/chemin]
Les fichiers sont téléchargés à partir de la 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 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.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. Si unchemin
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.
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"'
pour une zone de préparation nommée"my stage"
).file://chemin_fichier
Spécifie l’URI de(s) fichier(s) de données téléchargé(s) sur la machine cliente, où
chemin_fichier
est le chemin du répertoire local dans lequel les fichiers sont téléchargés. Si vous téléchargez les fichiers dans le répertoire racine (ou sous-répertoire) de la machine cliente :- Linux/Mac
Vous devez inclure la barre oblique initiale dans le chemin (par ex.
file:///tmp/load
).- Windows
Vous devez inclure le lecteur et la barre oblique inverse dans le chemin (par ex.
file://C:\temp\load
).
L’URI peut être délimitée par des guillemets simples, ce qui permet l’insertion de caractères spéciaux, y compris des espaces, dans les noms de répertoire et de fichier ; cependant, le séparateur de lecteur et de chemin est une barre oblique (
/
) pour tous les systèmes d’exploitation pris en charge (par exemple'file://C:/temp/load data'
pour un chemin dans Windows contenant un répertoire nomméload data
).
Paramètres facultatifs¶
PARALLEL = entier
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 = 'motif_regex'
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
chemin
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¶
La commande ne peut pas être exécutée à partir de la page Worksheets
de l’interface 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/; ------------+--------+------------+------------+---------+ file | size | status | encryption | message | ------------+--------+------------+------------+---------+ mydata.csv | 1347 | DOWNLOADED | DECRYPTED | | ------------+--------+------------+------------+---------+
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/; ---------------------------+---------+------------+------------+---------+ file | size | status | encryption | message | ---------------------------+---------+------------+------------+---------+ myfiles/orders_001.csv.gz | 1126625 | DOWNLOADED | DECRYPTED | | myfiles/orders_101.csv.gz | 5214 | DOWNLOADED | DECRYPTED | | ----------------------------+--------+------------+------------+---------+