Logo: Cloudera Impala

Dialekte, für die diese Anweisungen relevant sind

Cloudera Impala teilt die auf dieser Seite beschriebenen Anforderungen für die Datenbankeinrichtung.

Looker für die Verbindung mit Cloudera Impala konfigurieren

Looker stellt über eine JDBC-Verbindung eine Verbindung zu jeder Datenbank her. Standardmäßig ist das in Cloudera Impala der Server, auf dem der Daemon impalad an Port 21050 ausgeführt wird.

Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.

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

Verbindung zu einem Cluster ohne Kerberos oder Nutzerauthentifizierung herstellen

So konfigurieren Sie eine Verbindung, für die Kerberos oder Nutzerauthentifizierung nicht verwendet wird:

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

Verbindungsstring prüfen

Um den JDBC-Verbindungsstring in den Protokolldateien zu prüfen, klicken Sie im Looker-Steuerfeld Admin im linken Menü auf Log. Filtern Sie das Protokoll dann nach einem Begriff wie jdbc oder noSasl. Die Logzeile kann in etwa so aussehen:

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

Weitere Informationen zum Konfigurieren von Cloudera Impala für die Verwendung mit JDBC finden Sie in der Cloudera-Dokumentation.

Verbindung zu einem Cluster herstellen, der eine LDAP-Authentifizierung erfordert

Für einen Cluster, der eine LDAP-Authentifizierung erfordert, einschließlich eines Clusters mit Apache Sentry und Kerberos, geben Sie auf der Seite Connection Settings (Verbindungseinstellungen) einen Nutzernamen und ein Password mit Zugriff auf die Schemas ein, auf die Looker zugreifen kann.

Verbindung zu einem Cluster, der mit Kerberos gesichert ist, aber nicht Apache Sentry verwendet

Das Looker-Analystenteam muss Sie möglicherweise bei der richtigen Konfiguration unterstützen.

In der Regel erfolgt die Kerberos-Authentifizierung mit Cloudera-Umgebungen über Apache Sentry. Weitere Informationen finden Sie in der Cloudera-Dokumentation.

Wenn Sie Looker für die direkte Verbindung mit Cloudera Impala konfigurieren möchten, führen Sie die Schritte auf dieser Seite aus.

Kerberos-Clientkonfiguration einrichten

Zuerst müssen Sie einige Softwareprogramme installieren und mehrere Dateien auf dem Looker-Computer installieren.

Kerberos-Client

Prüfen Sie mit dem Befehl kinit, ob der Kerberos-Client auf dem Looker-Computer installiert ist. Ist dies nicht der Fall, installieren Sie die Binärprogramme des Kerberos-Clients.

Bei Redhat/CentOS wäre das z. B.:

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

Java 8

Java 8 muss auf dem Looker-Computer und im PATH und JAVA_HOME des Looker-Nutzers installiert werden. Installieren Sie sie bei Bedarf lokal im Verzeichnis looker.

Java-Kryptografie-Erweiterung
  1. Sie können die Java Cryptography Extension (JCE) für Java 8 von der Oracle-Website herunterladen und installieren.

    • 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öglich, Java-Versionen vor Java 8 mit installiertem JCE zu verwenden. Dies wird jedoch nicht empfohlen.

  2. Aktualisieren Sie JAVA_HOME und PATH in ~looker/.bash_profile, damit Nutzer 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. Überprü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;
};

Wenn dies für den Test erforderlich ist, kann debug=true so zu dieser Datei hinzugefügt werden:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};
krb5.conf

Der Server, auf dem Looker ausgeführt wird, sollte außerdem eine gültige krb5.conf-Datei haben. Diese Datei befindet sich standardmäßig in /etc/krb5.conf. Wenn es sich 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

Bewegen Sie den Mauszeiger auf die Dateien gss-jaas.conf und krb5.conf, indem Sie im Verzeichnis looker (demselben Verzeichnis, das das Startskript looker enthält) die Datei 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=""

Ist die Datei krb5.conf nicht unter /etc/krb5.conf vorhanden, müssen Sie auch folgende Variable hinzufügen:

  -Djava.security.krb5.conf=/path/to/krb5.conf

Fügen Sie für die Fehlerbehebung folgende Variablen hinzu:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

Starten Sie dann Looker mit ./looker restart neu.

Mit Kerberos authentifizieren

