Cloudera Impala 3.1+ und Cloudera Impala mit nativem Treiber

Dialekte, für die diese Anweisungen relevant sind

Looker stellt eine Verbindung zu den folgenden Impala-Datenbanken her:

  • Cloudera Impala 3.1+
  • Cloudera Impala 3.1+ mit nativem Treiber
  • Cloudera Impala mit nativem Fahrer

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 mit 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 Daemon impalad auf Port 21050 ausgeführt wird. Weitere Informationen finden Sie im Abschnitt Impala für die Arbeit mit JDBC konfigurieren der Dokumentation auf der Cloudera-Website.

Wählen Sie im Bereich Admin von Looker 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, die kein Kerberos oder keine Nutzerauthentifizierung verwendet:

  1. Lassen Sie auf der Seite Verbindungseinstellungen die Felder Nutzername und Passwort leer. (* neben den Feldnamen impliziert, dass diese Felder erforderlich sind, sind es aber nicht.)
  2. 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 Protokoll. Filtern Sie dann das Protokoll nach einem Begriff wie jdbc oder noSasl. Die Protokollzeile sieht in etwa so aus:

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

Verbindung zu einem mit Kerberos gesicherten Cluster herstellen, ohne Apache Sentry verwenden zu können

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

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 mithilfe der Kerberos-Authentifizierung hergestellt wird, befolgen Sie die Schritte auf dieser Seite.

Kerberos-Clientkonfiguration einrichten

Zuerst müssen Sie die Installation mehrerer Softwareprogramme und das Vorhandensein mehrerer Dateien auf dem Looker-Computer sicherstellen.

Kerberos-Client

Führen Sie kinit aus, um zu prüfen, ob der Kerberos-Client auf dem Looker-Computer installiert ist. 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 sowie in den PATH und JAVA_HOME des Looker-Nutzers installiert sein. Installieren Sie ihn bei Bedarf lokal im Verzeichnis looker.

Java Cryptography-Erweiterung
  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.

    Möglicherweise können ältere Java-Versionen als Java 8 verwendet werden, wenn JCE installiert ist. Dies wird jedoch nicht empfohlen.

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

  3. Überprü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 Datei gss-jaas.conf mit folgendem Inhalt:

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

Wenn dies zum Testen 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 ebenfalls eine gültige krb5.conf-Datei haben. Diese Datei befindet sich standardmäßig in /etc/krb5.conf. Befindet es sich an einem anderen Ort, muss dies in der Umgebung angegeben werden (KRB5_CONFIG in der Shell-Umgebung).

Möglicherweise müssen Sie diesen Code 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 (demselben Verzeichnis, in dem sich das Startskript looker befindet) namens lookerstart.cfg, das 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 außerdem diese Variable hinzugefügt werden:

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

Fügen Sie für das Debugging die folgenden 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 ihren Speicherort anzugeben.

  2. Führen Sie den Befehl klist aus, um zu prüfen, ob sich im Kerberos-Ticketcache ein gültiges Ticket befindet.

  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 wird wahrscheinlich monitorlos sein, 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 sollte, hängt von der Konfiguration des Clusters ab. klist sollte einen Hinweis darauf geben, wie schnell Tickets ablaufen.

Looker-Verbindung zu Ihrer Datenbank erstellen

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

Geben Sie die Verbindungsdetails wie unten beschrieben ein (weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden):

  • Name: Der Name der Verbindung. So wird im LookML-Modell auf die Verbindung verwiesen.
  • Dialekt: Cloudera Impala 3.1 und höher, Cloudera Impala 3.1 und 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: Verwenden Sie diese Ein/Aus-Schaltfläche, um nichtflüchtige 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: Ein temporäres Schema bzw. eine temporäre Datenbank zum Speichern von PATs. Diese 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. Der erste (impala) ist in der Regel der Name des Dienstes und der 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 weithin 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 korrekter JDBC-Strings für Impala-Datenbanken finden Sie in der Cloudera-Dokumentation.

  • Datenbank-Zeitzone: 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 festzulegen, und der umgekehrte DNS-Lookup für die IP-Adresse zu diesem Namen führt. 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 verwendet. In diesem Fall ist es möglicherweise erforderlich, die Dateien /etc/hosts und /etc/nsswitch.conf zu ändern, damit Reverse-Lookups wie vorgesehen aufgelöst werden.

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

Debugging

Ressourcen

Berechtigungen für PATs

Der Nutzer, der eine Verbindung zum Scratch-Schema für nichtflüchtige abgeleitete Tabellen (PDTs) herstellt, muss Lese-/Schreibberechtigungen haben.

Unterstützte Funktionen

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

Cloudera Impala mit nativem Fahrer

Cloudera Impala mit nativem Treiber unterstützt ab Looker 24.6 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Nein
Symmetrische Summen
Nein
Abgeleitete Tabellen
Ja
Abgeleitete SQL-Tabellen
Ja
Nichtflüchtige 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ß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Nein
SQL-Runner – Tabelle beschreiben
Ja
SQL Runner – Indexe anzeigen
Nein
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
SQL erklären
Ja
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Ja

Cloudera Impala 3.1+

Cloudera Impala 3.1+ unterstützt ab Looker 24.6 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Abgeleitete SQL-Tabellen
Ja
Nichtflüchtige 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ß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Nein
SQL-Runner – Tabelle beschreiben
Ja
SQL Runner – Indexe anzeigen
Nein
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
SQL erklären
Ja
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Ja

Cloudera Impala 3.1+ mit nativem Treiber

Cloudera Impala 3.1+ mit nativem Treiber unterstützt ab Looker 24.6 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Nein
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Abgeleitete SQL-Tabellen
Ja
Nichtflüchtige 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ß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Nein
Perzentil
Nein
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Nein
SQL-Runner – Tabelle beschreiben
Ja
SQL Runner – Indexe anzeigen
Nein
SQL Runner Select 10
Ja
Anzahl der SQL-Runner
Ja
SQL erklären
Ja
OAuth-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Nein
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Ja
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Ja

Weitere Informationen

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