Cloudera Impala 3.1 e versioni successive e Cloudera Impala con driver nativo

Dialetti che utilizzano queste istruzioni

Looker si connette ai seguenti database Impala:

  • Cloudera Impala 3.1+
  • Cloudera Impala 3.1+ con driver nativo
  • Cloudera Impala con driver nativo

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.

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 Configurazione di Impala per l'utilizzo 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 Looker dipende dalla sicurezza utilizzata:

Connessione a un cluster senza autenticazione Kerberos o utente

Per configurare una connessione che non utilizza Kerberos o l'autenticazione utente:

  1. 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.
  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. Poi filtra il log in base a un termine come jdbc o noSasl. La riga di log potrebbe avere un aspetto simile a questo:

jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl

Per saperne di più 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 accederà Looker.

Connessione a un cluster protetto con Kerberos, ma senza utilizzare Apache Sentry

Il team di analisti di Looker potrebbe dover contribuire alla configurazione corretta di 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 per connettersi 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 Looker provando a eseguire kinit. Se il client Kerberos non è installato, installa i file binari del client Kerberos.

Ad esempio, su Redhat/CentOS, il comando è:

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 Looker. Se necessario, installalo localmente nella directory looker.

Java Cryptography Extension
  1. 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 e US_export_policy.jar.
    • Sostituisci questi due file con i file JAR inclusi nel download dei file di policy di giurisdizione JCE Unlimited Strength.

    Potrebbe essere possibile utilizzare versioni di Java precedenti a Java 8 con JCE installato, ma non è consigliabile.

  2. Aggiorna JAVA_HOME e PATH in ~looker/.bash_profile in modo che puntino 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 questo contenuto:

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, questa deve essere indicata nell'ambiente (KRB5_CONFIG nell'ambiente shell).

Potresti doverlo copiare da un altro computer client Kerberos.

lookerstart.cfg

Punta 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 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à 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

Poi riavvia Looker con ./looker restart.

Autenticazione con Kerberos

Autenticazione degli utenti
  1. Se krb5.conf non è in /etc/, utilizza la variabile di ambiente KRB5_CONFIG per indicarne la posizione.

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

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

  4. L'account utilizzato con Looker sarà probabilmente headless, quindi puoi ottenere un file keytab da Kerberos per archiviare le credenziali 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 venga eseguito periodicamente 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 data di scadenza dei biglietti.

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 come segue (per ulteriori informazioni, consulta la pagina della documentazione Connessione di Looker al database):

  • Nome: il nome della connessione. Questo è il modo in cui verrà fatto 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.

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

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

  • 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 i PDT sono abilitati, la finestra Connessione mostra impostazioni PDT aggiuntive e la sezione Override PDT.

  • Database temporaneo: uno schema/database temporaneo per l'archiviazione delle PDT. 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. I contratti in tre parti sono standard. Il primo (impala) è in genere il nome del servizio, mentre l'ultimo (REALM) è in genere il realm.

  • 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, 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.

È una best practice che il nome del server (impala.company.com in questo esempio) sia il nome canonico del server e che la ricerca DNS inversa del suo indirizzo IP restituisca questo nome. Tuttavia, il nome del server deve corrispondere a 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 in modo che corrisponda al nome host e non al nome di dominio completo. In questo caso, potrebbe essere necessario modificare i file /etc/hosts e /etc/nsswitch.conf per assicurarsi che le ricerche inverse vengano risolte come previsto.

Verifica la connessione per assicurarti che sia configurata correttamente.

Debug

Risorse

Autorizzazioni per i PDT

L'utente che si connette allo schema di 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

A partire da Looker 25.10, Cloudera Impala con driver nativo supporta le seguenti funzionalità:

Funzionalità Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
No
Aggregati simmetrici
No
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
No
Parametri JDBC aggiuntivi
Sensibile alle maiuscole
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile valori distinti
No
SQL Runner Show Processes
No
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
No
Aggregate awareness
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Misure di periodo in periodo
No
Conteggio approssimativo dei valori distinti

Cloudera Impala 3.1+

A partire da Looker 25.10, Cloudera Impala 3.1+ 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
No
Parametri JDBC aggiuntivi
Sensibile alle maiuscole
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile valori distinti
No
SQL Runner Show Processes
No
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
No
Aggregate awareness
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Misure di periodo in periodo
No
Conteggio approssimativo dei valori distinti

Cloudera Impala 3.1+ con driver nativo

A partire da Looker 25.10, Cloudera Impala 3.1+ con driver nativo supporta le seguenti funzionalità:

Funzionalità Supportato?
Livello di assistenza
Supportato
Looker (Google Cloud core)
No
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
No
Parametri JDBC aggiuntivi
Sensibile alle maiuscole
Tipo di località
Tipo di elenco
No
Percentile
No
Percentile valori distinti
No
SQL Runner Show Processes
No
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
No
Aggregate awareness
PDT incrementali
No
Millisecondi
Microsecondi
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.