PrestoDB e Trino

Queste pagine descrivono come connettere Looker a PrestoDB o Trino.

Crittografia del traffico di rete

È una best practice criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta una delle opzioni descritte nella pagina della documentazione Abilitare l'accesso sicuro ai database.

Creazione della connessione Looker al tuo database

Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.

Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggioranza dei dialetti di database. Per informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database. Di seguito sono descritte alcune impostazioni:

  • Dialetto: seleziona PrestoDB o Trino.

    PrestoSQL è stato rinominato Trino. Se utilizzi una versione di Trino precedente alla 352, seleziona PrestoSQL dal menu dei dialetti di Looker.

  • Host: il nome host del database.

  • Porta: la porta del database. La porta predefinita è 8080.

  • Database: il "catalogo" o il "connettore", in termini Presto.

  • Nome utente: il nome utente dell'utente che eseguirà le query.

    Queste informazioni vengono inviate al server di database solo se SSL è abilitato.

  • Password: la password dell'utente che eseguirà le query.

    Queste informazioni vengono inviate al server di database solo se SSL è abilitato.

  • Schema: lo schema predefinito da utilizzare quando non è specificato alcuno schema.

  • Autenticazione: seleziona Account database o OAuth:

    • Utilizza Account database per specificare il nome utente e la password dell'account utente del database che verrà utilizzato per connettersi a Looker.
    • Utilizza OAuth se vuoi configurare OAuth per la connessione.
  • Abilita PDT: utilizza questo pulsante di attivazione/disattivazione per abilitare le tabelle derivate permanenti (PDT). Vengono visualizzati ulteriori campi PDT e la sezione Override PDT per la connessione.

  • Database temporaneo: lo schema in cui scrivere le PDT. (La versione 3.50 ha aggiunto il supporto PDT a Presto. Per saperne di più su come configurare Presto per il supporto delle PDT, consulta la sezione Configurazione di PrestoDB o Trino per le PDT in questa pagina.

  • Parametri JDBC aggiuntivi: eventuali parametri aggiuntivi del driver JDBC PrestoDB, del driver JDBC Trino o del driver JDBC Starburst.

  • SSL: seleziona questa opzione per attivare le connessioni SSL.

  • Verifica SSL: ignora questo campo. Tutte le connessioni SSL utilizzeranno l'archivio attendibile Java predefinito, a meno che non venga indicato diversamente con i parametri JDBC di PrestoDB, il driver JDBC di Trino o il driver JDBC di Starburst. Inserisci questi parametri nel campo Parametri JDBC aggiuntivi.

Per verificare che la connessione sia riuscita, fai clic su Testa. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione Testare la connettività del database.

Per salvare queste impostazioni, fai clic su Connetti.

Per ulteriori informazioni sulle impostazioni di connessione, consulta la pagina della documentazione Connessione di Looker al database.

Configurazione di PrestoDB o Trino per le PDT

Le PDT non sono supportate per le connessioni che utilizzano OAuth.

Il supporto di PDT dipende dal connettore che utilizzi con PrestoDB o Trino . Questa sezione spiega le impostazioni di configurazione necessarie per un database scratch. Questo esempio presuppone che il connettore che utilizzi sia hive.

Il file delle proprietà del catalogo Hive deve contenere alcune proprietà di configurazione, descritte in questa sezione.

Quanto segue è necessario perché Presto memorizza nella cache i risultati del metastore Hive e Looker deve essere in grado di visualizzare immediatamente le tabelle:

hive.metastore-cache-ttl = 0s

Queste due proprietà sono obbligatorie perché Looker deve essere in grado di eliminare e rinominare le PDT:

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

Come riferimento, nei nostri server di test interni di Presto utilizziamo il seguente file hive.properties, che viene utilizzato per tutti gli schemi 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

Configurazione di OAuth per le connessioni Trino

Looker supporta OAuth per le connessioni Trino, il che significa che ogni utente Looker esegue l'autenticazione nel database e autorizza Looker a eseguire query sul database con il proprio account utente OAuth.

OAuth consente agli amministratori di database di eseguire le seguenti attività:

  • Controllare quali utenti di Looker eseguono query sul database
  • Applicare controlli dell'accesso basati sui ruoli utilizzando le autorizzazioni a livello di database
  • Utilizza i token OAuth per tutti i processi e le azioni che accedono al database, anziché incorporare ID e password del database in più posizioni
  • Revocare l'autorizzazione per un determinato utente direttamente tramite il database

Con le connessioni Trino che utilizzano OAuth, gli utenti devono accedere nuovamente periodicamente alla scadenza dei token OAuth.

Tieni presente quanto segue per le connessioni OAuth a livello di database:

  • Se un utente lascia scadere il proprio token OAuth, tutte le pianificazioni o gli avvisi di sua proprietà verranno interessati. Per evitare questo problema, Looker invierà un'email di notifica al proprietario di ogni pianificazione e di ogni avviso prima della scadenza del token OAuth attivo corrente. Looker invierà queste email di notifica 14 giorni, 7 giorni e 1 giorno prima della scadenza del token. L'utente può accedere alla propria pagina utente di Looker per riautorizzare l'accesso di Looker al database ed evitare interruzioni di pianificazioni e avvisi. Per maggiori dettagli, consulta la pagina della documentazione Personalizzare le impostazioni dell'account utente.
  • Poiché le connessioni al database che utilizzano OAuth sono "per utente", anche le norme di memorizzazione nella cache sono per utente e non solo per query. Ciò significa che, anziché utilizzare i risultati memorizzati nella cache ogni volta che viene eseguita la stessa query nel periodo di memorizzazione nella cache, Looker utilizzerà i risultati memorizzati nella cache solo se lo stesso utente ha eseguito la stessa query nel periodo di memorizzazione nella cache. Per ulteriori informazioni sulla memorizzazione nella cache, consulta la pagina della documentazione Memorizzazione nella cache delle query.
  • Le tabelle derivate permanenti (PDT) non sono supportate per le connessioni Trino con OAuth.
  • Quando un amministratore di Looker esegue l'accesso come un altro utente, utilizza il token di accesso OAuth di quell'utente. Se il token di accesso dell'utente è scaduto, l'amministratore non può crearne uno nuovo per conto dell'utente con privilegi amministrativi. Per informazioni sull'utilizzo del comando sudo, consulta la pagina della documentazione relativa agli utenti.
  • Quando accedi ad Azure AD da Looker utilizzando OAuth, Looker non mostra una finestra di dialogo esplicita per il consenso dell'utente. Se configuri OAuth con Looker, acconsenti implicitamente all'accesso della tua istanza Looker ai tuoi dati Trino.

Registrazione di un'applicazione

Per abilitare OAuth per Trino, registra prima un'applicazione utilizzando un provider di identità supportato. Looker supporta solo Microsoft Entra ID (in precedenza Azure AD) per OAuth con Trino.

Prerequisiti

  • Devi avere un abbonamento Azure.
  • Devi disporre delle autorizzazioni amministrative in Microsoft Entra ID.

Per registrare un'applicazione:

  1. Vai al portale di Azure e accedi con le tue credenziali.
  2. Nella barra di ricerca del portale Azure, cerca "Microsoft Entra ID" e selezionalo dai risultati.
  3. Nel servizio Microsoft Entra ID, fai clic su Nuova registrazione nella sezione Registrazioni app della categoria Gestisci.
  4. Compila il modulo di registrazione come segue:
    • Nome: fornisci un nome descrittivo per l'applicazione, ad esempio Looker Trino Connection.
    • Tipi di account supportati: seleziona l'opzione appropriata in base al modo in cui vuoi limitare l'accesso. Per un caso d'uso interno, potresti selezionare Solo account in questa directory dell'organizzazione.
    • URI di reindirizzamento: seleziona la piattaforma Web, quindi inserisci l'URI di reindirizzamento di Looker. Dovrebbe avere un aspetto simile a questo: https://YOUR_LOOKER_HOSTNAME/external_oath/redirect.
  5. Fai clic su Register (Registrati).
  6. Raccogli l'ID client, l'ID tenant e il client secret da inserire in un secondo momento nella connessione Looker.
    • Puoi trovare l'ID client e l'ID tenant nella pagina Panoramica.
    • Se non conosci il tuo Client Secret, dovrai crearne uno nuovo. Fai clic su Certificati e secret nella sezione Gestione e poi su Nuovo client secret.
  7. Fai clic su Espone un'API nella sezione Gestisci.
  8. Accanto a URI ID applicazione, fai clic su Aggiungi.
  9. Inserisci il tuo ID cliente. Deve essere nel seguente formato: api://CLIENT_ID.

Poi, segui questi passaggi nel portale Azure per creare un nuovo ambito da utilizzare con Looker:

  1. Fai clic su Aggiungi un ambito nella sezione Ambiti definiti da questa API.
  2. Aggiungi un Nome ambito per il nuovo ambito. Looker prevede che il nome dell'ambito sia: TrinoUsers.Read.All.

    Il nome TrinoUsers.Read.All implica autorizzazioni di sola lettura, ma il nome stesso non imposta né applica alcuna autorizzazione. Assicurati di configurare l'ambito in modo da consentire l'accesso in lettura al database.

  3. Aggiungi un nome visualizzato e una descrizione.

  4. Nel selettore Chi può dare il consenso?, seleziona Amministratori e utenti.

  5. Fai clic su Aggiungi ambito.

  6. Nella sezione Applicazioni client autorizzate, fai clic su Aggiungi un'applicazione client.

  7. Inserisci il tuo ID client e l'ambito appena creato.

  8. Fai clic su Add application (Aggiungi applicazione).

Dopodiché, per concedere a Looker le autorizzazioni API necessarie, segui questi passaggi:

  1. Nella sezione Gestione, fai clic su Autorizzazioni API.
  2. Fai clic su Aggiungi un'autorizzazione.
  3. Seleziona la scheda Le mie API in alto.
  4. Nell'elenco delle registrazioni di app, seleziona quella che hai appena creato, ad esempio Looker Trino Connection.
  5. Seleziona la casella di controllo Autorizzazioni delegate.
  6. Seleziona la casella di controllo TrinoUsers.Read.All.
  7. Seleziona Aggiungi autorizzazione.

Configurazione del database per l'utilizzo di OAuth

Successivamente, per configurare il database Trino in modo che utilizzi OAuth, aggiungi le seguenti righe al file config.properties di Trino. (Sostituisci le prime cinque righe di variabili in maiuscolo con i tuoi valori.)

  • 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

Accedere per eseguire query

Una volta configurata la connessione al database per l'utilizzo di OAuth, agli utenti verrà chiesto di accedere a Microsoft Entra ID prima di eseguire le query. Sono incluse le query di esplorazioni, dashboard, Look e SQL Runner.

Gli utenti possono anche accedere a Microsoft Entra ID dalla sezione Credenziali di connessione OAuth nella pagina Account.

Per accedere a Microsoft Entra ID utilizzando Looker:

  1. Fai clic sul menu utente di Looker.
  2. Seleziona Account.
  3. Nella pagina Account, fai clic su Accedi nella sezione Credenziali di connessione OAuth.

Questa azione visualizzerà una finestra di dialogo di accesso. Inserisci le tue credenziali Microsoft Entra ID e seleziona Accedi per concedere a Looker l'accesso al tuo account database.

Dopo aver eseguito l'accesso a Microsoft Entra ID tramite Looker, puoi disconnetterti o riautorizzare le tue credenziali in qualsiasi momento tramite la pagina Account, come descritto nella pagina di documentazione Personalizzazione dell'account utente.

Riferimento

Per ulteriori informazioni sulla configurazione del connettore Hive, consulta Connettore Hive PrestoDB, Connettore Hive Trino o Connettore Hive Starburst.

Funzionalità supportate

Affinché Looker supporti alcune funzionalità, anche il dialetto del database deve supportarle.

A partire da Looker 25.10, PrestoDB supporta le seguenti funzionalità:

Funzionalità Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate permanenti basate su SQL
Tabelle derivate native permanenti
Visualizzazioni stabili
Terminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
Parametri JDBC aggiuntivi
Sensibile alle maiuscole
Tipo di località
Tipo di elenco
Percentile
Percentile valori distinti
No
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
No
SQL Runner Select 10
Conteggio SQL Runner
SQL Explain
Credenziali OAuth 2.0
No
Commenti contestuali
Pool di connessioni
No
Sketch HLL
Aggregate awareness
PDT incrementali
No
Millisecondi
Microsecondi
No
Viste materializzate
No
Misure di periodo in periodo
No
Conteggio approssimativo dei valori distinti

A partire da Looker 25.10, Trino supporta le seguenti funzionalità:

Funzionalità Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate permanenti basate su SQL
Tabelle derivate native permanenti
Visualizzazioni stabili
No
Terminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
Parametri JDBC aggiuntivi
Sensibile alle maiuscole
Tipo di località
Tipo di elenco
Percentile
Percentile valori distinti
No
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
No
SQL Runner Select 10
Conteggio SQL Runner
SQL Explain
Credenziali OAuth 2.0
Commenti contestuali
Pool di connessioni
No
Sketch HLL
Aggregate awareness
PDT incrementali
No
Millisecondi
Microsecondi
No
Viste materializzate
No
Misure di periodo in periodo
No
Conteggio approssimativo dei valori distinti

Passaggi successivi

Dopo aver connesso il database a Looker, configura le opzioni di accesso per gli utenti.