PrestoDB et Trino

Cette page explique comment connecter Looker à PrestoDB ou à Trino.

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.

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 :

  • Dialecte : sélectionnez PrestoDB ou Trino.

    PrestoSQL a été renommé Trino. Si vous utilisez une version de Trino antérieure à 352, sélectionnez PrestoSQL dans le menu dialecte de Looker.

  • Host (Hôte) : nom d'hôte de la base de données.

  • Port: port de base de données. Le port par défaut est 8080.

  • Database (Base de données) : le "catalogue" ou « connecteur », en termes de Presto.

  • Nom d'utilisateur : nom de l'utilisateur qui exécutera les requêtes.

    Ces informations ne sont envoyées au serveur de base de données que si SSL est activé.

  • Password (Mot de passe) : mot de passe de l'utilisateur qui exécutera les requêtes.

    Ces informations ne sont envoyées au serveur de base de données que si SSL est activé.

  • Schéma : schéma par défaut à utiliser lorsqu'aucun schéma n'est spécifié.

  • Authentification : sélectionnez Compte de base de données ou OAuth :

    • Utilisez Compte de base de données pour spécifier le nom d'utilisateur et le mot de passe du compte utilisateur de la base de données qui sera utilisé pour se connecter à Looker.
    • Utilisez OAuth si vous souhaitez configurer OAuth pour la connexion.
  • Activer les tables dérivées persistantes: activez ce bouton pour activer les tables dérivées persistantes (PDT). Cela déploie les champs PDT supplémentaires et la section Remplacements de PDT pour la connexion.

  • Base de données temporaire : schéma pour écrire les tables PDT. (La version 3.50 a inclus une prise en charge des tables PDT avec Presto. Pour plus d'informations sur la configuration de PrestoDB ou Trino pour les tables PDT, consultez la section Configuration de PrestoDB ou Trino pour les tables PDT de cette page.

  • Paramètres JDBC supplémentaires: tout paramètre supplémentaire provenant du pilote JDBC PrestoDB, du pilote JDBC Trino ou du pilote JDBC Starsplash.

  • SSL: cochez cette option pour activer les connexions SSL.

  • Vérifier le protocole SSL : ignorez ce champ. Toutes les connexions SSL utilisent le truststore Java par défaut, sauf si vous indiquez le contraire avec les paramètres JDBC PrestoDB, le pilote JDBC Trino ou le pilote JDBC Starburst. Saisissez ces paramètres dans le champ Paramètres JDBC supplémentaires.

Pour vérifier que la connexion est établie, cliquez sur Test. 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.

Pour en savoir plus sur les paramètres de connexion, consultez la page de documentation Connecter Looker à votre base de données.

Configuration de PrestoDB ou Trino pour les tables PDT

Les tables PDT ne sont pas prises en charge pour les connexions qui utilisent OAuth.

La prise en charge des tables PDT dépend du connecteur utilisé avec PrestoDB ou Trino. Cette section expose les paramètres de configuration requis pour une base de données entièrement nouvelle. Cet exemple suppose que le connecteur que vous utilisez est hive.

Le fichier de propriétés du catalogue Hive doit contenir quelques propriétés de configuration, décrites dans cette section.

La propriété suivante est requise car Presto place en mémoire cache les résultats de metastore Hive et Looker doit pouvoir consulter les tables immédiatement :

hive.metastore-cache-ttl = 0s

Les deux propriétés suivantes sont requises car Looker doit pouvoir supprimer et renommer les tables PDT :

hive.allow-rename-table=true
hive.allow-drop-table=true

Pour référence, dans nos serveurs internes de test Presto, nous utilisons le fichier hive.properties suivant, qui est utilisé pour tous les schémas Hive :

hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true

Configurer OAuth pour les connexions Trino

Looker prend en charge OAuth pour les connexions Trino. Ainsi, chaque utilisateur Looker peut s'authentifier dans la base de données et autoriser Looker à exécuter des requêtes sur la base de données avec son propre compte utilisateur OAuth.

OAuth permet aux administrateurs de base 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 ;
  • Appliquer des contrôles d'accès basés sur les rôles à l'aide d'autorisations au niveau de la base de données
  • Utiliser des jetons OAuth pour tous les processus et toutes les actions qui accèdent à la base de données, au lieu d'intégrer les ID et les 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 Trino qui utilisent OAuth, les utilisateurs doivent se reconnecter régulièrement lorsque leurs jetons OAuth expirent.

Notez les points suivants concernant les connexions OAuth au niveau de la base de données :

  • Si un utilisateur laisse son jeton OAuth expirer, toutes les planifications ou alertes qu'il possède seront affectées. Pour éviter cela, Looker envoie une notification par e-mail au propriétaire de chaque calendrier et de chaque alerte avant l'expiration du jeton OAuth actif actuel. Looker enverra ces e-mails de notification 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 ainsi éviter toute interruption de ses planifications et alertes. Pour en savoir plus, consultez la page de documentation Personnaliser les paramètres des comptes utilisateur.
  • Étant donné que les connexions à la base de données utilisant OAuth sont « par utilisateur », les stratégies de mise en cache sont également par utilisateur et pas seulement par requête. Autrement dit, au lieu d'utiliser des résultats mis en cache lorsque la même requête est exécutée au cours de la période de mise en cache, Looker utilise les résultats mis en cache uniquement 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.
  • Les tables dérivées persistantes (PDT) ne sont pas compatibles avec les connexions Trino avec OAuth.
  • Lorsqu'un administrateur Looker exécute une commande sudo en tant qu'utilisateur, il utilise le jeton d'accès OAuth de cet utilisateur. Si le jeton d'accès de l'utilisateur a expiré, l'administrateur ne peut pas en créer de nouveau au nom de l'utilisateur ayant effectué la commande Sudo. Pour plus d'informations sur l'utilisation de la commande sudo, consultez la page de documentation Utilisateurs.
  • Lorsque vous vous connectez à Azure AD depuis Looker à l'aide du protocole OAuth, Looker n'affiche pas de boîte de dialogue explicite de recueil du consentement de l'utilisateur. En configurant OAuth avec Looker, vous autorisez implicitement votre instance Looker à accéder à vos données Trino.

Enregistrer une application

Pour activer OAuth pour Trino, enregistrez d'abord une application auprès d'un fournisseur d'identité compatible. Looker n'est compatible qu'avec Microsoft Entra ID (anciennement Azure AD) pour OAuth avec Trino.

Prérequis

  • Vous devez disposer d'un abonnement Azure.
  • Vous devez disposer d'autorisations administratives dans Microsoft Entra ID.

Pour enregistrer une application, procédez comme suit :

  1. Accédez au portail Azure et connectez-vous avec vos identifiants.
  2. Dans la barre de recherche du portail Azure, recherchez "Microsoft Entra ID". et sélectionnez-le dans les résultats.
  3. Dans le service d'ID Microsoft Entra, cliquez sur Nouvel enregistrement dans la section Enregistrements d'applications de la catégorie Gérer.
  4. Remplissez le formulaire d'inscription comme suit:
    • Name (Nom) : indiquez un nom descriptif pour l'application, par exemple Looker Trino Connection.
    • Types de comptes compatibles : sélectionnez l'option appropriée en fonction de la façon dont vous souhaitez restreindre l'accès. Pour un cas d'utilisation interne, vous pouvez sélectionner Comptes dans cet annuaire organisationnel uniquement.
    • URI de redirection : sélectionnez la plate-forme Web, puis saisissez votre URI de redirection Looker. Il doit ressembler à ceci : https://YOUR_LOOKER_HOSTNAME/external_oath/redirect.
  5. Cliquez sur S'inscrire.
  6. Rassemblez l'ID client, l'ID de locataire et le code secret du client pour les saisir dans votre connexion Looker plus tard.
    • Vous trouverez le Client-ID et l'ID du locataire sur la page Vue d'ensemble.
    • Si vous ne connaissez pas votre secret client, vous devez en créer un. Cliquez sur Certificats et secrets dans la section Gérer, puis cliquez sur Nouveau code secret du client.
  7. Cliquez sur Exposer une API dans la section Gérer.
  8. À côté de l'option URI de l'ID application, cliquez sur Ajouter.
  9. Saisissez votre ID client. Il doit être au format suivant: api://CLIENT_ID.

Ensuite, suivez ces étapes dans le portail Azure pour créer un champ d'application à utiliser avec Looker:

  1. Cliquez sur Ajouter un champ d'application dans la section Champs d'application définis par cette API.
  2. Ajoutez un nom de champ d'application pour le nouveau champ d'application. Looker s'attend à ce que le nom de votre niveau d'accès soit le suivant: TrinoUsers.Read.All.

    Le nom TrinoUsers.Read.All implique des autorisations en lecture seule, mais le nom lui-même ne définit ni n'applique aucune autorisation. Assurez-vous de configurer la portée pour n'autoriser que l'accès en lecture à votre base de données.

  3. Ajoutez un nom à afficher et une description.

  4. Dans le sélecteur Qui peut donner son consentement ?, sélectionnez Administrateurs et utilisateurs.

  5. Cliquez sur Ajouter un champ d'application.

  6. Dans la section Applications clientes autorisées, cliquez sur Ajouter une application cliente.

  7. Saisissez votre ID client et la portée que vous venez de créer.

  8. Cliquez sur Add application (Ajouter une application).

Pour accorder à Looker les autorisations d'API nécessaires, procédez comme suit :

  1. Dans la section Gérer, cliquez sur Autorisations des API.
  2. Cliquez sur Ajouter une autorisation.
  3. Sélectionnez l'onglet Mes API en haut de la page.
  4. Dans la liste des enregistrements d'applications, sélectionnez l'enregistrement que vous venez de créer, par exemple Looker Trino Connection.
  5. Cochez la case Autorisations déléguées.
  6. Cochez la case TrinoUsers.Read.All.
  7. Sélectionnez Ajouter une autorisation.

Configurer la base de données pour utiliser OAuth

Pour configurer votre base de données Trino pour qu'elle utilise OAuth, ajoutez les lignes suivantes à votre fichier config.properties Trino. (Remplacez les cinq premières lignes de variables en majuscules par vos propres valeurs.)

  • YOUR_HTTPS_PORT
  • PATH_TO_YOUR_SSL_CERTIFICATE
  • YOUR_TENANT_ID
  • YOUR_CLIENT_ID
  • YOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE

# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used

# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false

# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used

# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID

# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET

# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true

Se connecter pour exécuter des requêtes

Une fois la connexion à la base de données configurée pour utiliser OAuth, les utilisateurs sont invités à se connecter à Microsoft Entra ID 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 à Microsoft Entra ID depuis la section Identifiants de connexion OAuth de leur page Compte.

Pour vous connecter à Microsoft Entra ID à l'aide de Looker :

  1. Cliquez sur le menu utilisateur Looker.
  2. Sélectionnez Compte.
  3. Sur la page Compte, cliquez sur Se connecter dans la section Identifiants de connexion OAuth.

Cette action affichera une boîte de dialogue de connexion. Saisissez vos identifiants Microsoft Entra ID et sélectionnez Se connecter pour autoriser Looker à accéder à votre compte de base de données.

Une fois que vous vous êtes connecté à Microsoft Entra ID via Looker, vous pouvez vous déconnecter ou réautoriser vos identifiants à tout moment sur la page Compte, comme décrit sur la page de documentation Personnaliser votre compte utilisateur.

Référence

Pour en savoir plus sur la configuration de votre connecteur Hive, consultez Connecteur Hive PrestoDB, Connecteur Hive Trino ou Connecteur Hive Starburst.

Compatibilité des caractéristiques

Pour que Looker prenne en charge certaines fonctionnalités, votre dialecte de base de données doit également les prendre en charge.

À partir de la version 24.16 de Looker, PrestoDB prend en charge les fonctionnalités suivantes:

Caractéristique Compatibilité
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
Suppression des requêtes
Oui
Pivots basés sur SQL
Oui
Fuseaux horaires
Oui
SSL
Oui
Sous-totaux
Oui
Paramètres supplémentaires JDBC
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
Oui
Table de description de l'exécuteur SQL
Oui
Indexes de l'exécuteur SQL
Non
SQL Runner Select 10
Oui
Nombre d'exécuteurs SQL
Oui
SQL Explain
Oui
Identifiants Oauth
Non
Commentaires sur le contexte
Oui
Regroupement de connexions
Non
HLL Sketches
Oui
Reconnaissance d'agrégats.
Oui
Augmentation de tables PDT
Non
Millisecondes
Oui
Microsecondes
Non
Vues matérialisées
Non
Nombre approximatif d'éléments distincts
Oui

Trino prend en charge les fonctionnalités suivantes à partir de Looker 24.16:

Caractéristique Compatibilité
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
Non
Suppression des requêtes
Oui
Pivots basés sur SQL
Oui
Fuseaux horaires
Oui
SSL
Oui
Sous-totaux
Oui
Paramètres supplémentaires JDBC
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
Oui
Table de description de l'exécuteur SQL
Oui
Indexes 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
Regroupement de connexions
Non
HLL Sketches
Oui
Reconnaissance d'agrégats.
Oui
Augmentation de tables PDT
Non
Millisecondes
Oui
Microsecondes
Non
Vues matérialisées
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.