Dialekte, für die diese Anweisungen relevant sind
Looker kann eine Verbindung zu den folgenden Impala-Datenbanken herstellen:
- 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. Prüfen Sie eine der Optionen, die auf der Dokumentationsseite Sicheren Datenbankzugriff ermöglichen beschrieben werden.
Looker für die Verbindung zu Cloudera Impala konfigurieren
Looker stellt über eine JDBC-Verbindung eine Verbindung zu Datenbanken her. Bei Impala-Datenbanken stellt Looker standardmäßig eine Verbindung zum Server her, auf dem der impalad
-Daemon auf Port 21050 ausgeführt wird. Weitere Informationen finden Sie auf der Cloudera-Website im Dokumentationsabschnitt Configuring Impala to work with JDBC.
Wählen Sie in Looker im Bereich Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.
Die Konfiguration der Looker-Verbindung hängt von der verwendeten Sicherheit ab:
- Cluster ohne Kerberos oder Nutzerauthentifizierung
- Ein Cluster, für den eine LDAP-Authentifizierung erforderlich ist
- Ein mit Kerberos gesicherter Cluster, der Apache Sentry nicht verwendet
Verbindung zu einem Cluster ohne Kerberos- oder Nutzerauthentifizierung herstellen
So konfigurieren Sie eine Verbindung, für die keine Kerberos- oder Nutzerauthentifizierung verwendet wird:
- Lassen Sie auf der Seite Verbindungseinstellungen die Felder Nutzername und Passwort leer. Das
*
neben den Feldnamen deutet darauf hin, dass diese Felder erforderlich sind. Das ist jedoch nicht der Fall. - Geben Sie im Feld Zusätzliche JDBC-Parameter
;auth=noSasl
ein.
Verbindungsstring prüfen
Wenn Sie den JDBC-Verbindungs-String in den Logdateien prüfen möchten, klicken Sie in Looker im Bereich Admin im linken Menü auf Log. Filtern Sie das Log dann nach einem Begriff wie jdbc
oder noSasl
. Die Logzeile könnte etwa so aussehen:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Weitere Informationen zum Konfigurieren von Impala-Datenbanken für die Verwendung mit 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 für einen Cluster, der eine LDAP-Authentifizierung erfordert, einschließlich eines Clusters mit Apache Sentry und Kerberos, auf der Seite Connection Settings (Verbindungseinstellungen) einen Username (Nutzername) und ein Password (Passwort) mit Zugriff auf die Schemas ein, auf die Looker zugreifen wird.
Verbindung zu einem mit Kerberos geschützten Cluster herstellen, ohne Apache Sentry zu verwenden
Möglicherweise muss das Looker Analyst-Team bei der richtigen Konfiguration dieser Verbindung helfen.
Normalerweise wird die Kerberos-Authentifizierung mit Cloudera-Umgebungen ü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 über die Kerberos-Authentifizierung hergestellt wird, folgen Sie der Anleitung auf dieser Seite.
Kerberos-Clientkonfiguration einrichten
Zuerst müssen Sie dafür sorgen, dass auf dem Looker-Computer verschiedene Softwarekomponenten installiert sind und verschiedene Dateien vorhanden sind.
Kerberos-Client
Prüfen Sie, ob der Kerberos-Client auf dem Looker-Computer installiert ist. Führen Sie dazu kinit
aus. 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 Verzeichnissen PATH
und JAVA_HOME
des Looker-Nutzers installiert sein. Installieren Sie es bei Bedarf lokal im Verzeichnis looker
.
Java Cryptography Extension
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 JCE Unlimited Strength Jurisdiction Policy Files enthalten sind.
Es ist möglicherweise möglich, Versionen von Java vor Java 8 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 richtige 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 eine gss-jaas.conf
-Datei im Verzeichnis looker
mit folgendem Inhalt:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Falls für Tests erforderlich, kann debug=true
so in diese Datei eingefü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, sollte sich auch eine gültige krb5.conf
-Datei befinden. Standardmäßig befindet sich diese Datei in /etc/krb5.conf
. Wenn es sich an einem anderen Ort befindet, muss dies in der Umgebung angegeben werden (KRB5_CONFIG
in der Shell-Umgebung).
Möglicherweise müssen Sie diese von einem anderen Kerberos-Clientcomputer kopieren.
lookerstart.cfg
Verweisen Sie auf die Dateien gss-jaas.conf
und krb5.conf
, indem Sie im Verzeichnis looker
(demselben Verzeichnis, das das Startskript looker
enthält) eine Datei namens lookerstart.cfg
mit den folgenden Zeilen erstellen:
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 auch diese Variable hinzugefügt werden:
-Djava.security.krb5.conf=/path/to/krb5.conf
Fügen Sie zum Debuggen die folgenden Variablen hinzu:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Starten Sie Looker dann mit ./looker restart
neu.
Authentifizierung mit Kerberos
Nutzerauthentifizierung
Wenn
krb5.conf
nicht in/etc/
enthalten ist, verwenden Sie die UmgebungsvariableKRB5_CONFIG
, um den Speicherort anzugeben.Führen Sie den Befehl
klist
aus, um zu prüfen, ob sich ein gültiges Ticket im Kerberos-Ticketcache 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 ein Headless-Konto. Sie können also eine Keytab-Datei von Kerberos abrufen, 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 Cron-Job ein, der in regelmäßigen Abständen ausgeführt wird, um ein aktives Ticket im Kerberos-Ticketcache zu behalten. Wie oft dies ausgeführt werden sollte, hängt von der Konfiguration des Clusters ab. klist
sollte einen Hinweis darauf geben, wie bald 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.
Geben Sie die Verbindungsdetails wie folgt ein (weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden):
- Name: Der Name der Verbindung. So wird in LookML auf die Verbindung verwiesen.
Dialekt: Cloudera Impala 3.1+, Cloudera Impala 3.1+ with Native Driver oder Cloudera Impala with Native Driver.
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 das Feld leer.
Passwort: Lassen Sie dieses Feld leer.
PDTs aktivieren: Mit diesem Schalter können Sie persistente abgeleitete Tabellen aktivieren. Wenn PDTs aktiviert sind, werden im Fenster Verbindung zusätzliche PDT-Einstellungen und der Bereich PDT-Überschreibungen angezeigt.
Temporäre Datenbank: Ein temporäres Schema/eine temporäre Datenbank zum Speichern von PDTs. Diese muss im Voraus 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 Grundsätze sind Standard. Die erste (impala
) ist in der Regel der Name des Dienstes und die letzte (REALM
) 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, müssen Sie Folgendes tun:
- Kopieren Sie die Zertifikatsdatei auf den Looker-Server. Diese Funktion 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.
- Zeitzone der Datenbank: Die Zeitzone der in Ihrer Datenbank gespeicherten Daten. Normalerweise kann dieses Feld leer gelassen oder auf UTC gesetzt werden.
Es empfiehlt sich, den Servernamen (in diesem Beispiel impala.company.com
) als kanonischen Namen für den Server zu verwenden. Die Reverse-DNS-Suche der IP-Adresse des Servers sollte diesen Namen zurückgeben. Der Servername sollte jedoch dem Namen entsprechen, 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 der Servername auf den Hostnamen und nicht auf den vollständig qualifizierten Domainnamen festgelegt. In diesem Fall müssen Sie möglicherweise die Dateien /etc/hosts
und /etc/nsswitch.conf
ändern, damit die Reverse-Lookups wie vorgesehen aufgelöst werden.
Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.
Debugging
- Dokumentation von Cloudera zur Fehlerbehebung bei der Impala-Authentifizierung
- Wenn Sie der Konfiguration Debugging hinzufügen, werden die zusätzlichen Debugging-Informationen in
looker/logs/looker.log
gespeichert.
Ressourcen
- Kerberos-Authentifizierung für Impala aktivieren (Cloudera-Dokumentation)
- kinit-Manpage
- klist-Manpage
- Dokumentation zu gss-jaas.conf
- Dokumentation zu Krb5LoginModule
Berechtigungen für PDTs
Der Nutzer, der eine Verbindung zum Scratch-Schema für persistente abgeleitete Tabellen (Persistent Derived Tables, 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 nativem Treiber unterstützt ab Looker 25.10 die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Nein |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Nein |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Nein |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Ja |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Ja |
Cloudera Impala 3.1 und höher
Cloudera Impala 3.1 und höher unterstützt ab Looker 25.10 die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Ja |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Nein |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Nein |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Ja |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Ja |
Cloudera Impala 3.1+ mit nativem Treiber
Cloudera Impala 3.1 und höher mit nativem Treiber unterstützt ab Looker 25.10 die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Nein |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Persistente SQL-basierte abgeleitete Tabellen | Ja |
Persistente native abgeleitete Tabellen | Ja |
Stabile Ansichten | Ja |
Abfrage beenden | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Nein |
Zusätzliche JDBC-Parameter | Ja |
Groß- und Kleinschreibung | Ja |
Standorttyp | Ja |
Listentyp | Nein |
Perzentil | Nein |
Perzentil der unterschiedlichen Werte | Nein |
SQL Runner – Prozesse anzeigen | Nein |
SQL-Runner-Funktion „Tabelle beschreiben“ | Ja |
SQL Runner-Befehl „Show Indexes“ | Nein |
SQL Runner Select 10 | Ja |
SQL-Runner-Zählung | Ja |
SQL Explain | Ja |
OAuth 2.0-Anmeldedaten | Nein |
Kontextkommentare | Ja |
Verbindungs-Pooling | Nein |
HLL-Skizzen | Nein |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Nein |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Nein |
Ungefähre Anzahl einzelner Aufrufe | Ja |
Nächste Schritte
Nachdem Sie Ihre Datenbank mit Looker verbunden haben, können Sie Anmeldeoptionen für Ihre Nutzer konfigurieren.