Cette semaine, nous allons relever un défi qui mettra l’eau à la bouche de n’importe quel vendeur :
La solution « base de données prête à l’emploi » :
Nous voulons être en mesure d’utiliser SnowSQL pour le diriger vers ce script d’un côté, et vers l’instance Snowflake cible de l’autre, et créer une base de données immédiatement utilisable.
Créez un script principal dans le format de votre choix qui crée ce qui suit quand il est exécuté :
– 4 bases de données nommées : Development, Testing, Acceptance et Production
– 1 schéma supplémentaire dans chaque base de données (en dehors de Public) appelé security
– 1 schéma supplémentaire dans Development appelé ‘dev_user’
– 3 utilisateurs : security_user, dev_user, regular_user
Les valeurs par défaut pour les utilisateurs :
-mot de passe = abc123
-les rôles secondaires doivent être activés
– 2 rôles supplémentaires appelés dev_role et security_role
– dev_role devrait être en mesure de créer et d’interroger toutes les (futures) tables, vues et schémas dans chaque base de données, sauf de modifier quoi que ce soit dans les schémas de sécurité.
– security_role devrait être en mesure de créer et d’interroger toutes les (futures) tables, vues et schémas dans chaque base de données.
– dev_user devrait avoir le rôle dev_role, security_user devrait avoir le rôle security_role
– le rôle public est seulement autorisé à interroger Production.Public
– 1 warehouse SMALL appelé default_wh
Créez un deuxième script qui contient ce qui suit :
CREATE TABLE departments(dep_id varchar, dep_name varchar);
INSERT INTO departments VALUES
(‘d001′,’Marketing’),
(‘d002′,’Finance’),
(‘d003′,’Human Resources’),
(‘d004′,’Production’),
(‘d005′,’Development’),
(‘d006′,’Quality Management’),
(‘d007′,’Sales’),
(‘d008′,’Research’),
(‘d009′,’Customer Service’);
La procédure de « base de données prête à l’emploi » devrait appeler ce script secondaire si vous le pointez vers le bon chemin (argument).
Le chemin vers le script secondaire ne doit PAS être codé en dur dans le script principal.
BONUS
En tant que défi bonus, essayez de créer le même script qui soit plus malléable ;
Les valeurs par défaut telles que les mots de passe, les noms d’entrepôts et les noms de bases de données sont actuellement statiques, mais pouvez-vous créer l’option de faire appel à la valeur par défaut si aucune alternative n’est donnée ?
Et n’oubliez pas, si vous souhaitez participer aux défis:
1. Inscrivez-vous en tant que membre de Frosty Friday. –> Vous pouvez le faire en cliquant sur la barre latérale, puis en cliquant sur ‘REGISTER‘ (notez que s’inscrire à notre liste de diffusion ne vous donne pas de compte Frosty Friday).
2. Publiez votre code sur GitHub et rendez-le accessible au public (consultez notre guide si vous ne savez pas comment faire, disponible ici)
3. Postez l’URL dans les commentaires du défi.
Si vous avez des questions techniques que vous souhaitez poser à la communauté, vous pouvez les poser ici, sur notre thread dédié.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.