
Intégration de Snowflake avec Looker

Introduction
Snowflake, une plateforme de stockage 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’analytique des données aujourd’hui. Intégrer Snowflake et Looker permet aux organisations de tirer parti de la capacité de stockage de données évolutive et flexible de Snowflake avec les capacités intuitives d’exploration de données et de création de tableaux 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, mettre en œuvre 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, vous aurez une base solide pour construire une pile d’analytique moderne avec Snowflake et Looker.
Configurer l’intégration Snowflake Looker
La première étape consiste à connecter votre compte Snowflake à Looker.
Voici comment procéder :
- Dans Looker, allez dans Admin > Connections et cliquez sur “New Connection”.
- Sélectionnez “Snowflake” comme dialecte.
- Entrez l’URL de votre compte Snowflake, le nom d’utilisateur et le mot de passe.
- Sélectionnez la base de données, le schéma et l’entrepôt par défaut à 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 : MYDB Schéma : PUBLIC Entrepôt : MYWH
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éliser les 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 d’utilisateurs dans Snowflake :
view: users { sql_table_name: MYDB.PUBLIC.USERS ;; dimension: user_id { primary_key: yes type: number sql: ${TABLE}.ID ;; } dimension: name { type: string sql: ${TABLE}.NAME ;; } dimension: email { type: string sql: ${TABLE}.EMAIL ;; } measure: count { type: count } }
Cette vue correspond à la table USERS dans Snowflake et définit des dimensions et des mesures qui peuvent être utilisées dans la section Explore de Looker pour construire des graphiques et des tableaux de bord.
Quelques concepts clés de LookML à comprendre lors de la modélisation des données Snowflake dans Looker :
- Les vues correspondent à des tables ou à des tables dérivées
- Les dimensions correspondent aux colonnes et peuvent être utilisées pour le groupement 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 permet d’abstraire les complexités de la base de données sous-jacente et permet aux analystes de se concentrer sur les questions et l’obtention d’informations.
Gérer les rôles et les utilisateurs dans Snowflake et Looker
Lors de la configuration de Snowflake dans Looker pour votre organisation, il est crucial de bien gérer les rôles et les utilisateurs pour assurer un accès approprié aux données. Snowflake offre un large contrôle d’accès basé sur les rôles, et Looker vous permet d’assigner des rôles et des privilèges Snowflake aux groupes Looker.

Rôles 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 être assignés à des privilèges spécifiques sur des bases de données, des schémas, des tables et des vues
- Les rôles peuvent être assignés à des utilisateurs et à d’autres rôles
- Snowflake possède 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 ANALYSTE qui peut lire des données dans la base de données MYDB :
USE ROLE SECURITYADMIN; CREATE ROLE ANALYST; GRANT USAGE ON DATABASE MYDB TO ROLE ANALYST; GRANT USAGE ON ALL SCHEMAS IN DATABASE MYDB TO ROLE ANALYST; GRANT SELECT ON ALL TABLES IN DATABASE MYDB TO ROLE ANALYST; GRANT SELECT ON FUTURE TABLES IN DATABASE MYDB TO ROLE ANALYST;
Ce rôle peut maintenant être assigné aux utilisateurs ou groupes Snowflake qui ont besoin d’un accès en lecture seule aux données de MYDB à des fins d’analyse.
Rôles et groupes Looker
Dans Looker, vous assignez des rôles et des privilèges à des groupes, qui sont des collections d’utilisateurs Looker. Les rôles Snowflake peuvent être mappés à des groupes Looker pour étendre le contrôle d’accès de Snowflake à la couche Looker.
Pour mapper un rôle Snowflake à un groupe Looker :
- Allez dans Admin > Groups dans Looker
- Créez un nouveau groupe ou modifiez-en un existant
- Sous Rôles, sélectionnez la connexion Snowflake et choisissez le rôle Snowflake à assigner
- Tous les utilisateurs ajoutés à ce groupe Looker auront maintenant les privilèges du rôle Snowflake assigné lorsqu’ils explorent des données via Looker
Par exemple, vous pourriez créer un groupe Looker appelé “Business Analysts”, lui attribuer le rôle Snowflake ANALYST précédemment créé et ajouter tous vos analystes Looker à ce groupe. Ils seront limités aux requêtes en lecture seule sur la base de données MYDB.
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 pour configurer ces permissions, vous pouvez vous assurer que les bonnes personnes ont accès aux bonnes données.
Implémenter 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 l’individu en fonction des attributs de l’utilisateur. Ceci est important pour s’assurer que les utilisateurs ne voient que les données qu’ils sont autorisés à voir. Snowflake Looker prend en charge la sécurité au niveau des lignes en utilisant des vues sécurisées dans Snowflake et des attributs d’utilisateur dans Looker.
Vues sécurisées dans Snowflake
Les vues sécurisées de Snowflake sont des vues qui font référence à 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 d’utilisateur dans Looker
Looker vous permet de définir des attributs d’utilisateur qui sont des paires clé-valeur associées aux comptes utilisateur. Ces attributs peuvent être passés dans des requêtes pour filtrer dynamiquement les données en fonction de l’utilisateur actuel.
Pour configurer un attribut d’utilisateur dans Looker :
- Allez dans Admin > User Attributes
- Définissez un nouvel attribut, par exemple “snowflake_user”
- Définissez la valeur de cet attribut pour chaque utilisateur Looker pour 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 pour votre vue :
view: orders { sql_table_name: MYDB.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 à toute requête contre la vue ORDERS pour filtrer les résultats en fonction de la valeur de l’attribut utilisateur “snowflake_user” 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 d’utilisateur dans Looker, vous pouvez implémenter des politiques de sécurité au niveau des lignes granulaires et dynamiques sur vos données. C’est un moyen puissant de garantir la conformité avec les réglementations sur la confidentialité des données et de protéger les informations sensibles.
Conclusion
Intégrer Snowflake et Looker permet aux organisations de construire une plateforme analytique moderne et évolutive. En tirant parti des capacités puissantes de stockage de données de Snowflake avec la flexibilité de la modélisation de données et de l’exploration de Looker, les équipes de données peuvent fournir un accès en libre-service sécurisé aux données à travers l’organisation.
Dans cet article, nous avons couvert les aspects clés de l’utilisation de Snowflake avec Looker :
- Configurer la connexion Snowflake dans Looker
- Modéliser les données Snowflake en utilisant LookML de Looker
- Gérer les utilisateurs et les rôles à travers Snowflake
- Implémenter la sécurité au niveau des lignes avec des vues sécurisées et des attributs d’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 accessibles de manière sécurisée et appropriée à travers l’organisation.
Il existe de nombreuses autres capacités avancées de l’intégration Snowflake Looker, telles que l’utilisation des PDTs (tables dérivées persistantes) de Looker, l’exploitation des clonages 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 détail au fur et à 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 données, de sécurité et de gouvernance, vous pouvez permettre à votre équipe d’obtenir des informations précieuses rapidement et en toute sécurité.