Dialetti che utilizzano queste istruzioni
Looker si connette ai seguenti database Impala:
- Cloudera Impala 3.1 e versioni successive
- Cloudera Impala 3.1 e versioni successive con driver nativo
- Cloudera Impala con driver nativo
Crittografia del traffico di rete
È buona prassi criptare il traffico di rete tra l'applicazione Looker e il database. Valuta la possibilità di utilizzare una delle opzioni descritte nella pagina della documentazione Abilitare l'accesso sicuro ai database.
Configurare Looker per la connessione a Cloudera Impala
Looker si connette ai database tramite una connessione JDBC. Per i database Impala, per impostazione predefinita Looker si connette al server su cui è in esecuzione il daemon impalad
sulla porta 21050. Per ulteriori informazioni, consulta la sezione Configurazione di Impala per il funzionamento con JDBC della documentazione sul sito web di Cloudera.
Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.
La configurazione della connessione di Looker dipende dalla sicurezza utilizzata:
- Un cluster che non utilizza Kerberos o l'autenticazione utente
- Un cluster che richiede l'autenticazione LDAP
- Un cluster protetto con Kerberos, ma che non utilizza Apache Sentry
Connessione a un cluster senza autenticazione Kerberos o utente
Per configurare una connessione che non utilizza Kerberos o l'autenticazione utente:
- Nella pagina Impostazioni connessione, lascia vuoti i campi Nome utente e Password. Il simbolo
*
accanto ai nomi dei campi indica che questi campi sono obbligatori, ma non lo sono. - Nel campo Parametri JDBC aggiuntivi, inserisci
;auth=noSasl
.
Verifica della stringa di connessione
Per verificare la stringa di connessione JDBC nei file di log, nel riquadro Amministrazione di Looker, fai clic su Log nel menu a sinistra. Filtra quindi il log in base a un termine come jdbc
o noSasl
. La riga di log potrebbe avere il seguente aspetto:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Per ulteriori informazioni sulla configurazione dei database Impala per il funzionamento con JDBC, consulta la documentazione sul sito web esterno di Cloudera.
Connessione a un cluster che richiede l'autenticazione LDAP
Per un cluster che richiede l'autenticazione LDAP, incluso un cluster con Apache Sentry e Kerberos, nella pagina Impostazioni connessione, inserisci un nome utente e una password con accesso agli schemi a cui accederà Looker.
Connessione a un cluster protetto con Kerberos, ma senza utilizzare Apache Sentry
Il team di analisti di Looker potrebbe doverti aiutare a configurare correttamente questa connessione.
In genere, l'autenticazione Kerberos con gli ambienti Cloudera viene gestita tramite Apache Sentry. Per ulteriori dettagli, consulta la documentazione di Cloudera.
Se vuoi configurare Looker in modo che si connetta direttamente ai database Impala utilizzando l'autenticazione Kerberos, segui i passaggi descritti in questa pagina.
Configurazione del client Kerberos
Innanzitutto, devi assicurarti l'installazione di diversi software e la presenza di diversi file sulla macchina Looker.
Client Kerberos
Verifica che il client Kerberos sia installato sulla macchina di Looker tentando di eseguire kinit
. Se il client Kerberos non è installato, installa i file binari del client Kerberos.
Ad esempio, su Redhat/CentOS, sarà:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 deve essere installato sulla macchina di Looker e nei percorsi PATH
e JAVA_HOME
dell'utente di Looker. Se necessario, installalo localmente nella directory looker
.
Java Cryptography Extension
Scarica e installa Java Cryptography Extension (JCE) per Java 8 dal sito web di Oracle.
- Individua la directory
jre/lib/security
per l'installazione di Java. - Rimuovi i seguenti file JAR da questa directory:
local_policy.jar
eUS_export_policy.jar
. - Sostituisci questi due file con i file JAR inclusi nel download dei file JCE Unlimited Strength Jurisdiction Policy.
Potrebbe essere possibile utilizzare versioni di Java precedenti a Java 8 con JCE installato, ma non è consigliabile.
- Individua la directory
Aggiorna
JAVA_HOME
ePATH
in~looker/.bash_profile
in modo che rimandino all'installazione corretta di Java esource ~/.bash_profile
oppure esci ed esegui nuovamente l'accesso.Verifica la versione Java con
java -version
.Verifica la variabile di ambiente
JAVA_HOME
conecho $JAVA_HOME
.
gss-jaas.conf
Crea un file gss-jaas.conf
nella directory looker
con i seguenti contenuti:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Se necessario per i test, debug=true
può essere aggiunto a questo file nel seguente modo:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Il server su cui è in esecuzione Looker deve avere anche un file krb5.conf
valido. Per impostazione predefinita, questo file si trova in /etc/krb5.conf
. Se si trova in un'altra posizione, deve essere indicato nell'ambiente (KRB5_CONFIG
nell'ambiente shell).
Potresti dover copiare questo file da un'altra macchina client Kerberos.
lookerstart.cfg
Fai riferimento ai file gss-jaas.conf
e krb5.conf
creando un file nella directory looker
(la stessa directory contenente lo script di avvio looker
) denominato lookerstart.cfg
contenente le seguenti righe:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Se il file krb5.conf
non si trova in /etc/krb5.conf
, sarà necessario aggiungere anche questa variabile:
-Djava.security.krb5.conf=/path/to/krb5.conf
Per il debug, aggiungi queste variabili:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Quindi riavvia Looker con ./looker restart
.
Autenticazione con Kerberos
Autenticazione degli utenti
Se
krb5.conf
non è in/etc/
, utilizza la variabile di ambienteKRB5_CONFIG
per indicarne la posizione.Esegui il comando
klist
per assicurarti che nella cache delle richieste Kerberos sia presente una richiesta valida.Se non esiste un ticket, esegui
kinit username@REALM
okinit username
per crearlo.L'account utilizzato con Looker sarà probabilmente headless, quindi puoi ottenere un file keytab da Kerberos per archiviare la credenziale per un uso a lungo termine. Utilizza un comando come
kinit -k -t looker_user.keytab username@REALM
per ottenere il ticket Kerberos.
Rinnovo automatico della richiesta
Configura un job cron che venga eseguito di tanto in tanto per mantenere un ticket attivo nella cache dei ticket Kerberos. La frequenza di esecuzione dipende dalla configurazione del cluster. klist
dovrebbe fornire un'indicazione sulla scadenza dei biglietti.
Creazione della connessione di Looker al database
Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.
Compila i dettagli di connessione come segue (per ulteriori informazioni, consulta la pagina della documentazione Connessione di Looker al database):
- Nome: il nome della connessione. Questo è il nome che verrà utilizzato per fare riferimento alla connessione nel modello LookML.
Dialetto: Cloudera Impala 3.1+, Cloudera Impala 3.1+ con driver nativo o Cloudera Impala con driver nativo.
Host: nome host.
Port: porta del database (21050 per impostazione predefinita).
Database: lo schema/database predefinito che verrà modellato. Se non viene specificato alcun database per una tabella, verrà assunto questo valore.
Nome utente: lascia vuoto.
Password: lascia vuoto.
Abilita PDT: utilizza questo pulsante di attivazione/disattivazione per abilitare le tabelle derivate permanenti. Quando le PDT sono attivate, la finestra Connessione mostra ulteriori impostazioni PDT e la sezione Override PDT.
Database temporaneo: uno schema/database temporaneo per l'archiviazione delle PDT. Deve essere creato in precedenza.
Parametri JDBC aggiuntivi: parametri aggiuntivi per la stringa JDBC. Indica qui l'entità Kerberos, ad esempio
;principal=impala/impala.company.com@REALM
. I principali a tre parti sono standard. Il primo (impala
) è in genere il nome del servizio e l'ultimo (REALM
) è in genere il realm.SSL: seleziona questa opzione per utilizzare le connessioni SSL. Se il certificato SSL non è stato emesso da un'autorità di certificazione ampiamente riconosciuta e utilizzi un certificato personalizzato, devi:
- Copia il file del certificato sul server Looker. Questa opzione è disponibile solo per i deployment di Looker ospitati dal cliente.
- Aggiungi i seguenti parametri al campo Parametri JDBC aggiuntivi:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Per ulteriori dettagli su come formare le stringhe JDBC corrette per i database Impala, consulta la documentazione di Cloudera.
- Fuso orario del database: il fuso orario dei dati archiviati nel database. In genere, questo campo può essere lasciato vuoto o impostato su UTC.
È buona prassi impostare il nome del server (impala.company.com
in questo esempio) come nome canonico del server e la ricerca DNS inversa del suo indirizzo IP deve restituire questo nome. Tuttavia, il nome del server deve essere quello elencato nel controller di dominio Kerberos:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
A volte il nome del server è impostato come nome host e non come nome di dominio completo. In questo caso potrebbe essere necessario modificare i file /etc/hosts
e /etc/nsswitch.conf
per assicurarti che le ricerche inverse vengano risolte come previsto.
Verifica la connessione per assicurarti che sia configurata correttamente.
Debug
- Documentazione di Cloudera sul debug dei problemi di autenticazione di Impala.
- Quando aggiungi il debug alla configurazione, le informazioni aggiuntive sul debug vengono inserite in
looker/logs/looker.log
.
Risorse
- Abilitazione dell'autenticazione Kerberos per Impala (documentazione Cloudera)
- Pagina di manual kinit
- Pagina man di klist
- Documentazione di gss-jaas.conf
- Documentazione di Krb5LoginModule
Autorizzazioni per i dati proprietari
L'utente che si connette allo schema scratch per le tabelle derivate permanenti (PDT) deve disporre delle autorizzazioni di lettura/scrittura.
Funzionalità supportate
Affinché Looker supporti alcune funzionalità, anche il dialetto del database deve supportarle.
Cloudera Impala con driver nativo
Cloudera Impala con driver nativo supporta le seguenti funzionalità a partire da Looker 24.20:
Funzionalità | Supportato? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | No |
Aggregati simmetrici | No |
Tabelle derivate | Sì |
Tabelle derivate SQL permanenti | Sì |
Tabelle derivate native permanenti | Sì |
Visualizzazioni stabili | Sì |
Interruzioni delle query | Sì |
Pivot basati su SQL | Sì |
Fusi orari | Sì |
SSL | Sì |
Subtotali | No |
Parametri aggiuntivi JDBC | Sì |
Sensibilità alle maiuscole | Sì |
Tipo di località | Sì |
Tipo di elenco | No |
Percentile | No |
Percentile distinto | No |
Processi di visualizzazione di SQL Runner | No |
Tabella Describe di SQL Runner | Sì |
Indici di SQL Runner Show | No |
SQL Runner Select 10 | Sì |
Conteggio di SQL Runner | Sì |
SQL Explain | Sì |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pool di connessioni | No |
Schizzi HLL | No |
Aggregate Awareness | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimativo valori distinti | Sì |
Cloudera Impala 3.1 e versioni successive
Cloudera Impala 3.1 e versioni successive supportano le seguenti funzionalità a partire da Looker 24.20:
Funzionalità | Supportato? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | Sì |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate SQL permanenti | Sì |
Tabelle derivate native permanenti | Sì |
Visualizzazioni stabili | Sì |
Interruzioni delle query | Sì |
Pivot basati su SQL | Sì |
Fusi orari | Sì |
SSL | Sì |
Subtotali | No |
Parametri aggiuntivi JDBC | Sì |
Sensibilità alle maiuscole | Sì |
Tipo di località | Sì |
Tipo di elenco | No |
Percentile | No |
Percentile distinto | No |
Processi di visualizzazione di SQL Runner | No |
Tabella Describe di SQL Runner | Sì |
Indici di SQL Runner Show | No |
SQL Runner Select 10 | Sì |
Conteggio di SQL Runner | Sì |
SQL Explain | Sì |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pool di connessioni | No |
Schizzi HLL | No |
Aggregate Awareness | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimativo valori distinti | Sì |
Cloudera Impala 3.1 e versioni successive con driver nativo
Cloudera Impala 3.1 e versioni successive con driver nativo supportano le seguenti funzionalità a partire da Looker 24.20:
Funzionalità | Supportato? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | No |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate SQL permanenti | Sì |
Tabelle derivate native permanenti | Sì |
Visualizzazioni stabili | Sì |
Interruzioni delle query | Sì |
Pivot basati su SQL | Sì |
Fusi orari | Sì |
SSL | Sì |
Subtotali | No |
Parametri aggiuntivi JDBC | Sì |
Sensibilità alle maiuscole | Sì |
Tipo di località | Sì |
Tipo di elenco | No |
Percentile | No |
Percentile distinto | No |
Processi di visualizzazione di SQL Runner | No |
Tabella Describe di SQL Runner | Sì |
Indici di SQL Runner Show | No |
SQL Runner Select 10 | Sì |
Conteggio di SQL Runner | Sì |
SQL Explain | Sì |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pool di connessioni | No |
Schizzi HLL | No |
Aggregate Awareness | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimativo valori distinti | Sì |
Passaggi successivi
Dopo aver collegato il database a Looker, configura le opzioni di accesso per gli utenti.