Dialetti che utilizzano queste istruzioni
Looker si connette ai seguenti database Impala:
- Cloudera Impala 3.1 o versioni successive
- Cloudera Impala 3.1 o versioni successive con driver nativo
- Cloudera Impala con driver nativo
Crittografia del traffico di rete in corso...
Una best practice consiste nel criptare il traffico di rete tra l'applicazione Looker e il tuo database. Prendi in considerazione una delle opzioni descritte nella pagina della documentazione Abilitazione dell'accesso sicuro al database.
Configurazione di Looker per la connessione a Cloudera Impala
Looker si connette ai database tramite una connessione JDBC. Per i database Impala, Looker si connette per impostazione predefinita al server che esegue il daemon impalad
sulla porta 21050. Per ulteriori informazioni, consulta la sezione Configurare Impala per il funzionamento con JDBC della documentazione sul sito web di Cloudera.
Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e quindi fai clic su Add Connection (Aggiungi connessione).
La configurazione della connessione a 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 senza Apache Sentry
Connessione a un cluster senza Kerberos o autenticazione dell'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. L'icona
*
accanto ai nomi dei campi implica che, ma non è così, questi campi sono obbligatori. - Nel campo Parametri JDBC aggiuntivi, inserisci
;auth=noSasl
.
Verifica della stringa di connessione in corso...
Per verificare la stringa di connessione JDBC nei file di log, nel riquadro Amministrazione di Looker, fai clic su Log nel menu a sinistra. Quindi filtra il log in base a un termine come jdbc
o noSasl
. La riga del log potrebbe avere un aspetto simile al seguente:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Per ulteriori informazioni sulla configurazione dei database Impala per l'utilizzo 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 Connection Settings (Impostazioni connessione), inserisci un Username (Nome utente) e una Password con accesso agli schemi a cui Looker accede.
Connessione a un cluster protetto con Kerberos, ma senza utilizzo di Apache Sentry
Il team di analisti di Looker potrebbe dover 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 in questa pagina.
Impostazione della configurazione del client Kerberos
In primo luogo, devi garantire l'installazione di diversi software e la presenza di diversi file sul computer Looker.
Client Kerberos
Verifica che il client Kerberos sia installato sul computer Looker provando a eseguire kinit
. Se il client Kerberos non è installato, installa i relativi file binari.
Ad esempio, su Redhat/CentOS, si tratta di:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 deve essere installato sulla macchina Looker e in PATH
e JAVA_HOME
dell'utente di Looker. Se necessario, installalo localmente nella directory looker
.
Estensione crittografia Java
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 dei criteri di giurisdizione JCE illimitati.
È possibile utilizzare versioni di Java precedenti a Java 8 con JCE installata, ma questa operazione è sconsigliata.
- Individua la directory
Aggiorna
JAVA_HOME
ePATH
in~looker/.bash_profile
in modo che rimandino alla corretta installazione di Java esource ~/.bash_profile
oppure esegui la disconnessione e l'accesso di nuovo.Verifica la versione di 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 questo contenuto:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Se necessario per i test, puoi aggiungere debug=true
a questo file in questo modo:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Anche il server che esegue Looker deve avere un file krb5.conf
valido. Per impostazione predefinita, questo file è in formato /etc/krb5.conf
. Se si trova in un'altra posizione, deve essere indicato nell'ambiente (KRB5_CONFIG
nell'ambiente shell).
Potrebbe essere necessario copiarlo da un altro computer client Kerberos.
lookerstart.cfg
Posiziona il puntatore del mouse sui file gss-jaas.conf
e krb5.conf
creando un file nella directory looker
(la stessa directory che contiene lo script di avvio looker
) chiamato 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 si trova in/etc/
, utilizza la variabile di ambienteKRB5_CONFIG
per indicarne la posizione.Esegui il comando
klist
per assicurarti che nella cache dei ticket Kerberos sia presente un ticket valido.Se non esiste alcun 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 memorizzare la credenziale per l'utilizzo a lungo termine. Utilizza un comando come
kinit -k -t looker_user.keytab username@REALM
per ottenere il ticket Kerberos.
Rinnovo automatico del ticket
Configura un cron job che viene eseguito ogni tanto per mantenere un ticket attivo nella cache dei ticket Kerberos. La frequenza di esecuzione dipende dalla configurazione del cluster. klist
deve fornire un'indicazione della data di scadenza dei biglietti.
Creazione della connessione Looker al tuo database
Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e quindi fai clic su Add Connection (Aggiungi connessione).
Compila i dettagli della connessione come segue (per saperne di più, consulta la pagina della documentazione Connessione di Looker al tuo database):
- Nome: il nome della connessione. Questo è il nome della connessione nel modello LookML.
Dialect: Cloudera Impala 3.1 o versioni successive, Cloudera Impala 3.1 e versioni successive con driver nativo o Cloudera Impala con driver nativo.
Host: nome host.
Porta: porta del database (21050 per impostazione predefinita).
Database: lo schema o il database predefinito che verrà modellato. Questo valore viene utilizzato quando per una tabella non viene specificato alcun database.
Username (Nome utente): lascia vuoto questo campo.
Password: lascia vuoto questo campo.
Abilita le PDT: utilizza questa opzione per abilitare le tabelle derivate permanenti. Quando le PDT sono abilitate, la finestra Connection mostra le impostazioni PDT aggiuntive e la sezione PDT Overrides.
Database temporaneo: uno schema/database temporaneo per l'archiviazione delle PDT. Questo deve essere creato in anticipo.
Parametri JDBC aggiuntivi: parametri aggiuntivi per la stringa JDBC. Indica qui l'entità Kerberos, ad esempio
;principal=impala/impala.company.com@REALM
. Le entità in tre parti sono standard. Il primo (impala
) è di solito il nome del servizio, mentre l'ultimo (REALM
) corrisponde di solito all'area di autenticazione.SSL: seleziona questa opzione per utilizzare le connessioni SSL. Se il tuo certificato SSL non è emesso da un'autorità di certificazione ampiamente riconosciuta e utilizzi un certificato personalizzato, dovrai:
- 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
Consulta la documentazione di Cloudera per ulteriori dettagli su come formare le stringhe JDBC corrette per i database Impala.
- Fuso orario database: il fuso orario dei dati archiviati nel database. In genere questo campo può essere lasciato vuoto o impostato su UTC.
Una best practice prevede che il nome del server (impala.company.com
in questo esempio) sia il nome canonico del server e che la ricerca DNS inversa dell'indirizzo IP generi 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 inversa vengano risolte come previsto.
Testa la connessione per assicurarti che sia configurata correttamente.
Debug
- Documentazione di Cloudera sul debug dei problemi di autenticazione Impala.
- Quando aggiungi il debug alla configurazione, le informazioni di debug aggiuntive vengono visualizzate in
looker/logs/looker.log
.
Risorse
- Attivazione dell'autenticazione Kerberos per Impala (documentazione di Cloudera)
- pagina di guida kinit
- pagina man di klist
- Documentazione di gss-jaas.conf
- Documentazione di Krb5LoginModule
Autorizzazioni per le PDT
L'utente che si connette allo schema temporaneo per le tabelle derivate permanenti (PDT) deve disporre delle autorizzazioni di lettura/scrittura.
Supporto delle funzionalità
Affinché Looker supporti alcune funzionalità, è necessario che anche il dialetto del tuo database le supporti.
Cloudera Impala con driver nativo
Cloudera Impala con driver nativo supporta le seguenti funzionalità a partire da Looker 24.12:
Funzionalità | Supportata? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | No |
Aggregati simmetrici | No |
Tabelle derivate | Sì |
Tabelle derivate da SQL permanente | Sì |
Tabelle derivate native permanenti | Sì |
Viste stabili | Sì |
Eliminazione 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 SQL Runner Show | No |
Tabella di descrizione di SQL Runner | Sì |
SQL Runner Mostra indici | No |
Selezione SQL Runner 10 | Sì |
Conteggio runner SQL | Sì |
Spiegazione SQL | Sì |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pooling di connessioni | No |
Schizzi HLL | No |
Consapevolezza aggregata | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimato distinto | Sì |
Cloudera Impala 3.1 o versioni successive
Cloudera Impala 3.1 e versioni successive supporta le seguenti funzionalità a partire da Looker 24.12:
Funzionalità | Supportata? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | Sì |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate da SQL permanente | Sì |
Tabelle derivate native permanenti | Sì |
Viste stabili | Sì |
Eliminazione 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 SQL Runner Show | No |
Tabella di descrizione di SQL Runner | Sì |
SQL Runner Mostra indici | No |
Selezione SQL Runner 10 | Sì |
Conteggio runner SQL | Sì |
Spiegazione SQL | Sì |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pooling di connessioni | No |
Schizzi HLL | No |
Consapevolezza aggregata | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimato distinto | Sì |
Cloudera Impala 3.1 o versioni successive con driver nativo
Cloudera Impala 3.1 e versioni successive con driver nativo supporta le seguenti funzionalità a partire da Looker 24.12:
Funzionalità | Supportata? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | No |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate da SQL permanente | Sì |
Tabelle derivate native permanenti | Sì |
Viste stabili | Sì |
Eliminazione 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 SQL Runner Show | No |
Tabella di descrizione di SQL Runner | Sì |
SQL Runner Mostra indici | No |
Selezione SQL Runner 10 | Sì |
Conteggio runner SQL | Sì |
Spiegazione SQL | Sì |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pooling di connessioni | No |
Schizzi HLL | No |
Consapevolezza aggregata | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimato distinto | Sì |
Passaggi successivi
Dopo aver collegato il database a Looker, configura le opzioni di accesso per gli utenti.