Pour connecter Looker à Snowflake, procédez comme suit :
- 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. Pour ce faire, consultez les options détaillées sur la page Sécurisation de l'accès à la base de données de la documentation.
Créer un utilisateur Looker sur Snowflake
Nous vous recommandons d'utiliser les commandes suivantes pour créer l'utilisateur Looker. Veillez à exécuter chaque ligne individuellement ou sélectionnez l'option All Queries (Toutes les requêtes) dans le panneau de connexion Snowflake pour vous assurer que toutes les lignes sont exécutées (par défaut, Snowflake n'exécute que les lignes sélectionnées) :

Nous vous recommandons d'ajouter le mot clé ON FUTURE à chaque instruction GRANT afin que les objets nouvellement créés disposent des mêmes autorisations sans qu'aucune autre action ne soit requise.
-- 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 souhaitez activer les explorations en libre-service sur votre connexion, vous devez également accorder CREATE STAGE au rôle Looker :
GRANT CREATE STAGE ON SCHEMA looker_scratch TO ROLE looker_role;
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. Les descriptions de paramètres suivantes contiennent des remarques spécifiques à Snowflake :
Paramètres de la base de données – Hôte : saisissez le nom d'hôte Snowflake. Il se présente comme suit :
<account_name>.snowflakecomputing.com. Consultez les exemples de noms de compte Snowflake par région pour vous assurer d'utiliser la bonne valeur pour votre déploiement.Paramètres de la base de données - Méthode d'authentification : sélectionnez l'une des méthodes d'authentification suivantes :
Le compte de base de données ne doit être utilisé que par les clients existants qui ont besoin de temps pour passer à une méthode d'authentification multifacteur avant la date limite de novembre 2025 fixée par Snowflake. Spécifiez le nom d'utilisateur et le mot de passe du compte utilisateur Snowflake qui sera utilisé pour se connecter à Looker.
Paire de clés : à utiliser par les clients qui souhaitent implémenter l'authentification par paire de clés de Snowflake pour se connecter à leur base de données. Dans le champ Nom d'utilisateur, spécifiez le compte utilisateur qui sera utilisé pour se connecter à Snowflake. Importez un fichier de clé chiffré ou non chiffré au format p8 dans le champ Fichier de paire de clés. La documentation de Snowflake explique comment créer un fichier de clé privée. Si vous importez un fichier p8 chiffré, procédez comme suit :
- Activez l'option La paire de clés est chiffrée.
- Spécifiez le mot de passe du fichier p8 dans le champ Mot de passe de déchiffrement du fichier de paire de clés.
OAuth doit être utilisé par les clients qui n'ont pas besoin de tables dérivées persistantes (PDT) et qui souhaitent configurer OAuth pour la connexion.
Paramètres facultatifs - Paramètres JDBC supplémentaires : ajoutez des paramètres JDBC supplémentaires à partir du pilote JDBC Snowflake. Pour obtenir la liste des paramètres compatibles, consultez la section Paramètres JDBC compatibles sur cette page.
- Ajoutez
warehouse=<YOUR WAREHOUSE NAME>. De plus, par défaut, Looker définit les paramètres Snowflake suivants pour chaque session :
TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZJDBC_TREAT_DECIMAL_AS_INT=FALSETIMESTAMP_INPUT_FORMAT=AUTOAUTOCOMMIT=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
Paramètres facultatifs - Activer les PDT : les PDT ne sont pas compatibles avec les connexions Snowflake qui utilisent l'authentification OAuth. Si vous avez besoin de tables dérivées persistantes, utilisez plutôt l'option d'authentification Paire de clés.
Paramètres facultatifs – Activer les remplacements pour les PDT : les remplacements pour les PDT sont compatibles avec les connexions Snowflake. Vous pouvez ainsi saisir des paramètres JDBC distincts spécifiques aux processus PDT, tels que l'hôte, le port, la base de données, le nom d'utilisateur, le mot de passe, le schéma, les paramètres supplémentaires et les valeurs du champ Instructions post-connexion de remplacement pour les PDT. Vous pouvez utiliser l'authentification par paire de clés dans les remplacements de PDT en procédant comme suit :
- Importez un fichier de clé au format p8 chiffré ou non chiffré dans le champ Fichier de paire de clés de remplacement pour les PDT. La documentation de Snowflake explique comment créer un fichier de clé privée.
- Si vous importez un fichier p8 chiffré, spécifiez le mot de passe du fichier p8 dans le champ Mot de passe de remplacement pour les PDT.
Pour vérifier que la connexion est établie, cliquez sur le bouton Tester la connexion dans la section Détails de l'état en bas de la page Paramètres de connexion.
Si Looker affiche Can Connect (Connexion possible), appuyez sur Connect (Connecter) pour créer la connexion.
Votre connexion de base de données est ensuite ajoutée à la liste sur la page Connexions de la section Admin de Looker.
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 groupes Looker individuels. Cela est utile, par exemple, si vous avez des utilisateurs qui ont besoin de différents niveaux de puissance de calcul. Vous pouvez attribuer un entrepôt disposant de ressources de calcul plus importantes aux utilisateurs qui en ont besoin, tout en attribuant un entrepôt disposant de moins de ressources aux utilisateurs ayant des besoins moindres.
Pour désigner des entrepôts par groupe ou par utilisateur, procédez comme suit :
- Ajoutez les groupes ou les utilisateurs dans Looker.
Définissez un attribut utilisateur dans Looker où les noms des entrepôts Snowflake seront stockés. Vous pouvez donner à cet attribut le nom de votre choix, par exemple
snowflake_wh.
Dans l'attribut utilisateur que vous venez de définir, attribuez les valeurs de nom d'entrepôt aux groupes ou aux utilisateurs qui auront besoin d'un accès différent à l'entrepôt.

