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. Envisagez l'une des options décrites sur la page de documentation Activer l'accès sécurisé à 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 de ces 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 à la version 352, sélectionnez PrestoSQL dans le menu de dialectes 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 le "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é.

  • 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é.

  • Schema (Schéma) : le 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:

    • Dans le champ Compte de base de données, indiquez le nom d'utilisateur et le mot de passe du compte utilisateur de 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). Des champs de tables PDT supplémentaires s'affichent, ainsi que la section Remplacements PDT pour la connexion.

  • Base de données temporaire: schéma permettant d'écrire des 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: tous les paramètres supplémentaires du pilote JDBC PrestoDB, du pilote JDBC Trino ou du pilote JDBC Starsplash.

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

  • Verify SSL (Valider SSL) : ignorez ce champ. Toutes les connexions SSL utiliseront le Truststore Java par défaut, sauf instruction contraire avec les paramètres JDBC PrestoDB, le pilote JDBC Trino ou le pilote JDBC Starlapse. Saisissez ces paramètres dans le champ Paramètres JDBC supplémentaires.

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

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 compatibles avec les connexions utilisant OAuth.

La prise en charge des tables PDT dépend du connecteur que vous utilisez 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

À titre indicatif, 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, ce qui signifie que chaque utilisateur Looker s'authentifie auprès de la base de données et autorise Looker à y exécuter des requêtes 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 ;
  • 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 pour les connexions OAuth au niveau de la base de données:

  • Si un utilisateur autorise l'expiration de son jeton OAuth, ses planifications ou alertes seront affectées. Pour éviter cela, Looker envoie une notification par e-mail au propriétaire de chaque planification et à chaque alerte avant l'expiration du jeton OAuth actif. 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. Consultez la page de documentation Personnaliser les paramètres de compte utilisateur pour en savoir plus.
  • Les connexions aux bases de données utilisant OAuth étant "par utilisateur", les règles de mise en cache s'appliquent également 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'utilisera les résultats mis en cache que si le même utilisateur a exécuté la même requête pendant cette période. 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 effectue une commande Sudo pour un autre 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. Consultez la page de documentation Utilisateurs pour en savoir plus sur l'utilisation de la commande sudo.
  • 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 prend uniquement en charge Microsoft Entra ID (anciennement Azure AD) pour OAuth avec Trino.

Prérequis

  • Vous devez disposer d'un abonnement Azure.
  • Vous devez disposer d'autorisations d'administration 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 Microsoft Entra ID, cliquez sur Nouvelle inscription dans la section Inscriptions de l'application 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 manière dont vous souhaitez restreindre l'accès. Pour un cas d'utilisation interne, vous pouvez sélectionner Comptes de cet annuaire organisationnel uniquement.
    • Redirect URI (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 Register (S'inscrire).
  6. Rassemblez l'ID client, l'ID du locataire et le code secret du client pour saisir ultérieurement votre connexion Looker.
    • Vous trouverez le Client-ID et l'ID du locataire sur la page Vue d'ensemble.
    • Si vous ne connaissez pas votre code secret de client, vous devez en créer un autre. Dans la section Gérer, cliquez sur Certificats et secrets, puis 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.

Suivez ensuite 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 d'autorisations. Veillez à configurer le champ d'application de manière à 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 consentir ?, sélectionnez Administrateurs et utilisateurs.

  5. Cliquez sur Ajouter un champ d'application.

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

  7. Saisissez votre ID client et le champ d'application que vous venez de créer.

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

Ensuite, 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 My APIs (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

Ensuite, pour configurer votre base de données Trino afin qu'elle utilise OAuth, ajoutez les lignes suivantes à votre fichier config.properties Trino. (Remplacez les cinq premières lignes des 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. Dans la section Identifiants de connexion OAuth de la page Compte, cliquez sur Connexion.

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 connecté à Microsoft Entra ID via Looker, vous pouvez vous déconnecter ou autoriser à nouveau vos identifiants à tout moment via votre page Compte, comme indiqué sur la page de documentation Personnaliser votre compte utilisateur.

Reference

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

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.

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

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
Suppression des requêtes
Oui
Tableaux croisés dynamiques 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
Index d'affichage 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
Pooling des 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 distinct
Oui

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

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
Non
Suppression des requêtes
Oui
Tableaux croisés dynamiques 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
Index d'affichage 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 des 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 distinct
Oui

Étapes suivantes

Une fois votre base de données connectée à Looker, configurez les options de connexion de vos utilisateurs.