Dialekte, für die diese Anweisungen relevant sind
Looker stellt eine Verbindung zu folgenden Impala-Datenbanken her:
- Cloudera Impala 3.1 und höher
- Cloudera Impala 3.1+ mit nativem Treiber
- Cloudera Impala mit nativem Treiber
Netzwerk-Datenverkehr verschlüsseln
Es empfiehlt sich, den Netzwerkverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Sehen Sie sich eine der Optionen an, die auf der Dokumentationsseite Sicheren Datenbankzugriff aktivieren beschrieben werden.
Looker für die Verbindung zu Cloudera Impala konfigurieren
Looker stellt über eine JDBC-Verbindung eine Verbindung zu den Datenbanken her. Bei Impala-Datenbanken stellt Looker standardmäßig eine Verbindung zu dem Server her, auf dem der impalad
-Daemon auf Port 21050 ausgeführt wird. Weitere Informationen finden Sie in der Dokumentation auf der Cloudera-Website im Abschnitt Impala für JDBC konfigurieren.
Wählen Sie in Looker im Bereich Verwaltung die Option Verbindungen und dann Verbindung hinzufügen aus.
Die Konfiguration der Looker-Verbindung hängt von der verwendeten Sicherheit ab:
- Ein Cluster, der weder Kerberos noch Nutzerauthentifizierung verwendet
- Ein Cluster, für den eine LDAP-Authentifizierung erforderlich ist
- Ein Cluster, der mit Kerberos gesichert ist, aber nicht Apache Sentry verwendet
Verbindung zu einem Cluster ohne Kerberos- oder Nutzerauthentifizierung herstellen
So konfigurieren Sie eine Verbindung, die weder Kerberos noch Nutzerauthentifizierung verwendet:
- Lassen Sie auf der Seite Verbindungseinstellungen die Felder Nutzername und Passwort leer. Das
*
neben den Feldnamen impliziert, dass diese Felder erforderlich sind, was aber nicht der Fall ist. - Geben Sie im Feld Zusätzliche JDBC-Parameter den Wert
;auth=noSasl
ein.
Verbindungsstring prüfen
Wenn Sie den JDBC-Verbindungsstring in den Protokolldateien prüfen möchten, klicken Sie im Looker-Bereich Admin im linken Menü auf Log (Protokoll). Filtern Sie dann das Log nach einem Begriff wie jdbc
oder noSasl
. Die Protokollzeile könnte etwa so aussehen:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Weitere Informationen zum Konfigurieren von Impala-Datenbanken für JDBC finden Sie in der Dokumentation auf der externen Cloudera-Website.
Verbindung zu einem Cluster herstellen, für den eine LDAP-Authentifizierung erforderlich ist
Geben Sie bei einem Cluster, der eine LDAP-Authentifizierung erfordert, einschließlich eines Clusters mit Apache Sentry und Kerberos, auf der Seite Verbindungseinstellungen einen Nutzernamen und ein Passwort mit Zugriff auf die Schemas ein, auf die Looker zugreift.
Verbindung zu einem mit Kerberos gesicherten Cluster, aber ohne Apache Sentry
Das Looker-Analyseteam muss möglicherweise bei der korrekten Konfiguration dieser Verbindung helfen.
Die Kerberos-Authentifizierung in Cloudera-Umgebungen wird normalerweise über Apache Sentry abgewickelt. Weitere Informationen finden Sie in der Cloudera-Dokumentation.
Wenn Sie Looker so konfigurieren möchten, dass eine direkte Verbindung zu Impala-Datenbanken mithilfe der Kerberos-Authentifizierung hergestellt wird, führen Sie die Schritte auf dieser Seite aus.
Kerberos-Clientkonfiguration einrichten
Zunächst müssen Sie sicherstellen, dass mehrere Softwarekomponenten installiert und mehrere Dateien auf dem Looker-Rechner vorhanden sind.
Kerberos-Client
Prüfen Sie, ob der Kerberos-Client auf der Looker-Maschine installiert ist, indem Sie versuchen, kinit
auszuführen. Wenn der Kerberos-Client nicht installiert ist, installieren Sie die Binärdateien des Kerberos-Clients.
Auf Redhat/CentOS wäre das beispielsweise:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 muss auf dem Looker-Computer und in den PATH
und JAVA_HOME
des Looker-Nutzers installiert sein. Falls erforderlich, installieren Sie sie lokal im Verzeichnis looker
.
Java Cryptography-Erweiterung
Laden Sie die Java Cryptography Extension (JCE) für Java 8 von der Oracle-Website herunter und installieren Sie sie.
- Suchen Sie das Verzeichnis
jre/lib/security
für die Java-Installation. - Entfernen Sie die folgenden JAR-Dateien aus diesem Verzeichnis:
local_policy.jar
undUS_export_policy.jar
. - Ersetzen Sie diese beiden Dateien durch die JAR-Dateien, die im Download der Richtliniendateien für die JCE Unlimited notwendig sind.
Es ist zwar möglich, ältere Java 8-Versionen mit installierter JCE zu verwenden, dies wird jedoch nicht empfohlen.
- Suchen Sie das Verzeichnis
Aktualisieren Sie
JAVA_HOME
undPATH
in~looker/.bash_profile
, damit sie auf die korrekte Installation von Java undsource ~/.bash_profile
verweisen, oder melden Sie sich ab und wieder an.Prüfen Sie die Java-Version mit
java -version
.Prüfen Sie die Umgebungsvariable
JAVA_HOME
mitecho $JAVA_HOME
.
gss-jaas.conf
Erstellen Sie im Verzeichnis looker
eine gss-jaas.conf
-Datei mit folgendem Inhalt:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Wenn dies für Tests erforderlich ist, kann debug=true
dieser Datei so hinzugefügt werden:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Auf dem Server, auf dem Looker ausgeführt wird, muss sich auch eine gültige krb5.conf
-Datei befinden. Diese Datei befindet sich standardmäßig in /etc/krb5.conf
. Wenn sie sich an einem anderen Ort befindet, muss dies in der Umgebung angegeben werden (KRB5_CONFIG
in der Shell-Umgebung).
Möglicherweise müssen Sie sie von einem anderen Kerberos-Clientcomputer kopieren.
lookerstart.cfg
Verweisen Sie auf die Dateien gss-jaas.conf
und krb5.conf
. Erstellen Sie dazu im Verzeichnis looker
(dem Verzeichnis, in dem sich das Startskript looker
befindet) eine Datei namens lookerstart.cfg
, die die folgenden Zeilen enthält:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
Wenn sich die Datei krb5.conf
nicht unter /etc/krb5.conf
befindet, muss zusätzlich diese Variable hinzugefügt werden:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie zur Fehlerbehebung folgende Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie Looker dann mit ./looker restart
neu.
Mit Kerberos authentifizieren
Nutzerauthentifizierung
Wenn sich
krb5.conf
nicht in/etc/
befindet, verwenden Sie die UmgebungsvariableKRB5_CONFIG
, um den Speicherort anzugeben.Führen Sie den Befehl
klist
aus, um sicherzustellen, dass sich im Kerberos-Ticket-Cache ein gültiges Ticket befindet.Wenn kein Ticket vorhanden ist, führen Sie
kinit username@REALM
oderkinit username
aus, um das Ticket zu erstellen.Das Konto, das mit Looker verwendet wird, ist wahrscheinlich monitorlos, sodass Sie eine Keytab-Datei von Kerberos abrufen können, um die Anmeldedaten für die langfristige Verwendung zu speichern. Verwenden Sie einen Befehl wie
kinit -k -t looker_user.keytab username@REALM
, um das Kerberos-Ticket abzurufen.
Ticket automatisch verlängern
Richten Sie einen Cronjob ein, der regelmäßig ausgeführt wird, um ein aktives Ticket im Kerberos-Ticket-Cache zu speichern. Wie oft dies ausgeführt werden soll, hängt von der Konfiguration des Clusters ab. klist
sollte einen Hinweis darauf geben, wann Tickets ablaufen.
Looker-Verbindung zu Ihrer Datenbank erstellen
Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Füllen Sie die Verbindungsdetails wie unten beschrieben aus. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
- Name: Der Name der Verbindung. Auf diese Weise wird im LookML-Modell auf die Verbindung verwiesen.
Dialekt: Cloudera Impala 3.1 oder höher, Cloudera Impala 3.1 oder höher mit nativem Treiber oder Cloudera Impala mit nativem Treiber.
Host: Hostname.
Port: Datenbankport (standardmäßig 21050).
Datenbank: Das Standardschema bzw. die Standarddatenbank, die modelliert wird. Wenn für eine Tabelle keine Datenbank angegeben ist, wird davon ausgegangen.
Nutzername: Lassen Sie dieses Feld leer.
Passwort: Lassen Sie dieses Feld leer.
PDTs aktivieren: Mit dieser Ein/Aus-Schaltfläche können Sie persistente abgeleitete Tabellen aktivieren. Wenn PDTs aktiviert sind, werden im Fenster Connection (Verbindung) zusätzliche PDT-Einstellungen und der Bereich PDT Overrides (PDT-Überschreibungen) angezeigt.
Temporäre Datenbank: Ein temporäres Schema bzw. eine temporäre Datenbank zum Speichern von PDTs Dies muss vorher erstellt werden.
Zusätzliche JDBC-Parameter: Zusätzliche Parameter für den JDBC-String. Geben Sie hier das Kerberos-Hauptkonto an, z. B.
;principal=impala/impala.company.com@REALM
. Dreiteilige Hauptkonten sind Standard. Die erste (impala
) ist in der Regel der Name des Dienstes und die letzte (REALM
) ist in der Regel der Bereich.SSL: Aktivieren Sie diese Option, um SSL-Verbindungen zu verwenden. Wenn Ihr SSL-Zertifikat nicht von einer allgemein anerkannten Zertifizierungsstelle ausgestellt wurde und Sie ein benutzerdefiniertes Zertifikat verwenden, gehen Sie so vor:
- Kopieren Sie die Zertifikatsdatei auf den Looker-Server. Diese Option ist nur für vom Kunden gehostete Looker-Bereitstellungen verfügbar.
- Fügen Sie dem Feld Zusätzliche JDBC-Parameter die folgenden Parameter hinzu:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Weitere Informationen zum Erstellen der richtigen JDBC-Strings für Impala-Datenbanken finden Sie in der Cloudera-Dokumentation.
- Datenbankzeitzone: Die Zeitzone der in Ihrer Datenbank gespeicherten Daten. Dieses Feld kann normalerweise leer gelassen oder auf UTC gesetzt werden.
Als Best Practice wird empfohlen, den Servernamen (in diesem Beispiel impala.company.com
) als kanonischen Namen für den Server zu verwenden. Der umgekehrte DNS-Lookup der IP-Adresse führt zu diesem Namen. Der Servername sollte jedoch der Name sein, der im Kerberos-Domaincontroller aufgeführt ist:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
Manchmal wird als Servername der Hostname und nicht der voll qualifizierte Domainname festgelegt. In diesem Fall müssen möglicherweise die Dateien /etc/hosts
und /etc/nsswitch.conf
geändert werden, damit Reverse-Lookups wie vorgesehen aufgelöst werden.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Debugging
- Cloudera-Dokumentation zur Fehlerbehebung bei Impala-Authentifizierungsproblemen
- Wenn Sie der Konfiguration eine Fehlerbehebung hinzufügen, werden die zusätzlichen Informationen zur Fehlerbehebung in
looker/logs/looker.log
verfügbar.
Ressourcen
- Kerberos-Authentifizierung für Impala aktivieren (Cloudera-Dokumentation)
- kinit-Manpage
- klist man page
- Dokumentation zu gss-jaas.conf
- Krb5LoginModule-Dokumentation
Berechtigungen für PDTs
Der Nutzer, der eine Verbindung zum Scratch-Schema für persistente abgeleitete Tabellen (PDTs) herstellt, muss Lese-/Schreibberechtigungen haben.
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Cloudera Impala mit nativem Treiber
Cloudera Impala mit Native Driver unterstützt ab Looker 24.14 die folgenden Funktionen:
Feature | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Nein |
Abgeleitete Tabellen | Ja |
Persistente SQL-Abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Anfrage wird abgebrochen | Ja |
SQL-basierte Drehpunkte | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Nein |
SQL Runner – Tabelle beschreiben | Ja |
SQL Runner – Indexe anzeigen | Nein |
SQL Runner – Select 10 | Ja |
Anzahl der SQL Runner | Ja |
SQL Explain | Ja |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl einzelner | Ja |
Cloudera Impala 3.1 und höher
Cloudera Impala 3.1+ unterstützt ab Looker 24.14 die folgenden Funktionen:
Feature | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Ja |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-Abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Anfrage wird abgebrochen | Ja |
SQL-basierte Drehpunkte | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Nein |
SQL Runner – Tabelle beschreiben | Ja |
SQL Runner – Indexe anzeigen | Nein |
SQL Runner – Select 10 | Ja |
Anzahl der SQL Runner | Ja |
SQL Explain | Ja |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl einzelner | Ja |
Cloudera Impala 3.1+ mit nativem Treiber
Cloudera Impala 3.1+ mit nativem Treiber unterstützt die folgenden Funktionen ab Looker 24.14:
Feature | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-Abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Anfrage wird abgebrochen | Ja |
SQL-basierte Drehpunkte | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Nein |
SQL Runner – Tabelle beschreiben | Ja |
SQL Runner – Indexe anzeigen | Nein |
SQL Runner – Select 10 | Ja |
Anzahl der SQL Runner | Ja |
SQL Explain | Ja |
OAuth-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl einzelner | Ja |
Nächste Schritte
Nachdem Sie die Datenbank mit Looker verbunden haben, konfigurieren Sie die Anmeldeoptionen für Ihre Nutzer.