Dans le champ Paramètres JDBC supplémentaires de la page Paramètres de connexion, ajoutez ce qui suit en remplaçant
snowflake_warehousepar le nom de l'attribut utilisateur que vous avez défini :warehouse={{ _user_attributes['snowflake_warehouse'] }}Pour tester les paramètres de connexion individuels, vous pouvez utiliser sudo en tant qu'utilisateur auquel vous avez attribué une valeur de nom d'entrepôt.
Gérer la fonctionnalité de suspension automatique de Snowflake
Les entrepôts Snowflake disposent d'une fonctionnalité de suspension automatique qui est 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 (normalement, ces erreurs n'entraînent l'affichage d'aucune donnée), mais elle est visible par tout utilisateur qui effectue une requête avec la page Explorer.
Deux méthodes sont généralement utilisées pour gérer cela :
Snowflake dispose d'une fonctionnalité de reprise automatique qui réactive l'entrepôt lorsqu'il est interrogé. Toutefois, la reprise de l'entrepôt peut prendre jusqu'à cinq minutes, ce qui entraîne l'arrêt des requêtes pendant cinq minutes avant qu'elles ne soient renvoyées. La reprise automatique ne peut pas être configurée dans Looker. Activez cette fonctionnalité dans l'onglet Warehouses (Entrepôts) de l'interface utilisateur Snowflake :

