Snowflake Looker
Introduction
Snowflake, une plateforme d’entreposage de données basée sur le cloud, et Looker, un outil moderne d’intelligence d’affaires et de visualisation de données, sont deux des outils les plus populaires pour l’analyse de données aujourd’hui. L’intégration de Snowflake et Looker permet aux organisations de tirer parti de la puissance de stockage de données évolutif et flexible de Snowflake avec les capacités intuitives d’exploration et de tableau de bord de Looker.
Dans cet article, nous couvrirons les bases de l’utilisation de Snowflake avec Looker, y compris comment configurer l’intégration, gérer les utilisateurs et les rôles, implémenter la sécurité au niveau des lignes, utiliser la couche de modélisation LookML de Looker avec Snowflake, et appliquer les meilleures pratiques de gouvernance des données. À la fin de cet article, vous aurez une base solide pour construire une pile analytique moderne avec Snowflake et Looker.
Configuration de l’Intégration Snowflake Looker
La première étape consiste à connecter votre compte Snowflake à Looker.
Voici comment faire :
- Dans Looker, allez à Admin > Connections et cliquez sur “New Connection”.
- Sélectionnez “Snowflake” comme dialecte.
- Entrez l’URL de votre compte Snowflake, votre nom d’utilisateur et votre mot de passe.
- Sélectionnez la base de données par défaut, le schéma et l’entrepôt à utiliser.
- Testez la connexion et enregistrez.
Par exemple :
Nom de la Connexion: Ma Connexion Snowflake Dialecte: snowflake Hôte: moncompte.snowflakecomputing.com Base de données: MA_DB Schéma: PUBLIC Entrepôt: MON_ENTREPÔT
Une fois la connexion configurée, Looker peut maintenant interroger les données stockées dans votre compte Snowflake. L’étape suivante consiste à créer un projet LookML pour modéliser et explorer ces données.
Modélisation des Données Snowflake dans Looker en Utilisant LookML
LookML est le langage de modélisation de Looker pour décrire le schéma de votre base de données de manière contrôlable par version. Au lieu d’écrire des requêtes SQL, vous définissez votre modèle de données en LookML et laissez Looker générer le SQL optimisé pour vous. Cela favorise la réutilisabilité et la cohérence au sein de votre équipe de données.
Voici un exemple de vue LookML simple pour une table users dans Snowflake :
view: users { sql_table_name: MA_DB.PUBLIC.USERS ;; dimension: user_id { primary_key: yes type: number sql: ${TABLE}.ID ;; } dimension: name { type: string qsl: ${TABLE}.NAME ;; } dimension: email { type: string sql: ${TABLE}.EMAIL ;; } measure: count { type: count } }
Cette vue mappe à la table USERS dans Snowflake et définit des dimensions et mesures qui peuvent être utilisées dans la section Explore de Looker pour créer des graphiques et des tableaux de bord.
Quelques concepts clés LookML à comprendre lors de la modélisation des données Snowflake dans Looker :
- Les vues se mappent à des tables ou des tables dérivées
- Les dimensions se mappent à des colonnes et peuvent être utilisées pour le regroupement et le filtrage
- Les mesures sont des agrégations comme COUNT, SUM, AVG
- Vous pouvez définir des relations entre les vues que Looker utilisera pour joindre automatiquement les tables
Looker gère automatiquement la génération du dialecte SQL optimal pour la base de données Snowflake à laquelle il est connecté. Cela abstrait les complexités de la base de données sous-jacente et permet aux analystes de se concentrer sur les questions et d’obtenir des insights.
Gestion des Rôles et des Utilisateurs dans Snowflake et Looker
Lors de la configuration de Snowflake Looker pour votre organisation, il est crucial de gérer correctement les rôles et les utilisateurs pour garantir que l’accès aux données est restreint de manière appropriée. Snowflake propose un contrôle d’accès basé sur les rôles étendu, et Looker vous permet d’attribuer des rôles et privilèges Snowflake aux groupes de Looker.
Rôles dans Snowflake
Dans Snowflake, les rôles sont la base des privilèges et du contrôle d’accès. Quelques concepts clés :
- Les rôles peuvent se voir attribuer des privilèges spécifiques aux bases de données, schémas, tables et vues
- Les rôles peuvent être attribués à des utilisateurs et à d’autres rôles
- Snowflake a plusieurs rôles système définis comme ACCOUNTADMIN, SYSADMIN, SECURITYADMIN
- Il est préférable de créer des rôles personnalisés spécifiques aux besoins de votre organisation
Par exemple, pour créer un rôle ANALYST qui peut lire des données dans la base de données MA_DB :
USE ROLE SECURITYADMIN; CREATE ROLE ANALYST; GRANT USAGE ON DATABASE MA_DB TO ROLE ANALYST; GRANT USAGE ON ALL SCHEMAS IN DATABASE MA_DB TO ROLE ANALYST; GRANT SELECT ON ALL TABLES IN DATABASE MA_DB TO ROLE ANALYST; GRANT SELECT ON FUTURE TABLES IN DATABASE MA_DB TO ROLE ANALYST;
Ce rôle peut maintenant être attribué aux utilisateurs ou groupes Snowflake qui ont besoin d’un accès en lecture seule aux données de MA_DB à des fins d’analyse.
Rôles et Groupes dans Looker
Dans Looker, vous attribuez des rôles et des privilèges aux groupes, qui sont des collections d’utilisateurs Looker. Les rôles Snowflake peuvent être mappés aux groupes Looker pour étendre le contrôle d’accès de Snowflake jusqu’à la couche Looker.
Pour mapper un rôle Snowflake à un groupe Looker :
- Allez à Admin > Groups dans Looker
- Créez un nouveau groupe ou modifiez un groupe existant
- Sous Rôles, sélectionnez la connexion Snowflake et choisissez le rôle Snowflake à attribuer
- Tout utilisateur ajouté à ce groupe Looker aura désormais les privilèges du rôle Snowflake attribué lorsqu’il explore des données via Looker
Par exemple, vous pourriez créer un groupe Looker appelé “Analystes d’affaires”, lui attribuer le rôle ANALYST Snowflake mentionné plus tôt, et ajouter tous vos utilisateurs analystes Looker à ce groupe. Ils seront restreints aux requêtes en lecture seule sur la base de données MA_DB.
La combinaison des rôles Snowflake et des groupes Looker offre un moyen puissant de gérer l’accès aux données dans votre pile analytique Snowflake Looker. En adoptant une approche stratégique de la configuration de ces permissions, vous pouvez garantir que les bonnes personnes ont accès aux bonnes données.
Implémentation de la Sécurité au Niveau des Lignes avec Snowflake et Looker
La sécurité au niveau des lignes restreint l’accès aux données au niveau de la ligne individuellement en fonction des attributs utilisateur. Cela est important pour garantir que les utilisateurs ne voient que les données auxquelles ils sont autorisés à accéder. Snowflake Looker prend en charge la sécurité au niveau des lignes en utilisant des vues sécurisées dans Snowflake et des attributs utilisateur dans Looker.
Vues Sécurisées dans Snowflake
Les Vues Sécurisées dans Snowflake sont des vues qui référencent d’autres objets de la base de données et appliquent des politiques de sécurité au niveau des lignes à l’aide de prédicats SQL.
Par exemple, supposons que nous ayons une table ORDERS et que nous ne voulons que les utilisateurs puissent voir leurs propres commandes. Nous pourrions créer une vue sécurisée comme :
CREATE SECURE VIEW MY_ORDERS AS SELECT * FROM ORDERS WHERE USER_ID = CURRENT_USER();
La fonction CURRENT_USER() renvoie le nom de l’utilisateur actuellement connecté à Snowflake. Cette vue sécurisée ne renverra que les lignes de la table ORDERS où la colonne USER_ID correspond à l’utilisateur actuel.
Attributs Utilisateur dans Looker
Looker vous permet de définir des Attributs Utilisateur qui sont des paires clé-valeur associées aux comptes d’utilisateurs. Ces attributs peuvent être passés dans les requêtes pour filtrer dynamiquement les données en fonction de l’utilisateur actuel.
Pour configurer un Attribut Utilisateur dans Looker :
- Allez à Admin > User Attributes
- Définissez un nouvel attribut, par exemple “snowflake_user”
- Définissez la valeur de cet attribut pour chaque utilisateur Looker afin qu’elle corresponde à leur nom d’utilisateur Snowflake.
Maintenant dans votre modèle LookML, vous pouvez référencer cet attribut utilisateur dans le SQL de votre vue :
view: orders { sql_table_name: MA_DB.PUBLIC.ORDERS ;; dimension: user_id { type: number sql: ${TABLE}.USER_ID ;; } dimension: order_id { primary_key: yes type: number sql: ${TABLE}.ORDER_ID ;; } dimension: total_amount { type: number sql: ${TABLE}.TOTAL_AMOUNT ;; } dimension: order_date { type: date sql: ${TABLE}.ORDER_DATE ;; } measure: count { type: count } measure: total_sales { type: sum sql: ${total_amount} ;; } # Ici nous ajoutons un filtre basé sur l'attribut utilisateur "snowflake_user" filter: user_filter { type: string sql: {% condition user_id %} ${user_id} {% endcondition %} ;; } }
Avec cette configuration, Looker ajoutera automatiquement une clause WHERE à toutes les requêtes contre la vue ORDERS pour filtrer les résultats en fonction de la valeur de l’attribut utilisateur “snowflake_user” de l’utilisateur actuel. Le résultat final est que les utilisateurs ne peuvent voir que leurs propres données de commande lorsqu’ils explorent ces données dans Looker.
En combinant des vues sécurisées dans Snowflake avec des attributs utilisateur dans Looker, vous pouvez implémenter des politiques de sécurité granulaires et dynamiques au niveau des lignes sur vos données. Cela est un moyen puissant pour garantir la conformité avec les réglementations sur la confidentialité des données et protéger les informations sensibles.
Conclusion
L’intégration de Snowflake et Looker permet aux organisations de construire une plateforme analytique moderne et évolutive. En utilisant les puissantes capacités d’entreposage de données de Snowflake avec la modélisation flexible des données et la couche d’exploration de Looker, les équipes de données peuvent fournir un accès sécurisé et en libre-service aux données dans toute l’organisation.
Dans cet article, nous avons couvert les aspects clés de l’utilisation de Snowflake et Looker ensemble :
- La configuration de la connexion Snowflake dans Looker
- La modélisation des données Snowflake en utilisant LookML de Looker
- La gestion des utilisateurs et des rôles dans Snowflake
- L’implémentation de la sécurité au niveau des lignes avec des vues sécurisées et des attributs utilisateur
Les exemples fournis servent de référence pour implémenter ces concepts dans votre propre environnement Snowflake Looker. En configurant correctement les rôles, les privilèges et la sécurité au niveau des lignes, vous pouvez garantir que les données sont accédées de manière sécurisée et appropriée dans toute l’organisation.
Il y a de nombreuses fonctionnalités avancées supplémentaires de l’intégration Snowflake Looker, telles que l’utilisation des PDTs (Persistent Derived Tables) de Looker, l’exploitation du clonage sans copie de Snowflake pour les workflows de développement et l’optimisation des performances des requêtes. Je vous encourage à explorer ces sujets plus en profondeur à mesure que vous construisez votre pile analytique.
La combinaison de Snowflake et Looker constitue une base puissante pour toute organisation axée sur les données. En suivant les meilleures pratiques en matière de modélisation, de sécurité et de gouvernance des données, vous pouvez permettre à votre équipe d’obtenir des insights précieux rapidement et en toute sécurité.