Il est temps de monter en selle et d’utiliser Snowflake pour faire votre première requête.
Contexte
Les premières fois sont importantes. Votre première requête vous permettra de mieux comprendre les bases de snowflake expliquées lors des articles précédents :
- Créer un compte gratuit pour tester Snowflake
- Les bases pour utiliser Snowflake
- Les bases de la sécurité dans Snowflake
Je pars donc du principe que vous en avez pris connaissance.
Créer votre première requête
Je vous propose un exemple simple nous permettant de faire une première requête dans votre environnement Snowflake. Pour réaliser cela, nous procéderons ainsi :
- Créer un warehouse
- Créer une base
- Créer un schéma
- Créer une table
- Créer un schéma
- Charger nos données
- Créer un rôle et lui donner les droits adéquats
- Requêter nos données avec le rôle défini.
Maitriser le contexte de notre requête
Lorsque l’on exécute une requête dans Snowflake, cette exécution se fait toujours dans un contexte définie par les 4 paramètres suivants :
- Le rôle : vous devez être dans un rôle défini pour exécuter une requête, cela peut être le rôle par défaut de votre utilisateur ou un autre rôle qui vous as été attribué.
- Le warehouse : Il est obligatoire pour les requêtes sur les données et provoque une facturation. Pour les requêtes de créations d’objets dans Snowflake il n’est pas impératif.
- La base : Permets de définir le nom de la base dans laquelle vous travaillez. Si elle n’est pas définie ou si vous voulez utiliser une autre base, vous pouvez indiquer le nom de cette base dans vos requêtes.
- Le schéma : Permets de définir le nom du schéma dans laquelle vous travaillez. S’il n’est pas défini ou si vous voulez utiliser un autre schéma, vous pouvez indiquer le nom de ce schéma dans vos requêtes.
Ouvrir l’interface
Pour créer une requête, vous devez créer un SQL worksheet dans l’interface web.
Ce document sera automatiquement sauvegardé et versionné par Snowflake. Il vous permet de choisir votre contexte, d’écrire et d’exécuter vos requêtes.
Rendez-vous sur la page d’accueil de Snowflake.
- Positionnez-vous sur Worksheet.
- Appuyez sur le symbole + en haut à droite.
- Sélectionnez SQL Worksheet.
- Onglet pour naviguer entre la liste de vos bases et la liste de vos worksheet.
- Liste des bases disponible.
- Sélection du rôle et du warehouse du contexte de la requête.
- Sélection de la base et du schéma du contexte de la requête.
- Zone de saisie de vos requêtes SQL.
- Permets d’exécuter les requêtes SQL.
Noter que vous devez séparer vos différentes requêtes par un point-virgule, en général en fin de ligne d’une requête.
Créer un warehouse
Pour interagir avec nos données, nous devons passer par un warehouse.
|
|
- Pour créer le warehouse, positionnez-vous dans la zone de saisie des requêtes est copiez le code ci-dessus.
- Appuyez sur le bouton bleu pour l’exécuter.
- Vous pouvez voir le résultat.
Créer les structures de données
Nous allons maintenant créer les structures pour accueillir nos données
|
|
- Pour créer les 3 objets base, schéma et table en même temps, positionnez-vous dans la zone de saisie des requêtes est copiez le code ci-dessus.
- Sur le bouton bleu, appuyez sur le chevron vers le bas pour ouvrir le menu.
- Sélectionnez Run All pour exécuter toutes les requêtes de la fenêtre.
- Vous pouvez voir le résultat de la dernière requête exécuter.
- Automatiquement le contexte de votre requête c’est adapté lors de la création de la base et du schéma.
Charger des données
Nous allons charger les données via une simple requête d’insertion de données.
|
|
Comme je n’indique pas de schéma et de nom de base, les valeurs du contexte de la requête sont utilisées.
Les règles de résolution de nom sont les suivantes :
- MA_TABLE –> utilise la base et le schéma du contexte de connexion.
- MON_SCHEMA.MA_TABLE –> utilise le schéma du contexte de connexion.
- MA_BASE.MON_SCHEMA.MA_TABLE –> pas d’utilisation du contexte de connexion.
Requêter vos données
Pour lire vos données, une simple requête SQL SELECT suffit :
|
|
- Positionnez-vous dans la zone de saisie des requêtes est copiez le code ci-dessus.
- Vérifier d’avoir le bon contexte pour la base et le schéma.
- Vérifier d’avoir le bon contexte pour le rôle et le warehouse.
- Appuyez sur le bouton bleu pour l’exécuter.
- Vous pouvez voir le résultat.
Un problème de sécurité.
Vous pouvez créer des objets, car vous êtes dans le rôle ACCOUNTADMIN et vous pouvez requêter les données, car vous êtes le propriétaire de la table.
Dans un cadre d’entreprise, vous devrez utiliser des rôles personnalisés pour requêter vos données.
De même il est conseillé d’utiliser des rôles dédiés pour la création des ressources et au pire d’utiliser le rôle SYSADMIN.
Nous allons donc créer un rôle dédié à la lecture de nos données et lui donner les droits suivant :
- Droit d’usage du warehouse pour pouvoir exécuter des requêtes.
- Droit d’usage de la base et du schéma pour pouvoir y accéder.
- Droit de sélectionner les données de la table.
|
|
Comme pour la création des structures de données, utiliser Run All pour exécuter toutes les requêtes.
Changeons de contexte
Nous allons maintenant nous mettre dans le rôle MON_ROLA, et pour cela changer de contexte directement en SQL et ensuite requêter notre table.
|
|
- Positionnez-vous dans la zone de saisie des requêtes est copiez le code ci-dessus.
- Sur le bouton bleu, appuyez sur le chevron vers le bas pour ouvrir le menu.
- Sélectionnez Run All pour exécuter toutes les requêtes de la fenêtre.
- Vous pouvez voir que le contexte pour le rôle et le warehouse sont ceux demandés par la requête.
- Vous pouvez voir que le contexte pour la base et le schéma sont ceux demandés par la requête.
- Vous pouvez voir le résultat de la dernière requête exécuter.
Bravo, vous avez fini votre première requête dans Snowflake.
Merci de votre attention.