Si les tables dérivées persistantes (PDT) ont été activées, le paramètre par défaut de Looker consiste à vérifier la régénération des tables dérivées toutes les cinq minutes. Cette vérification permet de maintenir les entrepôts Snowflake actifs. Toutefois, vous pouvez demander à Snowflake de suspendre les entrepôts en dehors des heures de travail afin de réduire les coûts. Pour ce faire, modifiez le calendrier de régénération des PDT, comme décrit dans la documentation sur le calendrier de maintenance.
Compatibilité avec les PDT
Les tables PDT ne sont pas prises en charge pour les connexions Snowflake utilisant OAuth.
Pour la prise en charge des 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 et au schéma temporaire que Looker utilisera pour créer des PDT. Sur la page Paramètres des connexions de Looker, dans l'onglet Paramètres facultatifs, sous la section Paramètres des 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.
Pour les connexions Snowflake, Looker définit la valeur du paramètre AUTOCOMMIT de Snowflake sur TRUE, qui est la valeur par défaut de Snowflake. AUTOCOMMIT est nécessaire pour les commandes SQL exécutées par Looker afin de gérer son système d'inscription des tables PDT.
Configurer OAuth pour les connexions Snowflake
Looker prend en charge OAuth pour les connexions Snowflake, ce qui signifie que chaque utilisateur Looker s'authentifie auprès de la base de données avec son propre compte utilisateur OAuth.
OAuth permet aux administrateurs de bases de données d'effectuer les tâches suivantes :
- faire un audit des utilisateurs Looker qui exécutent des requêtes par rapport à la base de données ;
- mettre en place des contrôles d'accès basés sur les rôles en utilisant des autorisations au niveau de la base de données ;
- utiliser des jetons OAuth pour tous les processus et actions qui accèdent à la base de données, au lieu d'intégrer des identifiants et des mots de passe de base de données à plusieurs endroits.
- Révoquer l'autorisation d'un utilisateur donné directement via la base de données
Avec les connexions Snowflake qui utilisent OAuth, les utilisateurs doivent se reconnecter régulièrement lorsque leurs jetons OAuth expirent. L'âge maximal des jetons OAuth Snowflake est défini via Snowflake lui-même.
Notez les points suivants concernant les connexions OAuth au niveau de la base de données :
- Les tables dérivées persistantes (PDT) ne sont pas compatibles avec les connexions Snowflake utilisant OAuth.
- Si un utilisateur laisse son jeton OAuth expirer, toutes les planifications ou alertes Looker qu'il possède seront affectées. Pour éviter cela, Looker envoie un e-mail de notification au propriétaire de chaque planification et de chaque alerte 14 jours, 7 jours et 1 jour avant l'expiration du jeton. L'utilisateur peut accéder à sa page utilisateur Looker pour autoriser à nouveau Looker à accéder à 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 à la base de données qui utilisent OAuth fonctionnent "par utilisateur", la mise en cache des règles fonctionne de la même manière, et pas seulement par requête. Cela signifie que Looker n'utilisera les résultats mis en cache que si le même utilisateur a exécuté la même requête au cours de 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 passer d'un rôle à un autre dans le compte utilisateur Snowflake. Comme décrit dans la documentation Snowflake, Snowflake utilise le rôle par défaut du compte de l'utilisateur Snowflake, sauf si le rôle par défaut est ACCOUNTADMIN ou SECURITYADMIN. Ces rôles étant bloqués pour OAuth, Snowflake utilisera le rôle PUBLIC à la place. Pour en savoir plus, consultez la documentation Snowflake.
- Lorsqu'un administrateur Looker se substitue à un autre utilisateur, il utilise le jeton d'accès OAuth de cet utilisateur. Lorsque les utilisateurs autorisent une connexion OAuth dans Looker, une boîte de dialogue Autoriser la connexion OAuth les informe que les utilisateurs Looker privilégiés, tels que les administrateurs ou les développeurs, peuvent avoir accès à leurs données. Si le jeton d'accès de l'utilisateur a expiré, l'administrateur ne peut pas créer de nouveau jeton pour le compte de l'utilisateur faisant l'objet de la commande sudo. Pour en savoir plus sur l'utilisation de la commande
sudo, consultez la page de documentation Utilisateurs.
Configurer une base de données Snowflake pour OAuth avec Looker
Pour créer une connexion Snowflake à Looker à l'aide d'OAuth, vous devez configurer l'intégration OAuth dans Snowflake. Pour cela, vous devez disposer d'un compte utilisateur Snowflake avec l'autorisation ACCOUNTADMIN.
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 contiendra un
OAUTH_CLIENT_IDet unOAUTH_CLIENT_SECRETdont vous aurez besoin plus tard dans cette procédure.Dans Looker, créez une connexion à votre entrepôt Snowflake, comme décrit dans la section Créer la connexion Looker à votre base de données de cette page. 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_IDetOAUTH_CLIENT_SECRETque vous avez obtenues à partir de votre base de données plus tôt dans cette procédure.Poursuivez le reste de la procédure pour connecter Looker à votre base de données.
Tester la connexion OAuth
Une fois que vous avez configuré la connexion de Looker à votre base de données, vous pouvez la tester de l'une des manières suivantes :
- Sélectionnez le bouton Tester en bas de la page Paramètres de connexion, comme décrit sur la page de documentation Connecter Looker à votre base de données.
- Sélectionnez le bouton Tester à côté de la connexion sur la page d'administration Connexions, comme décrit 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, passez en 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
connectiondu modèle par le nom de la nouvelle connexion Snowflake, puis enregistrez le fichier de modèle. - Ouvrez l'un des tableaux de bord ou l'une des explorations 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 instructions de connexion pour Snowflake et saisissez vos identifiants Snowflake.
Une fois que vous vous êtes connecté à Snowflake, Looker vous redirige vers 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 d'explorations, de tableaux de bord, de Looks et de l'exécuteur SQL.

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, procédez comme suit :

