Dialectes utilisant ces instructions
Looker se connecte aux bases de données Impala suivantes :
- Cloudera Impala 3.1 ou version ultérieure
- Cloudera Impala 3.1+ avec pilote natif
- Cloudera Impala avec pilote natif
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 de documentation Sécurisation de l'accès à la base de données.
Configurer Looker pour se connecter à Cloudera Impala
Looker se connecte aux bases de données via une connexion JDBC. Pour les bases de données Impala, Looker se connecte par défaut au serveur qui exécute le daemon impalad
sur le port 21050. Pour en savoir plus, consultez la section Configurer Impala pour qu'il fonctionne avec JDBC de la documentation sur le site Web de Cloudera.
Dans la section Admin de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.
La configuration de la connexion Looker dépend de la sécurité utilisée :
- Cluster n'utilisant pas Kerberos ni l'authentification des utilisateurs
- Un cluster nécessitant une authentification LDAP
- Cluster sécurisé avec Kerberos, mais n'utilisant pas Apache Sentry
Se connecter à un cluster sans authentification Kerberos ni authentification de l'utilisateur
Pour configurer une connexion qui n'utilise pas Kerberos ni l'authentification des utilisateurs, procédez comme suit :
- Sur la page Paramètres de connexion, laissez les champs Nom d'utilisateur et Mot de passe vides. (Le
*
à côté des noms de champs indique que ces champs sont obligatoires, mais ils ne le sont pas.) - Dans le champ Paramètres JDBC supplémentaires, saisissez
;auth=noSasl
.
Vérifier la chaîne de connexion
Pour vérifier la chaîne de connexion JDBC dans les fichiers journaux, cliquez sur Admin (Administration) > Log (Journal) dans le menu de gauche de Looker. Filtrez ensuite le journal sur un terme tel que jdbc
ou noSasl
. La ligne de journal peut ressembler à ceci :
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Pour en savoir plus sur la configuration des bases de données Impala afin qu'elles fonctionnent avec JDBC, consultez la documentation sur le site Web externe de Cloudera.
Se connecter à un cluster nécessitant une authentification LDAP
Pour un cluster qui nécessite une authentification LDAP, y compris un cluster avec Apache Sentry et Kerberos, sur la page Paramètres de connexion, saisissez un nom d'utilisateur et un mot de passe ayant accès aux schémas auxquels Looker accédera.
Se connecter à un cluster sécurisé avec Kerberos, mais sans utiliser Apache Sentry
L'équipe d'analystes Looker peut avoir besoin de vous aider à configurer correctement cette connexion.
En général, l'authentification Kerberos avec les environnements Cloudera est gérée par Apache Sentry. Pour en savoir plus, consultez la documentation Cloudera.
Si vous souhaitez configurer Looker pour qu'il se connecte directement aux bases de données Impala à l'aide de l'authentification Kerberos, suivez les étapes décrites sur cette page.
Configurer le client Kerberos
Tout d'abord, vous devez vous assurer que plusieurs logiciels sont installés et que plusieurs fichiers sont présents sur la machine Looker.
Client Kerberos
Vérifiez que le client Kerberos est installé sur la machine Looker en essayant d'exécuter kinit
. Si le client Kerberos n'est pas installé, installez ses binaires.
Par exemple, sur Redhat/CentOS, cela correspondrait à :
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 doit être installé sur la machine Looker et dans les PATH
et JAVA_HOME
de l'utilisateur Looker. Si nécessaire, installez-le localement dans le répertoire looker
.
Java Cryptography Extension
Téléchargez et installez l'extension Java Cryptography Extension (JCE) pour Java 8 depuis le site Web d'Oracle.
- Recherchez le répertoire
jre/lib/security
pour l'installation de Java. - Supprimez les fichiers JAR suivants de ce répertoire :
local_policy.jar
etUS_export_policy.jar
. - Remplacez ces deux fichiers par les fichiers JAR inclus dans le téléchargement des fichiers de règles de juridiction JCE Unlimited Strength.
Il est possible d'utiliser des versions de Java antérieures à Java 8 avec le JCE installé, mais cela n'est pas recommandé.
- Recherchez le répertoire
Mettez à jour
JAVA_HOME
etPATH
dans~looker/.bash_profile
pour qu'ils pointent vers la bonne installation de Java etsource ~/.bash_profile
, ou déconnectez-vous et reconnectez-vous.Vérifiez la version de Java avec
java -version
.Vérifiez la variable d'environnement
JAVA_HOME
avececho $JAVA_HOME
.
gss-jaas.conf
Créez un fichier gss-jaas.conf
dans le répertoire looker
avec le contenu suivant :
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Si nécessaire pour les tests, debug=true
peut être ajouté à ce fichier comme suit :
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Le serveur sur lequel Looker est exécuté doit également disposer d'un fichier krb5.conf
valide. Par défaut, ce fichier se trouve dans /etc/krb5.conf
. Si elle se trouve à un autre emplacement, cela doit être indiqué dans l'environnement (KRB5_CONFIG
dans l'environnement shell).
Vous devrez peut-être le copier à partir d'une autre machine cliente Kerberos.
lookerstart.cfg
Pointez vers les fichiers gss-jaas.conf
et krb5.conf
en créant un fichier dans le répertoire looker
(le même répertoire que celui contenant le script de démarrage looker
) appelé lookerstart.cfg
et contenant les lignes suivantes :
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Si le fichier krb5.conf
ne se trouve pas à l'emplacement /etc/krb5.conf
, il faudra également ajouter la variable suivante :
-Djava.security.krb5.conf=/path/to/krb5.conf
Pour le débogage, ajoutez les variables suivantes :
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Redémarrez ensuite Looker avec ./looker restart
.
S'authentifier avec Kerberos
Authentification des utilisateurs
Si
krb5.conf
ne se trouve pas dans/etc/
, utilisez la variable d'environnementKRB5_CONFIG
pour indiquer son emplacement.Exécutez la commande
klist
pour vous assurer qu'il existe un ticket valide dans le cache de tickets Kerberos.S'il n'y a pas de ticket, exécutez
kinit username@REALM
oukinit username
pour le créer.Le compte utilisé avec Looker sera probablement sans interface utilisateur. Vous pouvez donc obtenir un fichier keytab depuis Kerberos pour stocker les identifiants à long terme. Utilisez une commande comme
kinit -k -t looker_user.keytab username@REALM
pour obtenir le ticket Kerberos.
Renouvellement automatique du billet
Configurez une job Cron qui s'exécute régulièrement pour conserver un ticket actif dans le cache de tickets Kerberos. La fréquence d'exécution dépend de la configuration du cluster. klist
doit indiquer la date d'expiration des billets.
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.
Renseignez les informations de connexion comme suit (pour en savoir plus, consultez la page de documentation Connecter Looker à votre base de données) :
- Nom : nom de la connexion. Il s'agit de la façon dont il sera fait référence à la connexion dans le modèle LookML.
Dialecte : Cloudera Impala 3.1+, Cloudera Impala 3.1+ avec pilote natif ou Cloudera Impala avec pilote natif.
Hôte : nom d'hôte.
Port : port de la base de données (21050 par défaut).
Base de données : schéma/base de données par défaut qui sera modélisé. Si aucune base de données n'est spécifiée pour une table, celle-ci sera utilisée par défaut.
Nom d'utilisateur : laissez ce champ vide.
Mot de passe : laissez ce champ vide.
Activer les PDT : utilisez ce bouton pour activer les tables dérivées persistantes. Lorsque les PDT sont activés, la fenêtre Connexion affiche des paramètres PDT supplémentaires et la section Remplacements pour les PDT.
Base de données temporaire : schéma/base de données temporaire pour stocker les PDT. Vous devez le créer à l'avance.
Paramètres JDBC supplémentaires : paramètres supplémentaires pour la chaîne JDBC. Indiquez le principal Kerberos ici, par exemple
;principal=impala/impala.company.com@REALM
. Les principes en trois parties sont la norme. Le premier (impala
) est généralement le nom du service, et le dernier (REALM
) est généralement le domaine.SSL : cochez cette case pour utiliser les connexions SSL. Si votre certificat SSL n'est pas émis par une autorité de certification largement reconnue et que vous utilisez un certificat personnalisé, vous devez :
- Copiez le fichier de certificat sur le serveur Looker. Cette fonctionnalité n'est disponible que pour les déploiements Looker hébergés par le client.
- Ajoutez les paramètres suivants au champ Paramètres JDBC supplémentaires :
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Pour en savoir plus sur la façon de créer les chaînes JDBC appropriées pour les bases de données Impala, consultez la documentation Cloudera.
- Fuseau horaire de la base de données : fuseau horaire des données stockées dans votre base de données. En général, vous pouvez laisser ce champ vide ou le définir sur UTC.
Il est recommandé que le nom du serveur (impala.company.com
dans cet exemple) soit le nom canonique du serveur et que la recherche DNS inversée de son adresse IP donne ce nom. Toutefois, le nom du serveur doit correspondre à celui indiqué dans le contrôleur de domaine Kerberos :
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
Il arrive que le nom du serveur soit défini sur le nom d'hôte et non sur le nom de domaine complet. Dans ce cas, il peut être nécessaire de modifier les fichiers /etc/hosts
et /etc/nsswitch.conf
pour s'assurer que les recherches inversées se résolvent comme prévu.
Testez la connexion pour vous assurer qu'elle est correctement configurée.
Débogage
- Documentation de Cloudera sur le débogage des problèmes d'authentification Impala
- Lorsque vous ajoutez le débogage à la configuration, les informations de débogage supplémentaires se retrouvent dans
looker/logs/looker.log
.
Ressources
- Activer l'authentification Kerberos pour Impala (documentation Cloudera)
- Consultez la page de manuel sur kinit.
- Consultez la page de manuel sur klist.
- Documentation gss-jaas.conf
- Documentation Krb5LoginModule
Autorisations pour les PDT
L'utilisateur qui se connecte au schéma temporaire pour les tables dérivées persistantes (PDT) doit disposer d'autorisations en lecture/écriture.
Compatibilité avec les fonctionnalités
Pour que Looker prenne en charge certaines fonctionnalités, votre dialecte de base de données doit également les prendre en charge.
Cloudera Impala avec pilote natif
Cloudera Impala avec pilote natif est compatible avec les fonctionnalités suivantes à partir de Looker 25.10 :
Fonctionnalité | Compatibilité |
---|---|
Niveau d'assistance | Compatible |
Looker (Google Cloud Core) | Non |
Agrégations symétriques | Non |
Tables dérivées | Oui |
Tables dérivées persistantes basées sur SQL | Oui |
Tables dérivées natives persistantes | Oui |
Vues stables | Oui |
Arrêt des requêtes | Oui |
Tableaux croisés dynamiques basés sur SQL | Oui |
Fuseaux horaires | Oui |
SSL | Oui |
Sous-totaux | Non |
Paramètres JDBC supplémentaires | Oui |
Sensibilité à la casse | Oui |
Type de lieu | Oui |
Type de liste | Non |
Centile | Non |
Centile distinct | Non |
Afficher les processus SQL Runner | Non |
Décrire la table dans SQL Runner | Oui |
Afficher les index dans SQL Runner | Non |
SQL Runner Select 10 | Oui |
Nombre d'exécutions SQL Runner | Oui |
Explication SQL | Oui |
Identifiants OAuth 2.0 | Non |
Commentaires contextuels | Oui |
Regroupement de connexions | Non |
Résumés HLL | Non |
Reconnaissance d'agrégats | Oui |
Augmentation de tables PDT | Non |
Millisecondes | Oui |
Microsecondes | Oui |
Vues matérialisées | Non |
Mesures de variation par période | Non |
Nombre approximatif d'éléments distincts | Oui |
Cloudera Impala 3.1 ou version ultérieure
À partir de Looker 25.10, Cloudera Impala 3.1+ est compatible avec les fonctionnalités suivantes :
Fonctionnalité | Compatibilité |
---|---|
Niveau d'assistance | Compatible |
Looker (Google Cloud Core) | Oui |
Agrégations symétriques | Oui |
Tables dérivées | Oui |
Tables dérivées persistantes basées sur SQL | Oui |
Tables dérivées natives persistantes | Oui |
Vues stables | Oui |
Arrêt des requêtes | Oui |
Tableaux croisés dynamiques basés sur SQL | Oui |
Fuseaux horaires | Oui |
SSL | Oui |
Sous-totaux | Non |
Paramètres JDBC supplémentaires | Oui |
Sensibilité à la casse | Oui |
Type de lieu | Oui |
Type de liste | Non |
Centile | Non |
Centile distinct | Non |
Afficher les processus SQL Runner | Non |
Décrire la table dans SQL Runner | Oui |
Afficher les index dans SQL Runner | Non |
SQL Runner Select 10 | Oui |
Nombre d'exécutions SQL Runner | Oui |
Explication SQL | Oui |
Identifiants OAuth 2.0 | Non |
Commentaires contextuels | Oui |
Regroupement de connexions | Non |
Résumés HLL | Non |
Reconnaissance d'agrégats | Oui |
Augmentation de tables PDT | Non |
Millisecondes | Oui |
Microsecondes | Oui |
Vues matérialisées | Non |
Mesures de variation par période | Non |
Nombre approximatif d'éléments distincts | Oui |
Cloudera Impala 3.1+ avec pilote natif
À partir de Looker 25.10, Cloudera Impala 3.1+ avec pilote natif est compatible avec les fonctionnalités suivantes :
Fonctionnalité | Compatibilité |
---|---|
Niveau d'assistance | Compatible |
Looker (Google Cloud Core) | Non |
Agrégations symétriques | Oui |
Tables dérivées | Oui |
Tables dérivées persistantes basées sur SQL | Oui |
Tables dérivées natives persistantes | Oui |
Vues stables | Oui |
Arrêt des requêtes | Oui |
Tableaux croisés dynamiques basés sur SQL | Oui |
Fuseaux horaires | Oui |
SSL | Oui |
Sous-totaux | Non |
Paramètres JDBC supplémentaires | Oui |
Sensibilité à la casse | Oui |
Type de lieu | Oui |
Type de liste | Non |
Centile | Non |
Centile distinct | Non |
Afficher les processus SQL Runner | Non |
Décrire la table dans SQL Runner | Oui |
Afficher les index dans SQL Runner | Non |
SQL Runner Select 10 | Oui |
Nombre d'exécutions SQL Runner | Oui |
Explication SQL | Oui |
Identifiants OAuth 2.0 | Non |
Commentaires contextuels | Oui |
Regroupement de connexions | Non |
Résumés HLL | Non |
Reconnaissance d'agrégats | Oui |
Augmentation de tables PDT | Non |
Millisecondes | Oui |
Microsecondes | Oui |
Vues matérialisées | Non |
Mesures de variation par période | Non |
Nombre approximatif d'éléments distincts | Oui |
Étapes suivantes
Après avoir connecté votre base de données à Looker, configurez des options de connexion pour vos utilisateurs.