Suivez ces étapes pour connecter Looker à Snowflake:
- Créez un utilisateur Looker sur Snowflake et provisionnez l'accès.
- Configurez une connexion à une base de données dans Looker.
Chiffrement du trafic réseau
Il est recommandé de chiffrer le trafic réseau entre l'application Looker et votre base de données. Envisagez l'une des options décrites sur la page de documentation Activer l'accès sécurisé à la base de données.
Création d'un utilisateur Looker sur Snowflake
Nous vous recommandons d'utiliser les commandes suivantes pour créer l'utilisateur Looker. Assurez-vous d'exécuter chaque ligne individuellement.
Vous pouvez également ajouter le mot clé
ON FUTURE
pour conserver les instructionsGRANT
sur les objets nouvellement créés. Nous vous recommandons de l'exécuter pour les tables de tous les schémas que Looker utilisera afin de ne pas avoir à réexécuter les instructionsGRANT
lorsque des tables sont créées.
-- change role to ACCOUNTADMIN
use role ACCOUNTADMIN;
-- create role for looker
create role if not exists looker_role;
grant role looker_role to role SYSADMIN;
-- Note that we are not making the looker_role a SYSADMIN,
-- but rather granting users with the SYSADMIN role to modify the looker_role
-- create a user for looker
create user if not exists looker_user
password = '<enter password here>';
grant role looker_role to user looker_user;
alter user looker_user
set default_role = looker_role
default_warehouse = 'looker_wh';
-- change role
use role SYSADMIN;
-- create a warehouse for looker (optional)
create warehouse if not exists looker_wh
-- set the size based on your dataset
warehouse_size = medium
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;
grant all privileges
on warehouse looker_wh
to role looker_role;
-- grant read only database access (repeat for all database/schemas)
grant usage on database <database> to role looker_role;
grant usage on schema <database>.<schema> to role looker_role;
-- rerun the following any time a table is added to the schema
grant select on all tables in schema <database>.<schema> to role looker_role;
-- or
grant select on future tables in schema <database>.<schema> to role looker_role;
-- create schema for looker to write back to
use database <database>;
create schema if not exists looker_scratch;
use role ACCOUNTADMIN;
grant ownership on schema looker_scratch to role SYSADMIN revoke current grants;
grant all on schema looker_scratch to role looker_role;
Si vous collez les commandes précédentes de manière groupée dans le panneau de connexion Snowflake, cochez la case Toutes les requêtes pour vous assurer que toutes les lignes sont exécutées. Par défaut, Snowflake n'exécute que les lignes sélectionnées.
Créer la connexion Looker à votre base de données
Dans la section Admin de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.
Saisissez les informations de connexion. La majorité des paramètres sont communs à la plupart des dialectes de base de données. Pour en savoir plus, consultez la page de documentation Connecter Looker à votre base de données. Certains des paramètres sont décrits ci-dessous:
- Name (Nom) : attribuez un nom à la connexion. C'est ainsi que le modèle LookML référencera la connexion.
- Dialecte: sélectionnez Snowflake.
- Host (Hôte) : saisissez le nom d'hôte de Snowflake. Il ressemblera à ceci :
<account_name>.snowflakecomputing.com
. Consultez les exemples de noms de compte Snowflake par région pour vous assurer que vous utilisez la valeur adaptée à votre déploiement. - Port: la valeur par défaut est 443.
- Database (Base de données) : saisissez la base de données à utiliser par défaut. Ce champ est sensible à la casse.
- Schema (Schéma) : saisissez le schéma par défaut.
- Authentication (Authentification) : sélectionnez Database Account (Compte de base de données) ou OAuth :
- Dans le champ Database Account (Compte de base de données), indiquez le nom d'utilisateur et le mot de passe du compte utilisateur Snowflake qui servira à se connecter à Looker.
- Utilisez OAuth si vous souhaitez configurer OAuth pour la connexion.
- Activer les tables dérivées persistantes: utilisez ce bouton pour activer les tables dérivées persistantes (PDT). L'activation des PDT révèle des champs de PDT supplémentaires et la section Remplacements de PDT pour la connexion.
- Temp Database (Base de données temporaire) : si les PDT sont activées, définissez ce champ sur un schéma dans lequel l'utilisateur dispose de tous les droits pour créer, supprimer, renommer et modifier des tables.
- Nombre maximal de connexions par nœud: dans un premier temps, vous pouvez conserver la valeur par défaut de ce paramètre. Pour en savoir plus sur ce paramètre, consultez la section Nombre maximal de connexions par nœud de la page de documentation Connecter Looker à votre base de données.
- Estimation des coûts: permet d'estimer le coût des requêtes d'exploration, d'estimer le coût des requêtes SQL Runner et d'estimer les économies de calcul pour les requêtes de notoriété globale sur la connexion.
- Fuseau horaire de la base de données: fuseau horaire que votre base de données Snowflake utilise pour stocker les dates et les heures. La valeur par défaut est UTC. Cette opération est facultative.
- Query Time Zone (Fuseau horaire de la requête) : fuseau horaire dans lequel vous souhaitez que vos requêtes s'affichent. Par exemple, "Est des États-Unis" (Amérique – New York). Cette opération est facultative.
Paramètres JDBC supplémentaires: ajoutez des paramètres JDBC supplémentaires à partir du pilote JDBC Snowflake.
- Ajoutez
warehouse=<YOUR WAREHOUSE NAME>
. De plus, Looker définit par défaut les paramètres Snowflake suivants pour chaque session:
TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ
JDBC_TREAT_DECIMAL_AS_INT=FALSE
TIMESTAMP_INPUT_FORMAT=AUTO
AUTOCOMMIT=TRUE
Vous pouvez remplacer chacun de ces paramètres en définissant une autre valeur dans le champ Paramètres JDBC supplémentaires, par exemple:
&AUTOCOMMIT=FALSE
- Ajoutez
Pour vérifier que la connexion est établie, cliquez sur Tester. Consultez la page de documentation Tester la connectivité de la base de données pour obtenir des informations de dépannage.
Pour enregistrer ces paramètres, cliquez sur Connecter.
Désigner des entrepôts Snowflake par groupe ou par utilisateur
Vous pouvez utiliser les attributs utilisateur Looker pour attribuer des entrepôts Snowflake distincts à des utilisateurs ou à des groupes Looker individuels. Cela est utile, par exemple, si certains de vos utilisateurs ont besoin de différents niveaux de puissance de calcul. Vous pouvez attribuer un entrepôt disposant de ressources informatiques plus importantes uniquement aux utilisateurs qui en ont besoin, et attribuer un entrepôt avec moins de ressources aux utilisateurs ayant des besoins moindres.
Pour désigner des entrepôts par groupe ou par utilisateur:
- Ajoutez les groupes ou les utilisateurs dans Looker.
Définissez un attribut utilisateur dans Looker, où seront stockés les noms d'entrepôt Snowflake. Vous pouvez donner n'importe quel nom à cet attribut, par exemple
snowflake_wh
.Dans l'attribut utilisateur que vous venez de définir, attribuez les valeurs du nom de l'entrepôt aux groupes ou aux utilisateurs.
Dans le champ Paramètres JDBC supplémentaires de la page Paramètres de connexion, ajoutez ce qui suit, en remplaçant
snowflake_warehouse
par le nom de l'attribut utilisateur que vous avez défini:warehouse={{ _user_attributes['snowflake_warehouse'] }}
Exemple :
Pour tester les paramètres de connexion individuels, vous pouvez sudo en tant qu'utilisateur auquel vous avez attribué une valeur de nom d'entrepôt.
Pour obtenir des instructions plus détaillées sur cette procédure, consultez le blog Red Pill Analytics.
Fonctionnalité de suspension automatique de Snowflake
Les entrepôts Snowflake disposent d'une fonctionnalité de suspension automatique activée par défaut. Après une période spécifiée, l'entrepôt sera automatiquement suspendu. Si l'entrepôt est suspendu, toutes les requêtes génèrent une erreur. Cette erreur n'est pas visible sur les tableaux de bord (aucune donnée n'est normalement affichée), mais elle est visible lorsque vous effectuez une requête avec la page d'exploration.
Snowflake dispose également d'une fonctionnalité de reprise automatique qui réactive l'entrepôt lorsqu'il est interrogé. Toutefois, la réactivation de l'entrepôt peut prendre jusqu'à cinq minutes, entraînant le blocage des requêtes pendant cinq minutes avant le retour. Ces fonctionnalités ne peuvent pas être configurées dans Looker. Activez ces fonctionnalités dans l'onglet Entrepôts de l'interface utilisateur de Snowflake.
Prise en charge des PDT
Pour prendre en charge les tables dérivées persistantes, créez un compte utilisateur Snowflake pour les PDT qui dispose d'un accès en écriture à votre base de données, ainsi que le schéma temporaire que Looker utilisera pour les créer. Sur la page Paramètres de connexion de Looker, dans la section Tables dérivées persistantes (PDT), activez l'option Activer les PDT. Ensuite, dans le champ Base de données temporaire, saisissez le nom du schéma temporaire que Looker utilisera pour créer des PDT. Ensuite, dans la section Remplacements PDT, saisissez le nom d'utilisateur et le mot de passe de l'utilisateur de PDT. Pour en savoir plus, consultez la page de documentation Connecter Looker à votre base de données.
Les tables PDT ne sont pas compatibles avec les connexions en flocon de neige utilisant OAuth.
Pour les connexions à Snowflake, Looker définit la valeur du paramètre AUTOCOMMIT
sur TRUE
(qui est la valeur par défaut de Snowflake). AUTOCOMMIT est requis pour les commandes SQL exécutées par Looker afin de gérer son système d'enregistrement de tables dérivées persistantes.
Configurer OAuth pour les connexions à Snowflake
Looker prend en charge OAuth pour les connexions Snowflake, ce qui signifie que chaque utilisateur Looker s'authentifie sur Snowflake et autorise Looker à exécuter des requêtes sur la base de données avec son propre compte utilisateur Snowflake.
OAuth permet aux administrateurs de bases de données de :
- faire un audit des utilisateurs Looker qui exécutent des requêtes par rapport à la base de données ;
- Appliquez des contrôles d'accès basés sur les rôles à l'aide des autorisations Snowflake
- Utilisez des jetons OAuth pour tous les processus et actions qui accèdent à Snowflake, au lieu d'intégrer les ID et les mots de passe Snowflake à plusieurs endroits.
- Révoquez l'autorisation d'un utilisateur donné dans Snowflake.
Avec les connexions Snowflake utilisant OAuth, les utilisateurs doivent se reconnecter régulièrement lorsque leurs jetons OAuth expirent. La durée de validité des jetons OAuth de Snowflake est définie via Snowflake lui-même.
Notez les points suivants pour Snowflake avec OAuth:
- Si un utilisateur laisse expirer son jeton Snowflake, ses programmations et alertes seront affectées. Pour éviter cela, Looker enverra un e-mail de notification au propriétaire de chaque planification et de chaque alerte avant l'expiration du jeton OAuth actuel de Snowflake. Looker enverra ces notifications par e-mail 14 jours, 7 jours et un jour avant l'expiration du jeton. L'utilisateur peut accéder à sa page d'utilisateur Looker pour autoriser à nouveau Looker à la base de données et éviter toute interruption de ses planifications et alertes. Pour en savoir plus, consultez la page de documentation Personnaliser les paramètres d'un compte utilisateur.
- Étant donné que les connexions Snowflake utilisant OAuth sont définies "par utilisateur", les stratégies de mise en cache sont également définies par utilisateur et pas seulement par requête. Cela signifie qu'au lieu d'utiliser les résultats mis en cache chaque fois que la même requête est exécutée pendant la période de mise en cache, Looker n'utilise les résultats mis en cache que si le même utilisateur a exécuté la même requête pendant la période de mise en cache. Pour en savoir plus sur la mise en cache, consultez la page de documentation Mettre en cache des requêtes.
- Lorsque vous utilisez OAuth, vous ne pouvez pas changer de rôle dans le compte utilisateur Snowflake. Comme décrit dans la documentation de Snowflake, Snowflake utilise le rôle par défaut du compte utilisateur de Snowflake, sauf si le rôle par défaut est ADMINISTRATEUR DE COMPTE ou ADMINISTRATEUR DE SÉCURITÉ. Comme ces rôles sont bloqués pour OAuth, Snowflake utilisera à la place le rôle PUBLIC. Pour en savoir plus, consultez la documentation de Snowflake.
- Les tables dérivées persistantes (PDT) ne sont pas compatibles avec les connexions Snowflake avec OAuth.
- Lorsqu'ils passent par une commande sudo en tant qu'autre utilisateur, les administrateurs utilisent le jeton d'accès OAuth de cet utilisateur. Si le jeton d'accès de l'utilisateur a expiré, l'administrateur ne pourra pas demander qu'un nouveau jeton soit créé au nom de l'utilisateur faisant l'objet d'une commande Sudo. L'utilisateur devra se connecter à Snowflake et autoriser à nouveau Looker. Consultez la page de documentation Utilisateurs pour en savoir plus sur l'utilisation de la commande
sudo
.
Configuration d'une base de données Snowflake pour OAuth avec Looker
Pour créer une connexion Snowflake avec Looker à l'aide d'OAuth, vous devez configurer l'intégration OAuth dans Snowflake. Un compte utilisateur Snowflake avec l'autorisation ACCOUNTADMIN est nécessaire.
Exécutez la commande suivante dans Snowflake, où
<looker_hostname>
est le nom d'hôte de votre instance Looker:CREATE SECURITY INTEGRATION LOOKER TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = LOOKER OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
Obtenez l'ID client et le code secret OAuth en exécutant la commande suivante:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
La réponse comporte un
OAUTH_CLIENT_ID
et unOAUTH_CLIENT_SECRET
dont vous aurez besoin dans la suite de cette procédure.Dans Looker, créez une connexion à votre entrepôt Snowflake, comme décrit dans la page de documentation Connecter Looker à votre base de données. Lorsque vous créez la connexion, sélectionnez l'option OAuth dans le champ Authentification. Lorsque vous sélectionnez l'option OAuth, Looker affiche les champs ID client OAuth et Code secret du client OAuth.
Collez les valeurs
OAUTH_CLIENT_ID
etOAUTH_CLIENT_SECRET
que vous avez obtenues dans votre base de données plus tôt dans cette procédure.Terminez la procédure pour connecter Looker à votre base de données.
Une fois que vous avez configuré la connexion de Looker à votre base de données, vous pouvez tester la connexion elle-même en effectuant l'une des opérations suivantes:
- Sélectionnez le bouton Tester en bas de la page Paramètres de connexion, comme décrit dans la page de documentation Connecter Looker à votre base de données.
- Sélectionnez le bouton Tester à côté de la liste des connexions sur la page d'administration des connexions, comme indiqué sur la page de documentation Connexions.
Vous pouvez également tester la connexion et la déployer sur un modèle en procédant comme suit:
- Dans Looker, accédez au mode Développement.
- Accédez aux fichiers d'un projet Looker qui utilise votre connexion à Snowflake.
- Ouvrez un fichier de modèle et remplacez la valeur
connection
du modèle par le nom de la nouvelle connexion Snowflake, puis enregistrez le fichier de modèle. - Ouvrez l'une des explorations ou l'un des tableaux de bord du modèle, puis exécutez une requête. Lorsque vous essayez d'exécuter une requête, Looker vous invite à vous connecter à Snowflake.
- Suivez les invites de connexion pour Snowflake et saisissez vos identifiants Snowflake.
Une fois que vous êtes connecté à Snowflake, Looker vous renvoie à votre requête. Si votre requête s'exécute correctement, vous pouvez valider la nouvelle valeur de connexion et déployer vos modifications en production.
Se connecter à Snowflake pour exécuter des requêtes
Une fois que la connexion à Snowflake est configurée pour OAuth, les utilisateurs sont invités à se connecter à Snowflake avant d'exécuter des requêtes. Cela inclut les requêtes provenant des explorations, des tableaux de bord, des Looks et de SQL Runner.
Les utilisateurs peuvent également se connecter à Snowflake depuis la section Identifiants de connexion OAuth de leur page Compte.
Pour vous connecter à votre compte Snowflake à l'aide de Looker:
- Cliquez sur le menu utilisateur de Looker.
- Sélectionnez Compte.
- Faites défiler la page Compte jusqu'à la section Identifiants de connexion OAuth, puis cliquez sur le bouton Connexion pour la base de données Snowflake souhaitée.
Une fenêtre contextuelle de connexion à Snowflake s'affiche. Saisissez vos identifiants Snowflake, sélectionnez Se connecter, puis Autoriser pour permettre à Looker d'accéder à votre compte Snowflake.
Une fois que vous êtes connecté à Snowflake via Looker, vous pouvez vous déconnecter ou autoriser de nouveau vos identifiants à tout moment sur la page Compte, comme décrit dans la page de documentation Personnaliser votre compte utilisateur.
Prise en charge de fonctionnalités
Pour que Looker prenne en charge certaines fonctionnalités, votre dialecte de base de données doit également les prendre en charge.
Snowflake prend en charge les fonctionnalités suivantes à partir de Looker 24.8:
Sélection | Compatible ? |
---|---|
Niveau d'assistance | Compatible |
Looker (Google Cloud Core) | Oui |
Agrégations symétriques | Oui |
Tables dérivées | Oui |
Tables dérivées SQL persistantes | Oui |
Tables dérivées natives persistantes | Oui |
Vues stables | Oui |
Arrêt de la requête | Oui |
Tableaux croisés dynamiques basés sur SQL | Oui |
Fuseaux horaires | Oui |
SSL | Oui |
Sous-totaux | Oui |
Paramètres JDBC supplémentaires | Oui |
Sensible à la casse | Oui |
Type d'emplacement | Oui |
Type de liste | Oui |
Centile | Oui |
Centile distinct | Non |
Processus d'affichage de l'exécuteur SQL | Non |
Table de description de l'exécuteur SQL | Oui |
Afficher les index de l'exécuteur SQL | Non |
SQL Runner Select 10 | Oui |
Nombre d'exécuteurs SQL | Oui |
SQL Explain | Oui |
Identifiants OAuth | Oui |
Commentaires sur le contexte | Oui |
Pooling de connexions | Oui |
Croquis HLL | Oui |
Reconnaissance d'agrégats. | Oui |
Augmentation de tables PDT | Oui |
Millisecondes | Oui |
Microsecondes | Oui |
Vues matérialisées | Non |
Nombre approximatif distinct | Non |
Étapes suivantes
Après avoir connecté votre base de données à Looker, configurez les options de connexion de vos utilisateurs.