- Cliquez sur le menu utilisateur de Looker.
- Sélectionnez Compte.
- Sur la page Compte, accédez à la section Identifiants de connexion OAuth, puis sélectionnez le bouton Se connecter pour la base de données Snowflake appropriée.
Si vous sélectionnez Se connecter, une boîte de dialogue Autoriser la connexion OAuth s'affiche dans Looker. Elle vous indique que l'autorisation de la connexion permet à l'instance Looker d'accéder aux données en votre nom, et que les utilisateurs Looker privilégiés, tels que les administrateurs ou les développeurs, peuvent avoir accès à vos données. Sélectionnez Autoriser pour accéder à la boîte de dialogue de connexion Snowflake. (Looker stocke ce consentement dans l'espace de stockage local de votre navigateur. Si vous videz l'espace de stockage local, la boîte de dialogue s'affiche de nouveau la prochaine fois que vous démarrez un flux d'autorisation OAuth.) Saisissez vos identifiants Snowflake, sélectionnez Se connecter, puis Autoriser pour permettre à Looker d'accéder à votre compte Snowflake.
Une fois que vous vous êtes connecté à Snowflake via Looker, vous pouvez vous déconnecter ou réautoriser vos identifiants à tout moment depuis la page Compte, comme décrit sur la page de documentation Personnaliser votre compte utilisateur.
Commentaires de contexte pour les connexions Snowflake
Pour la plupart des dialectes de base de données, Looker ajoute des commentaires de contexte SQL au début de chaque requête SQL sortante. Pour les connexions Snowflake, Looker ajoute des commentaires de contexte à la fin de chaque requête SQL plutôt qu'au début, car Snowflake supprime les commentaires de début.
Pour en savoir plus sur les commentaires de contexte et les champs qu'ils incluent, consultez Commentaires de contexte pour les requêtes SQL.
Paramètres JDBC compatibles
Pour Snowflake, Looker accepte les paramètres JDBC suivants dans le champ Paramètres JDBC supplémentaires de la connexion. Pour en savoir plus sur ces paramètres, consultez la documentation de votre base de données.
accountallowUnderscoresInHostapplicationauthenticatorAUTOCOMMITCLEAR_BATCH_ONLY_AFTER_SUCCESSFUL_EXECUTIONCLIENT_SESSION_KEEP_ALIVEdbdisableGcsDefaultCredentialsdisableOCSPChecksdisableSamlURLCheckdisableSocksProxyENABLE_WILDCARDS_IN_SHOW_METADATA_COMMANDSenablePatternSearchHTTP_CLIENT_CONNECTION_TIMEOUTHTTP_CLIENT_SOCKET_TIMEOUTIMPLICIT_SERVER_SIDE_QUERY_TIMEOUTinsecureModeJDBC_DEFAULT_FORMAT_DATE_WITH_TIMEZONEJDBC_GET_DATE_USE_NULL_TIMEZONEjdbc_use_session_timezoneJDBC_TREAT_DECIMAL_AS_INTloginTimeoutMAX_TLS_VERSIONmaxHttpRetriesMIN_TLS_VERSIONMULTI_STATEMENT_COUNTnetworkTimeoutnonProxyHosts: pour les instances Looker publiques, la valeur du paramètrenonProxyHostsdoit être l'adresse IP publique de l'instance.oauthAuthorizationUrl: pour les instances Looker publiques, la valeur du paramètreoauthAuthorizationUrldoit être l'adresse IP publique de l'instance.oauthClientIdoauthClientSecretoauthScopeoauthTokenRequestUrl: pour les instances Looker publiques, la valeur du paramètreoauthTokenRequestUrldoit être l'adresse IP publique de l'instance.ocspFailOpenOWNER_ONLY_STAGE_FILE_PERMISSIONS_ENABLEDpasscodepasscodeInPasswordpasswordprivate_keyprivate_key_base64private_key_pwdprivatekeyproxyHost: pour les instances Looker publiques, la valeur du paramètreproxyHostdoit être l'adresse IP publique de l'instance.proxyPasswordproxyPortproxyProtocolproxyUserQUERY_TAGqueryTimeoutQUOTED_IDENTIFIERS_IGNORE_CASEROLEschemaSTATEMENT_QUEUED_TIMEOUT_IN_SECONDSSTATEMENT_TIMEOUT_IN_SECONDSstringsQuotedForColumnDefTIMESTAMP_INPUT_FORMATTIMESTAMP_TYPE_MAPPINGTIMEZONEtokentracinguseProxyuserwarehouseWEEK_OF_YEAR_POLICYWEEK_STARTworkloadIdentityProvider
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 est compatible avec les fonctionnalités suivantes à partir de Looker 26.20 :
| Fonctionnalité | Compatibilité |
|---|---|
| Looker (Google Cloud Core) | |
| Agrégations symétriques | |
| Tables dérivées | |
| Tables dérivées SQL persistantes | |
| Tables dérivées natives persistantes | |
| Vues stables | |
| Arrêt des requêtes | |
| Pivots basés sur SQL | |
| Fuseaux horaires | |
| SSL | |
| Sous-totaux | |
| Paramètres JDBC supplémentaires | |
| Sensible à la casse | |
| Type de lieu | |
| Type de liste | |
| Centile | |
| Centile distinct | |
| Afficher les processus dans l'exécuteur SQL | |
| Décrire une table dans l'exécuteur SQL | |
| Afficher les index dans l'exécuteur SQL | |
| Sélectionner 10 dans l'exécuteur SQL | |
| Nombre d'exécuteurs SQL | |
| SQL Explain | |
| Identifiants OAuth 2.0 | |
| Commentaires sur le contexte | |
| Regroupement de connexions | |
| Résumés HLL | |
| Reconnaissance d'agrégats | |
| Augmentation de tables PDT | |
| Millisecondes | |
| Microsecondes | |
| Vues matérialisées | |
| Mesures de variation par période | |
| Nombre approximatif d'éléments distincts | |
| Modèles d'analyse dans la base de données | |
| Agendas personnalisés |
Étapes suivantes
Après avoir connecté votre base de données à Looker, configurez des options de connexion pour vos utilisateurs.