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 Administration 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 la base de données. Le port par défaut est 8080.

  • Base de données : "catalogue" ou "connecteur", en termes 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: utilisez cet interrupteur 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 façon de configurer Presto pour une prise en charge des tables PDT, consultez la section Configuration de PrestoDB ou Trino pour les tables PDT sur 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 Starburst.

  • SSL: cochez cette case 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. Pour obtenir des informations sur le dépannage, consultez la page de documentation Tester la connectivité de la base de données.

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 des 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 ;
  • Mettre en place 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 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 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, 7 et 1 jour avant l'expiration du jeton. L'utilisateur peut accéder à sa page utilisateur Looker pour réautoriser 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 des comptes utilisateur.
  • Étant donné que les connexions de base de données qui utilisent OAuth fonctionnent "par utilisateur", la mise en cache des politiques fonctionne de la même manière, 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 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.
  • Lorsque vous vous connectez à Azure AD depuis Looker à l'aide d'OAuth, Looker n'affiche pas de boîte de dialogue de consentement explicite 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, commencez par enregistrer une application à l'aide 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", puis 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 :
    • 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. Elle doit se présenter comme 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 l'ID client et l'ID de locataire sur la page Présentation.
    • Si vous ne connaissez pas votre secret client, vous devez en créer un. Cliquez sur Certificats et codes secrets dans la section Gérer, puis sur Nouveau code secret client.
  7. Cliquez sur Exposer une API dans la section Gérer.
  8. À côté de URI d'ID d'application, cliquez sur Ajouter.
  9. Saisissez votre ID client. Il doit se présenter sous la forme suivante: api://CLIENT_ID.

Ensuite, dans le portail Azure, procédez comme suit 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 champ d'application soit 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 d'explorations, de tableaux de bord, de présentations et de SQL Runner.

Les utilisateurs peuvent également se connecter à Microsoft Entra ID depuis la section Identifiants de connexion OAuth de la page Compte.

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

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

Cette action affiche une boîte de dialogue de connexion. Saisissez vos identifiants Microsoft Entra ID, puis 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.

PrestoDB prend en charge les fonctionnalités suivantes à partir de Looker 24.20:

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
Arrêt des requêtes
Oui
Pivots 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
Exécuteur SQL : afficher les processus
Oui
Table de description de SQL Runner
Oui
Indexes de l'exécuteur SQL
Non
SQL Runner Select 10
Oui
Nombre d'exécuteurs SQL
Oui
Explication SQL
Oui
Identifiants Oauth
Non
Commentaires sur le contexte
Oui
Regroupement de connexions
Non
Résumés HLL
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 est compatible avec les fonctionnalités suivantes à partir de Looker 24.20:

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
Arrêt des requêtes
Oui
Pivots 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
Exécuteur SQL : afficher les processus
Oui
Table de description de SQL Runner
Oui
Indexes de l'exécuteur SQL
Non
SQL Runner Select 10
Oui
Nombre d'exécuteurs SQL
Oui
Explication SQL
Oui
Identifiants Oauth
Oui
Commentaires sur le contexte
Oui
Regroupement de connexions
Non
Résumés HLL
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.