Nutzerauthentifizierung
  1. Wenn krb5.conf nicht in /etc/ enthalten ist, verwenden Sie die Umgebungsvariable KRB5_CONFIG, um den Standort anzugeben.

  2. Führen Sie den Befehl klist aus, damit im Kerberos-Ticket-Cache ein gültiges Ticket enthalten ist.

  3. Wenn kein Ticket vorhanden ist, führen Sie kinit username@REALM oder kinit username aus, um das Ticket zu erstellen.

  4. Das mit Looker verwendete Konto hat wahrscheinlich keine Benutzeroberfläche. Sie können also eine Keytab-Datei von Kerberos abrufen, um die Anmeldedaten zur langfristigen Nutzung zu speichern. Verwenden Sie einen Befehl wie kinit -k -t looker_user.keytab username@REALM, um das Kerberos-Ticket zu erhalten.

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 Ihnen mitteilen, wann Tickets ablaufen.

Looker-Verbindung einrichten

Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.

Geben Sie die Verbindungsdetails so ein: Weitere Informationen finden Sie auf der Seite Verbindung zwischen Looker und Datenbank herstellen:

  • Name: Der Name der Verbindung. So wird im LookML-Modell auf die Verbindung verwiesen.
  • Dialekt: Cloudera Impala oder Cloudera Impala 3.1+.
  • Host: Hostname
  • Port: Datenbankport (standardmäßig 21050).
  • Datenbank: Das Standardschema/die Datenbank, die modelliert wird. Wenn für eine Tabelle keine Datenbank angegeben ist, wird davon ausgegangen.
  • Nutzername: Lassen Sie dieses Feld leer.
  • Password (Passwort): Lassen Sie dieses Feld leer.
  • PDTs aktivieren: Aktivieren Sie diese Option, um persistente abgeleitete Tabellen zu aktivieren. Wenn PATs aktiviert sind, werden im Fenster Verbindung zusätzliche PAT-Einstellungen und der Abschnitt PDT-Überschreibungen angezeigt.
  • Temporäre Datenbank: Eine temporäre Schema/Datenbank zum Speichern von PATs. Dieser muss vorab 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 nutzen. Wenn Ihr SSL-Zertifikat nicht von einer 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 korrekten JDBC-Strings für Impala-Datenbanken finden Sie in der Cloudera-Dokumentation.

  • Database Time Zone: Die Zeitzone der in Ihrer Datenbank gespeicherten Daten. In der Regel kann das Feld leer bleiben oder auf UTC gesetzt werden.

Als Best Practice sollte der Servername (in diesem Beispiel impala.company.com) der kanonische Name für den Server und der umgekehrte DNS-Lookup durch die IP-Adresse in diesem Namen sein. Der Servername muss jedoch der im Kerberos-Domaincontroller aufgeführte Name sein:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

Manchmal wird der Servername als Hostname festgelegt und nicht für den voll qualifizierten Domainnamen. In diesem Fall kann es erforderlich sein, die Dateien /etc/hosts und /etc/nsswitch.conf zu ändern, damit die Reverse-Lookups wie gewünscht aufgelöst werden.

Testen Sie die Verbindung, um zu prüfen, ob sie richtig konfiguriert ist.

Debugging

Ressourcen

Hinweise

Der Nutzer, der eine Verbindung zum Scratch-Schema für PDTs herstellt, muss Lese-/Schreibberechtigungen haben.

Referenz

Weitere Informationen finden Sie in der Cloudera-Dokumentation im Abschnitt Impala für die Arbeit mit JDBC konfigurieren.

Unterstützte Funktionen

Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.

Logo: Cloudera Impala

Cloud Looker Impala unterstützt die folgenden Features ab Looker 23.8:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Nein
Symmetrische Summen
Nein
Abgeleitete Tabellen
Ja
Über SQL abgeleitete Tabellen
Ja
Nichtflüchtige native abgeleitete Tabellen
Ja
Stabile Aufrufe
Ja
Abfrageabbau
Ja
SQL-basierte Pivots
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Nein
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Eindeutiges Perzentil
Nein
Prozesse der SQL Runner-Sendung
Nein
SQL-Runner-Beschreibungstabelle
Ja
SQL-Runner-Show-Indizes
Nein
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
Erläuterung zu SQL
Ja
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Sketche
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansichten
Nein
Ungefähre Anzahl Einzeln
Ja

Cloudera Impala 3.1+

Cloudera Impala 3.1+ unterstützt die folgenden Features ab Looker 23.8:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Über SQL abgeleitete Tabellen
Ja
Nichtflüchtige native abgeleitete Tabellen
Ja
Stabile Aufrufe
Ja
Abfrageabbau
Ja
SQL-basierte Pivots
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Nein
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Eindeutiges Perzentil
Nein
Prozesse der SQL Runner-Sendung
Nein
SQL-Runner-Beschreibungstabelle
Ja
SQL-Runner-Show-Indizes
Nein
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
Erläuterung zu SQL
Ja
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Sketche
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansichten
Nein
Ungefähre Anzahl Einzeln
Ja

Nächste Schritte

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