Chargement de données à partir de Cloud Storage : Amazon S3¶
Introduction¶
Ce tutoriel vous montre comment charger des données depuis le stockage cloud dans Snowflake en utilisant SQL. Vous utilisez un modèle de feuille de calcul dans Snowsight pour effectuer ces tâches. Vous pouvez choisir le fournisseur cloud que vous souhaitez utiliser : Amazon S3, Microsoft Azure ou Google Cloud Storage (GCS). La feuille de calcul contient des commandes SQL personnalisées pour la compatibilité avec chaque type de stockage.
Attention
L’exemple fourni dans ce tutoriel est spécifique à Amazon S3 et montre les commandes SQL qui fonctionnent pour charger des données à partir d’un compartiment S3.
Note
Snowflake facture un montant minimal pour le stockage sur disque utilisé pour les données d’exemple dans ce tutoriel. Ce tutoriel fournit des étapes pour supprimer la base de données et réduire le coût de stockage.
Snowflake nécessite un entrepôt virtuel pour charger les données et exécuter les requêtes. Un entrepôt virtuel en cours d’exécution consomme des crédits Snowflake. Dans ce tutoriel, vous utiliserez un compte d’essai de 30 jours, qui fournit des crédits gratuits, de sorte que vous n’aurez aucun coût à supporter.
Ce que vous apprendrez¶
Dans ce tutoriel, vous apprendrez à :
Utiliser un rôle qui a les privilèges nécessaires pour créer et utiliser les objets Snowflake requis par ce tutoriel.
Utiliser un entrepôt pour accéder aux ressources.
Créer une base de données et un schéma.
Créez une table.
Créer une intégration de stockage pour votre plateforme cloud.
Créer une zone de préparation pour l’intégration de votre stockage.
Charger des données dans la table à partir de la zone de préparation.
Interroger les données dans la table.
Conditions préalables¶
Le tutoriel suppose ce qui suit :
Vous avez un navigateur pris en charge.
Vous avez un compte d’essai. Si vous n’avez pas encore de compte d’essai, vous pouvez vous inscrire pour un essai gratuit. Vous pouvez choisir n’importe quelle région cloud Snowflake.
Vous disposez d’un compte que vous pouvez utiliser pour charger en masse des données à partir de l’un des fournisseurs cloud suivants :
AWS S3. Voir Chargement en masse à partir d’Amazon S3.
Microsoft Azure. Voir Chargement en masse à partir de Microsoft Azure.
Google Cloud Storage. Voir Chargement en masse à partir de Google Cloud Storage.
Note
Ce tutoriel n’est disponible que pour les utilisateurs disposant d’un compte d’essai. L’exemple de feuille de calcul n’est pas disponible pour les autres types de comptes.
Étape 1. Se connecter en utilisant Snowsight¶
Pour accéder à Snowsight via l’Internet public, procédez comme suit :
Dans un navigateur web pris en charge, accédez à https://app.snowflake.com.
Fournissez votre identificateur de compte ou votre URL de compte. Si vous vous êtes déjà connecté à Snowsight, vous verrez peut-être un nom de compte que vous pouvez sélectionner.
Connectez-vous en utilisant les identifiants de connexion de votre compte Snowflake.
Étape 2. Ouvrez la feuille de calcul Charger les données à partir du stockage cloud¶
Vous pouvez utiliser des feuilles de calcul pour écrire et exécuter des commandes SQL sur votre base de données. Votre compte d’essai a accès à un modèle de feuille de calcul pour ce tutoriel. La feuille de calcul contient les commandes SQL que vous exécuterez pour créer des objets de base de données, charger des données et les interroger. Comme il s’agit d’un modèle de feuille de calcul modèle, vous serez invité à saisir vos propres valeurs pour certains SQL paramètres. Pour plus d’informations sur les feuilles de calcul, voir Premiers pas avec les feuilles de calcul.
La feuille de calcul de ce tutoriel n’est pas préchargée dans le compte d’essai. Pour ouvrir la feuille de calcul de ce tutoriel, procédez comme suit :
Si vous vous connectez à votre compte d’essai Snowsight pour la première fois, sélectionnez Start sous Load data into Snowflake sur l’écran Where do you want to start?.
Si vous avez quitté l’écran Where do you want to start? allez dans l’onglet Worksheets et sélectionnez Continue dans le bandeau.
Cliquez n’importe où dans le panneau central nommé Load data from cloud storage.
La [Template] Load data from cloud storage worksheet s’ouvre et votre navigateur ressemble à l’image suivante.
Étape 3. Définir le rôle et l’entrepôt à utiliser¶
Le rôle que vous utilisez détermine les privilèges dont vous disposez. Dans ce tutoriel, vous utiliserez le rôle système ACCOUNTADMIN afin de pouvoir visualiser et gérer les objets de votre compte. Pour plus d’informations, voir Utilisation du rôle ACCOUNTADMIN.
Un entrepôt fournit les ressources informatiques nécessaires à l’exécution des opérations DML, au chargement des données et à l’exécution des requêtes. Ces ressources comprennent le CPU, la mémoire et le stockage temporaire. Votre compte d’essai dispose d’un entrepôt virtuel (compute_wh
) que vous pouvez utiliser pour ce tutoriel. Pour plus d’informations, voir Entrepôts virtuels.
Pour définir le rôle et l’entrepôt à utiliser, procédez comme suit :
Dans la feuille de calcul ouverte, placez votre curseur sur la ligne USE ROLE.
USE ROLE accountadmin;
Dans le coin supérieur droit de la feuille de calcul, sélectionnez Run.
Note
Dans ce tutoriel, exécutez les instructions SQL une à la fois. Ne sélectionnez pas Run All.
Placez votre curseur sur la ligne USE WAREHOUSE, puis sélectionnez Run.
USE WAREHOUSE compute_wh;
Étape 4. Installez une table que vous pouvez charger¶
Une base de données est un dépôt pour vos données. Les données sont stockées dans des tables que vous pouvez gérer et interroger. Un schéma est un regroupement logique d’objets de base de données, tels que des tables et des vues. Par exemple, un schéma peut contenir les objets de la base de données nécessaires à une application spécifique. Pour plus d’informations, voir Bases de données, tables et vues - Vue d’ensemble.
Pour créer une base de données, un schéma et une table que vous pouvez charger, procédez comme suit :
Dans la feuille de calcul ouverte, placez votre curseur sur la ligne CREATE OR REPLACE DATABASE, saisissez un nom pour votre base de données et un commentaire facultatif, puis sélectionnez Run. Par exemple :
CREATE OR REPLACE DATABASE cloud_data_db COMMENT = 'Database for loading cloud data';
Placez votre curseur sur la ligne CREATE OR REPLACE SCHEMA, saisissez un nom pour votre schéma et un commentaire facultatif, puis sélectionnez Run. Par exemple :
CREATE OR REPLACE SCHEMA cloud_data_db.s3_data COMMENT = 'Schema for tables loaded from S3';
Placez votre curseur dans les lignes CREATE OR REPLACE TABLE, complétez la définition du tableau, ajoutez un commentaire facultatif et sélectionnez Run. Par exemple, le tableau suivant contient six colonnes :
CREATE OR REPLACE TABLE cloud_data_db.s3_data.calendar ( full_date DATE ,day_name VARCHAR(10) ,month_name VARCHAR(10) ,day_number VARCHAR(2) ,full_year VARCHAR(4) ,holiday BOOLEAN ) COMMENT = 'Table to be loaded from S3 calendar data file';
Pour confirmer que la table a bien été créée, placez votre curseur sur la ligne SELECT, puis sélectionnez Run.
SELECT * FROM cloud_data_db.s3_data.calendar;
La sortie montre les colonnes de la table que vous avez créée. Actuellement, la table ne contient aucune ligne.
Étape 5 : Créer une intégration de stockage¶
Avant de pouvoir charger des données à partir du stockage cloud, vous devez configurer une intégration de stockage spécifique à votre fournisseur cloud. L’exemple suivant est spécifique au stockage Amazon S3.
Les intégrations de stockage sont des objets Snowflake de première classe nommés, qui évitent de transmettre des identifiants de connexion explicites de fournisseur Cloud, comme des clés secrètes ou des jetons d’accès. Les objets d’intégration stockent un ID d’utilisateur de gestion des identités et des accès (IAM) AWS.
Pour créer une intégration de stockage pour Amazon S3, procédez comme suit :
Utilisez la console de gestion AWS pour créer une politique IAM et un rôle IAM. Ces ressources fournissent un accès sécurisé à votre compartiment S3 pour le chargement des données. Vous aurez besoin de ces ressources pour créer une intégration de stockage dans Snowflake. Après vous être connecté à la console, effectuez les étapes 1 et 2 sous Option 1 : Configuration d’une intégration de stockage Snowflake pour accéder à Amazon S3.
Dans la feuille de calcul ouverte, placez votre curseur dans les lignes CREATE OR REPLACE STORAGE INTEGRATION, définissez les paramètres requis et sélectionnez Run. Par exemple :
CREATE OR REPLACE STORAGE INTEGRATION s3_data_integration TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::631373164455:role/tutorial_role' ENABLED = TRUE STORAGE_ALLOWED_LOCATIONS = ('s3://snow-tutorial-bucket/s3data/');
Attribuez à STORAGE_AWS_ROLE_ARN l’identifiant unique du rôle IAM que vous avez créé précédemment. Vous trouverez cette valeur sous IAM > Roles dans la console de gestion AWS.
Placez votre curseur sur la ligne DESCRIBE INTEGRATION, indiquez le nom de l’intégration de stockage que vous avez créée et sélectionnez Run.
DESCRIBE INTEGRATION s3_data_integration;
Cette commande permet de récupérer l’ARN et l’ID externe de l’utilisateur AWS IAM qui a été créé automatiquement pour votre compte Snowflake. Vous utiliserez ces valeurs pour configurer les autorisations pour Snowflake dans la console de gestion AWS.
La sortie de cette commande ressemble à ce qui suit :
Placez votre curseur sur la ligne SHOW INTEGRATIONS et sélectionnez Run. Cette commande renvoie des informations sur l’intégration de stockage que vous avez créée.
SHOW INTEGRATIONS;
La sortie de cette commande ressemble à ce qui suit :
Utilisez la console de gestion AWS pour configurer les autorisations d’accès aux compartiments de stockage pour l’utilisateur IAM (l’utilisateur qui a été créé automatiquement pour votre compte d’essai). Suivez l’étape 5 sous Option 1 : Configuration d’une intégration de stockage Snowflake pour accéder à Amazon S3.
Si vous utilisez Azure ou GCS, vous trouverez les procédures de configuration équivalentes sous Chargement en masse à partir de Microsoft Azure et Chargement en masse à partir de Google Cloud Storage.
Étape 6. Créer une zone de préparation¶
Une zone de préparation est un emplacement qui contient des fichiers de données à charger dans une base de données Snowflake. Ce tutoriel crée une zone de préparation qui peut charger des données à partir d’un type spécifique de stockage cloud, tel qu’un compartiment S3.
Pour créer une zone de préparation, procédez comme suit :
Dans la feuille de calcul ouverte, placez votre curseur dans les lignes CREATE OR REPLACE STAGE, indiquez un nom, l’intégration de stockage que vous avez créée, l’URL de compartiment et le format de fichier correct, puis sélectionnez Run. Par exemple :
CREATE OR REPLACE STAGE cloud_data_db.s3_data.s3data_stage STORAGE_INTEGRATION = s3_data_integration URL = 's3://snow-tutorial-bucket/s3data/' FILE_FORMAT = (TYPE = CSV);
Renvoyer des informations sur la zone de préparation que vous avez créée :
SHOW STAGES;
La sortie de cette commande ressemble à ce qui suit :
Étape 7. Charger les données à partir la zone de préparation¶
Chargez la table à partir de la zone de préparation que vous avez créée en utilisant la commande COPY INTO <table>. Pour plus d’informations sur le chargement à partir de compartiments S3, voir Copie des données d’une zone de préparation S3.
Pour charger les données dans la table, placez votre curseur dans les lignes COPY INTO, indiquez le nom de la table, la zone de préparation que vous avez créée et le nom du fichier (ou des fichiers) que vous souhaitez charger, puis sélectionnez Run. Par exemple :
COPY INTO cloud_data_db.s3_data.calendar FROM @cloud_data_db.s3_data.s3data_stage FILES = ('calendar.txt');
La sortie devrait ressembler à ce qui suit.
Étape 8. Interroger la table¶
Maintenant que les données sont chargées, vous pouvez exécuter des requêtes sur la table calendar
.
Pour exécuter une requête dans la feuille de calcul ouverte, sélectionnez la ou les lignes de la commande SELECT, puis sélectionnez Run. Par exemple, exécutez la requête suivante :
SELECT * FROM cloud_data_db.s3_data.calendar;
La sortie devrait ressembler à ce qui suit.
Étape 9. Nettoyage, résumé et ressources supplémentaires¶
Félicitations ! Vous avez terminé ce tutoriel sur les comptes d’essai.
Prenez quelques minutes pour passer en revue un bref résumé et les points clés abordés dans le tutoriel. Vous pouvez également envisager un nettoyage en détruisant tous les objets que vous avez créés dans le tutoriel. Par exemple, vous pourriez vouloir supprimer la table que vous avez créée et chargée :
DROP TABLE calendar;
Dès lors qu’ils ne sont plus nécessaires, vous pouvez également supprimer les autres objets que vous avez créés, comme l’intégration de stockage, la zone de préparation, la base de données et le schéma. Pour plus de détails, voir Commandes DDL (Langage de définition des données).
Résumé et points clés¶
En résumé, vous avez utilisé un modèle de feuille de calcul préchargé dans Snowsight pour effectuer les étapes suivantes :
Définir le rôle et l’entrepôt à utiliser.
Créer une base de données, un schéma et une table.
Créer une intégration de stockage et configurer les autorisations sur le stockage cloud.
Créer une zone de préparation et charger les données dans la zone de préparation dans la table.
Interroger les données.
Voici quelques points clés à retenir concernant le chargement et l’interrogation des données :
Vous devez disposer des autorisations nécessaires pour créer et gérer des objets dans votre compte. Dans ce tutoriel, vous utilisez le rôle système ACCOUNTADMIN pour ces privilèges.
Ce rôle n’est normalement pas utilisé pour créer des objets. Au lieu de cela, nous vous recommandons de créer une hiérarchie de rôles alignés sur les fonctions de votre organisation. Pour plus d’informations, voir Utilisation du rôle ACCOUNTADMIN.
Vous avez besoin d’un entrepôt pour les ressources nécessaires à la création et à la gestion des objets et à l’exécution des commandes SQL. Ce tutoriel utilise l’entrepôt
compute_wh
inclus dans votre compte d’essai.Vous avez créé une base de données pour stocker les données et un schéma pour regrouper logiquement les objets de la base de données.
Vous avez créé une intégration de stockage et une zone de préparation pour charger des données à partir d’un fichier CSV stocké dans un compartiment AWS S3.
Une fois les données chargées dans votre base de données, vous les avez interrogées à l’aide d’une instruction SELECT.
Quelle est la prochaine étape ?¶
Continuez à vous renseigner sur Snowflake à l’aide des ressources suivantes :
Complétez les autres tutoriels fournis par Snowflake :
Familiarisez-vous avec les concepts et fonctions clés de Snowflake, ainsi qu’avec les commandes SQL utilisées pour charger des tables à partir d’un stockage cloud :
Essayez les démarrages rapides Tasty Bytes fournis par Snowflake :