Cloudera Impala 3.1 und höher sowie Cloudera Impala mit nativem Treiber

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 und höher mit nativem Treiber
  • Cloudera Impala mit nativem Treiber

Netzwerkverkehr verschlüsseln

Es wird empfohlen, 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 in der Dokumentation auf der Cloudera-Website im Abschnitt Impala für die Arbeit mit JDBC konfigurieren.

Wählen Sie in Looker im Bereich Verwaltung die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.

Die Konfiguration der Looker-Verbindung hängt von der verwendeten Sicherheit ab:

Verbindung zu einem Cluster ohne Kerberos- oder Nutzerauthentifizierung herstellen

So konfigurieren Sie eine Verbindung, bei der keine Kerberos- oder Nutzerauthentifizierung verwendet wird:

  1. Lassen Sie auf der Seite Verbindungseinstellungen die Felder Nutzername und Passwort leer. Das * neben den Feldnamen bedeutet nicht, dass diese Felder erforderlich sind.
  2. Geben Sie im Feld Zusätzliche JDBC-Parameter den Wert ;auth=noSasl ein.

Verbindungsstring prüfen

Um den JDBC-Verbindungsstring in den Protokolldateien zu prüfen, klicken Sie im Looker-Steuerfeld Verwaltung im Menü auf der linken Seite auf Protokoll. Filtern Sie das Protokoll dann nach einem Begriff wie jdbc oder noSasl. Die Logzeile könnte in 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, für den eine LDAP-Authentifizierung erforderlich ist, 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 zugreifen soll.

Verbindung zu einem mit Kerberos gesicherten Cluster, aber ohne Apache Sentry

Das Looker-Analystenteam muss möglicherweise bei der korrekten Konfiguration dieser Verbindung helfen.

Normalerweise wird die Kerberos-Authentifizierung in 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 mehrere Softwarekomponenten installiert sind und mehrere Dateien auf dem Looker-Rechner vorhanden sind.

Kerberos-Client

Prüfen Sie, ob der Kerberos-Client auf dem Looker-Rechner installiert ist. Führen Sie dazu kinit aus. Wenn der Kerberos-Client nicht installiert ist, installieren Sie die Binärdateien des Kerberos-Clients.

Unter 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. Installieren Sie es gegebenenfalls lokal im Verzeichnis looker.

Java Cryptography Extension
  1. 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 und US_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.

  2. Aktualisieren Sie JAVA_HOME und PATH in ~looker/.bash_profile, damit sie auf die richtige Installation von Java und source ~/.bash_profile verweisen, oder melden Sie sich ab und wieder an.

  3. Prüfen Sie die Java-Version mit java -version.

  4. Prüfen Sie die Umgebungsvariable JAVA_HOME mit echo $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;
};

Falls für den Test erforderlich, 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. Standardmäßig befindet sich diese Datei unter /etc/krb5.conf. Wenn sich das Script an einem anderen Speicherort 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, müssen Sie auch diese Variable hinzufügen:

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

Mit Kerberos authentifizieren

Nutzerauthentifizierung
  1. Wenn sich krb5.conf nicht in /etc/ befindet, geben Sie den Speicherort mit der Umgebungsvariablen KRB5_CONFIG an.

  2. Führen Sie den Befehl klist aus, um sicherzustellen, dass sich im Kerberos-Ticket-Cache ein gültiges Ticket befindet.

  3. Wenn kein Ticket vorhanden ist, führe kinit username@REALM oder kinit username aus, um ein Ticket zu erstellen.

  4. Das mit Looker verwendete Konto ist wahrscheinlich headless. 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-Ticket-Cache zu halten. Wie oft dies erfolgen 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 Verwaltung 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. Dies ist die Art und Weise, auf die in LookML auf die Verbindung verwiesen wird.
  • 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/die Standarddatenbank, die modelliert werden soll. Wenn für eine Tabelle keine Datenbank angegeben ist, wird diese angenommen.

  • 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 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. Dieser muss vorher erstellt werden.

  • Zusätzliche JDBC-Parameter: Zusätzliche Parameter für den JDBC-String. Geben Sie hier den Kerberos-Prinzipal an, z. B. ;principal=impala/impala.company.com@REALM. Dreiteilige Prinzipien sind Standard. Der erste (impala) ist in der Regel der Name des Dienstes und der letzte (REALM) ist in der Regel der Bereich.

  • SSL: Aktivieren Sie SSL-Verbindungen. 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. In der Regel kann dieses Feld leer bleiben oder auf UTC festgelegt werden.

Es wird empfohlen, dass der Servername (impala.company.com in diesem Beispiel) der kanonische Name für den Server ist und dass die umgekehrte DNS-Suche seiner IP-Adresse zu diesem Namen führt. Der Servername sollte jedoch mit dem im Kerberos-Domaincontroller aufgeführten übereinstimmen:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

Manchmal ist der Servername als Hostname und nicht als vollständig qualifizierter Domainname festgelegt. In diesem Fall müssen Sie möglicherweise die Dateien /etc/hosts und /etc/nsswitch.conf ändern, damit Rückwärtsabfragen wie vorgesehen aufgelöst werden.

Testen Sie die Verbindung, um sicherzustellen, dass sie richtig konfiguriert ist.

Debugging

Ressourcen

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 25.0 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
Abfrage beenden
Ja
SQL-basierte Pivot-Tabellen
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 Describe Table
Ja
SQL Runner-Indexe für Serien
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 Aufrufe
Ja

Cloudera Impala 3.1 und höher

Cloudera Impala 3.1 und höher unterstützt ab Looker 25.0 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
Abfrage beenden
Ja
SQL-basierte Pivot-Tabellen
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 Describe Table
Ja
SQL Runner-Indexe für Serien
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 Aufrufe
Ja

Cloudera Impala 3.1 und höher mit nativem Treiber

Cloudera Impala 3.1 und höher mit Native Driver unterstützt ab Looker 25.0 die folgenden Funktionen:

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
Abfrage beenden
Ja
SQL-basierte Pivot-Tabellen
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 Describe Table
Ja
SQL Runner-Indexe für Serien
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 Aufrufe
Ja

Nächste Schritte

Nachdem Sie Ihre Datenbank mit Looker verbunden haben, konfigurieren Sie die Anmeldeoptionen für Ihre Nutzer.