Option 1: Load data with the Snowpipe REST API¶
Ce chapitre décrit comment appeler les points de terminaison REST publics pour charger les données et récupérer les rapports d’historique de chargement. Les instructions supposent que vous avez suivi les instructions d’installation de la section Data loading preparation using the Snowpipe REST API.
Load data¶
Le chargement s’effectue en deux étapes :
- Étape 1:
Préparez vos fichiers de données :
Zone de préparation interne : utilisez la commande PUT pour préparer vos fichiers.
Zone de préparation externe : utilisez les outils du client fournis par le fournisseur de Cloud pour copier vos fichiers vers l’emplacement de la zone de préparation (Amazon S3, Google Cloud Storage ou Microsoft Azure).
- Étape 2:
Soumettez une requête au point de terminaison insertFiles REST pour charger les fichiers de données mis en zone de préparation.
Pour plus de praticité, des exemples de programmes Java et Python illustrant comment soumettre un point de terminaison REST sont fournis dans ce chapitre.
Exemple de programme pour le SDK Java¶
Cet exemple utilise les Crypto APIs de Bouncy Castle. Afin de compiler et d’exécuter cet exemple, vous devez inclure les fichiers JAR suivants dans votre classpath :
le fichier JAR du fournisseur (
bcprov-jdkversions.jar)le fichier PKIX / CMS / EAC / PKCS / OCSP / TSP / OPENSSL JAR (
bcpkix-jdkversions.jar)
où versions indique les versions du JDK que le fichier JAR prend en charge.
Avant de compiler l’exemple de code, remplacez les caractères de remplacement suivants :
PRIVATE_KEY_FILE = "/<chemin>/rsa_key.p8"Spécifiez le chemin local au fichier de clé privée que vous avez créé dans Use key pair authentication & key rotation (dans Data loading preparation using the Snowpipe REST API).
return "<phrasesecrète_clé_privée>"dansgetPrivateKeyPassphrase()Si vous avez généré une clé chiffrée, implémentez la méthode
getPrivateKeyPassphrase()pour renvoyer la phrase secrète afin de déchiffrer cette clé.host = "<identificateur_de_compte>.snowflakecomputing.com"Spécifiez vos informations d’hôte sous la forme d’une URL.
Le format préféré de l’identificateur du compte est le suivant :
organization_name-account_nameNoms de votre organisation et de votre compte Snowflake. Pour plus de détails, voir Format 1 (recommandé) : nom du compte dans votre organisation.
Vous pouvez également indiquer votre localisateur de compte, ainsi que la région et la plate-forme Cloud où le compte est hébergé, si nécessaire. Pour plus de détails, voir Format 2 : localisateur de compte dans une région.
user = "<nom_connexion_utilisateur>"Précisez votre nom d’utilisateur Snowflake.
pipe = "<nom_bd>.<nom_schéma>.<nom_canal>"Spécifiez le nom complet du canal à utiliser pour charger les données.
files.add("<path>/<filename>", <file_size_in_bytes>)Indiquez le chemin de vos fichiers à charger dans la liste des objets de fichiers.
Spécifiez éventuellement la taille de chaque fichier, en octets, afin d’éviter tout retard lorsque Snowpipe calcule les opérations nécessaires au chargement des données.
Le chemin que vous spécifiez doit être relatif à la zone de préparation dans laquelle les fichiers sont situés. Incluez le nom complet de chaque fichier, y compris son extension. Par exemple, un fichier CSV compressé en gzip peut porter l’extension suivante
.csv.gz.
Exemple de programme pour le SDK Python¶
Avant d’exécuter l’exemple de code, remplacez les caractères de remplacement suivants :
<chemin_clé_privée>Spécifiez le chemin local au fichier de clé privée que vous avez créé dans Use key pair authentication & key rotation (dans Data loading preparation using the Snowpipe REST API).
return "<phrasesecrète_clé_privée>"dansget_private_key_passphrase()Si vous avez généré une clé chiffrée, implémentez la fonction
get_private_key_passphrase()pour renvoyer la phrase secrète afin de déchiffrer cette clé.account='<identificateur_de_compte>'Indiquez l’identificateur unique de votre compte (fourni par Snowflake). Voir la description de
host.host='<identificateur_de_compte>.snowflakecomputing.com'Indiquez le nom d’hôte unique de votre compte Snowflake.
Le format préféré de l’identificateur du compte est le suivant :
organization_name-account_nameNoms de votre organisation et de votre compte Snowflake. Pour plus de détails, voir Format 1 (recommandé) : nom du compte dans votre organisation.
Vous pouvez également indiquer votre localisateur de compte, ainsi que la région et la plate-forme Cloud où le compte est hébergé, si nécessaire. Pour plus de détails, voir Format 2 : localisateur de compte dans une région.
user='<user_login_name>'Précisez votre nom d’utilisateur Snowflake.
pipe='<db_name>.<schema_name>.<pipe_name>'Spécifiez le nom complet du canal à utiliser pour charger les données.
file_list=['<path>/<filename>', '<path>/<filename>']|staged_file_list=[StagedFile('<path>/<filename>', <file_size_in_bytes>), StagedFile('<path>/<filename>', <file_size_in_bytes>)]Indiquez le chemin de vos fichiers à charger dans la liste des objets de fichiers.
Le chemin que vous spécifiez doit être relatif à la zone de préparation dans laquelle les fichiers sont situés. Incluez le nom complet de chaque fichier, y compris son extension. Par exemple, un fichier CSV compressé en gzip peut porter l’extension suivante
.csv.gz.Spécifiez éventuellement la taille de chaque fichier, en octets, afin d’éviter tout retard lorsque Snowpipe calcule les opérations nécessaires au chargement des données.
View the load history¶
Snowflake fournit des points de terminaison REST et une fonction de table Schéma d’information de Snowflake pour visualiser votre historique de chargement :
Points de terminaison REST :
Fonction de table de schéma d’information :
Vue d’utilisation du compte :
Notez que l’interrogation de la fonction de table Information Schema ou de la vue Account Usage, contrairement à l’appel des points de terminaison REST, nécessite un entrepôt en cours d’exécution.
Delete staged files¶
Supprimez les fichiers en zone de préparation après avoir chargé avec succès les données et lorsque vous n’avez plus besoin des fichiers. Pour obtenir des instructions, voir Suppression de fichiers en zone de préparation après le chargement des données par Snowpipe.