Chargement de données à partir de Cloud Storage : Microsoft Azure

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 à Microsoft Azure et montre des commandes SQL qui fonctionnent pour charger des données à partir d’un conteneur Azure.

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 :

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 :

  1. Dans un navigateur web pris en charge, accédez à https://app.snowflake.com.

  2. 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.

  3. 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 :

  1. 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.

  2. 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.

Chargement SQL depuis le modèle de feuille de calcul cloud, qui contient les commandes SQL de ce tutoriel, ainsi que des commentaires descriptifs.

É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 :

  1. Dans la feuille de calcul ouverte, placez votre curseur sur la ligne USE ROLE.

    USE ROLE accountadmin;
    
    Copy
  2. 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.

  3. Placez votre curseur sur la ligne USE WAREHOUSE, puis sélectionnez Run.

    USE WAREHOUSE compute_wh;
    
    Copy

É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 :

  1. 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';
    
    Copy
  2. 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.azure_data
      COMMENT = 'Schema for tables loaded from Azure';
    
    Copy
  3. 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.azure_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 Azure calendar data file';
    
    Copy
  4. 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.azure_data.calendar;
    
    Copy

    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 Microsoft Azure.

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 Azure de gestion des identités et des accès (IAM) appelé inscription d’application.

Pour créer une intégration de stockage pour Azure, procédez comme suit :

  1. Le portail Azure permet de configurer un conteneur Azure pour le chargement des données. Pour plus de détails, voir Configuration d’un conteneur Azure pour le chargement de données.

  2. 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 azure_data_integration
      TYPE = EXTERNAL_STAGE
      STORAGE_PROVIDER = 'AZURE'
      AZURE_TENANT_ID = '075f576e-6f9b-4955-8e99-4086736225d9'
      ENABLED = TRUE
      STORAGE_ALLOWED_LOCATIONS = ('azure://tutorial99.blob.core.windows.net/snow-tutorial-container/');
    
    Copy

    Définissez AZURE_TENANT_ID sur l’ID de votre client Office 365 pour le compte de stockage qui contient les emplacements de stockage autorisés que vous souhaitez utiliser. Vous trouverez cet ID dans le portail Azure sous Microsoft Entra ID > Properties > Tenant ID. (Microsoft Entra ID est le nouveau nom d’Azure Active Directory).

    Définissez STORAGE_ALLOWED_LOCATIONS comme chemin d’accès au conteneur Azure dans lequel votre fichier de données source est stocké. Utilisez le format indiqué dans cet exemple, où tutorial99 est le nom du compte de stockage et snow-tutorial-container est le nom du conteneur.

  3. 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 azure_data_integration;
    
    Copy

    Cette commande permet de récupérer les AZURE_CONSENT_URL et AZURE_MULTI_TENANT_APP_NAME de l’application client qui a été créée automatiquement pour votre compte Snowflake. Vous utiliserez ces valeurs pour configurer les autorisations pour Snowflake dans le portail Azure.

    La sortie de cette commande ressemble à ce qui suit :

    Sortie de la commande DESCRIBE INTEGRATION, avec les colonnes suivantes : property, property_type, property_value, property_default.
  4. 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;
    
    Copy

    La sortie de cette commande ressemble à ce qui suit :

    Sortie de la commande SHOW INTEGRATIONS, avec les colonnes suivantes : name, type, category, enabled, comment, created_on.
  5. Utilisez le portail Azure pour configurer les autorisations d’accès aux conteneurs de stockage pour l’application client (qui a été créée automatiquement pour votre compte d’essai). Suivez l’étape 2 : Accorder un accès à Snowflake aux emplacements de stockage sous Configuration d’un conteneur Azure pour le chargement de données.

É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 conteneur Azure.

Pour créer une zone de préparation, procédez comme suit :

  1. 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.azure_data.azuredata_stage
      STORAGE_INTEGRATION = azure_data_integration
      URL = 'azure://tutorial99.blob.core.windows.net/snow-tutorial-container/'
      FILE_FORMAT = (TYPE = CSV);
    
    Copy
  2. Renvoyer des informations sur la zone de préparation que vous avez créée :

    SHOW STAGES;
    
    Copy

    La sortie de cette commande ressemble à ce qui suit :

    Sortie de la commande SHOW STAGES, avec les colonnes suivantes : created_on, name, database_name, schema_name, url.

É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 conteneurs Azure, voir Copie de données à partir d’une zone de préparation Azure.

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.azure_data.calendar
  FROM @cloud_data_db.azure_data.azuredata_stage
    FILES = ('calendar.txt');
Copy

La sortie devrait ressembler à ce qui suit.

Cinq lignes sont copiées dans la table. La sortie comporte les colonnes suivantes : file, status, rows_parsed, rows_loaded, error_limit.

É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.azure_data.calendar;
Copy

La sortie devrait ressembler à ce qui suit.

Toutes les lignes de la table sont sélectionnées. Cet exemple comporte les colonnes full_date, day_name, month_name, day_num, year_num et holiday.

É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;
Copy

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 :

  1. Définir le rôle et l’entrepôt à utiliser.

  2. Créer une base de données, un schéma et une table.

  3. Créer une intégration de stockage et configurer les autorisations sur le stockage cloud.

  4. Créer une zone de préparation et charger les données dans la zone de préparation dans la table.

  5. 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 conteneur Azure.

  • 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 :