Cloudera Impala 3.1+ e Cloudera Impala con driver nativo

Dialetti che utilizzano queste istruzioni

Looker si connette ai seguenti database Impala:

  • Cloudera Impala 3.1 o versioni successive
  • Cloudera Impala 3.1+ con driver nativo
  • Cloudera Impala con driver nativo

Crittografia del traffico di rete

Una delle best practice consiste nel criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta 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 fai clic su Add Connection (Aggiungi connessione).

La configurazione della connessione di Looker dipende dalla sicurezza utilizzata:

Connessione a un cluster senza Kerberos o autenticazione utente

Per configurare una connessione che non utilizza Kerberos o l'autenticazione utente, segui questi passaggi:

  1. Nella pagina Impostazioni connessione, lascia vuoti i campi Nome utente e Password. Il * accanto ai nomi dei campi implica che questi campi sono obbligatori, ma non lo sono.
  2. 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 pannello Amministrazione di Looker, fai clic su Log nel menu a sinistra. Quindi, filtra il log in base a un termine, ad esempio jdbc o noSasl. La riga del 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 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 Impostazioni di connessione inserisci un Nome utente e una Password con accesso agli schemi a cui Looker accederà.

Connessione a un cluster protetta con Kerberos, ma non utilizzando Apache Sentry

Il team di analisti di Looker potrebbe dover aiutarti 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.

Impostazione della configurazione del client Kerberos

Innanzitutto, devi garantire l'installazione di diversi componenti 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 programmi binari.

Ad esempio, su Redhat/CentOS sarebbe:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

Java 8 deve essere installato sulla macchina di Looker, nonché nei PATH e JAVA_HOME dell'utente di Looker. Se necessario, installalo localmente nella directory looker.

Estensione crittografia Java
  1. Scarica e installa la Java Cryptography Extension (JCE) per Java 8 dal sito web di Oracle.

    • Individua la directory jre/lib/security per l'installazione Java.
    • Rimuovi i seguenti file JAR da questa directory: local_policy.jar e US_export_policy.jar.
    • Sostituisci questi due file con i file JAR inclusi nel download dei file dei criteri di giurisdizione illimitato JCE.

    Potrebbe essere possibile usare versioni di Java precedenti a Java 8 con JCE installato, ma questa operazione è sconsigliata.

  2. Aggiorna JAVA_HOME e PATH in ~looker/.bash_profile per puntare all'installazione corretta di Java e source ~/.bash_profile oppure esci e accedi di nuovo.

  3. Verifica la versione di Java con java -version.

  4. Verifica la variabile di ambiente JAVA_HOME con echo $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 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 su cui è in esecuzione Looker deve avere un file krb5.conf valido. Per impostazione predefinita, questo file si trova in /etc/krb5.conf. Se si trova in un'altra posizione, è necessario indicarlo 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) di nome lookerstart.cfg che contiene 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à anche necessario aggiungere 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
  1. Se krb5.conf non si trova in /etc/, utilizza la variabile di ambiente KRB5_CONFIG per indicarne la posizione.

  2. Esegui il comando klist per assicurarti che sia presente un ticket valido nella cache del ticket di Kerberos.

  3. Se non è presente alcun ticket, eseguilo con kinit username@REALM o kinit username per crearlo.

  4. L'account utilizzato con Looker probabilmente sarà headless, quindi puoi ricevere 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 ricevere il ticket Kerberos.

Rinnovo automatico del ticket

Configura un cron job che viene 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 della scadenza dei biglietti.

Creazione della connessione Looker al tuo database

Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e 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. Ecco come verrà definita la connessione nel modello LookML.
  • Dialect: Cloudera Impala 3.1+, Cloudera Impala 3.1+ with Native Driver o Cloudera Impala with Native Driver.

  • Host: nome host.

  • Porta: porta del database (21050 per impostazione predefinita).

  • Database: lo schema/database predefinito che verrà modellato. Se non viene specificato alcun database per una tabella, viene usato questo valore.

  • Nome utente: lascia vuoto questo campo.

  • Password: lascia vuoto questo campo.

  • Abilita PDT: utilizza questo pulsante di attivazione/disattivazione per abilitare le tabelle derivate permanenti. Quando le PDT sono abilitate, la finestra Connessione mostra le impostazioni PDT aggiuntive e la sezione Override PDT.

  • Database temporaneo: uno schema/database temporaneo per l'archiviazione delle PDT. Questo campo 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) corrisponde in genere al nome del servizio, mentre l'ultimo (REALM) corrisponde generalmente all'area di autenticazione.

  • SSL: seleziona questa opzione per utilizzare le connessioni SSL. Se il tuo certificato SSL non è stato emesso da un'autorità di certificazione ampiamente riconosciuta e stai utilizzando 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 creare le stringhe JDBC corrette per i database Impala.

  • Fuso orario database: il fuso orario dei dati archiviati nel database. Di solito, questo campo può essere lasciato vuoto o impostato su UTC.

Una best practice prevede che il nome del server (in questo esempio impala.company.com) sia il nome canonico del server e che la ricerca DNS inversa del relativo indirizzo IP abbia quel 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 garantire che le ricerche inverse vengano risolte come previsto.

Testa la connessione per assicurarti che sia configurata correttamente.

Debug

Risorse

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 possa supportare alcune funzionalità, è necessario che anche il dialetto del database le supporti.

Cloudera Impala con driver nativo

Cloudera Impala con Native Driver supporta le seguenti funzionalità a partire da Looker 24.8:

Selezione delle Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
No
Aggregati simmetrici
No
Tabelle derivate
Tabelle derivate SQL permanenti
Tabelle derivate native permanenti
Visualizzazioni stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
No
Parametri aggiuntivi JDBC
Sensibilità alle maiuscole
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile distinto
No
Processi di visualizzazione SQL Runner
No
Descrivi tabella SQL Runner
Indici di visualizzazione SQL Runner
No
SQL Runner Select 10
Conteggio esecutori SQL
Spiegazione SQL
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Awareness aggregato
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimativo distinto

Cloudera Impala 3.1 o versioni successive

Cloudera Impala 3.1 e versioni successive supporta le seguenti funzionalità a partire da Looker 24.8:

Selezione delle Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate SQL permanenti
Tabelle derivate native permanenti
Visualizzazioni stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
No
Parametri aggiuntivi JDBC
Sensibilità alle maiuscole
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile distinto
No
Processi di visualizzazione SQL Runner
No
Descrivi tabella SQL Runner
Indici di visualizzazione SQL Runner
No
SQL Runner Select 10
Conteggio esecutori SQL
Spiegazione SQL
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Awareness aggregato
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimativo distinto

Cloudera Impala 3.1+ con driver nativo

Cloudera Impala 3.1+ con Native Driver supporta le seguenti funzionalità a partire da Looker 24.8:

Selezione delle Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
No
Aggregati simmetrici
Tabelle derivate
Tabelle derivate SQL permanenti
Tabelle derivate native permanenti
Visualizzazioni stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
No
Parametri aggiuntivi JDBC
Sensibilità alle maiuscole
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile distinto
No
Processi di visualizzazione SQL Runner
No
Descrivi tabella SQL Runner
Indici di visualizzazione SQL Runner
No
SQL Runner Select 10
Conteggio esecutori SQL
Spiegazione SQL
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Awareness aggregato
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimativo distinto

Passaggi successivi

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