PrestoDB und Trino

Auf diesen Seiten wird erläutert, wie Looker mit PrestoDB oder Trino verbunden wird.

Netzwerk-Datenverkehr 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-Verbindung zu Ihrer Datenbank erstellen

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

Geben Sie die Verbindungsdetails ein. Der Großteil der Einstellungen gilt für die meisten Datenbankdialekte. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden. Einige der Einstellungen werden im Folgenden beschrieben:

  • Dialekt: Wählen Sie PrestoDB oder Trino aus.

    PrestoSQL wurde in Trino umbenannt. Wenn Sie eine Trino-Version vor 352 verwenden, wählen Sie PrestoSQL aus dem Dialektmenü von Looker aus.

  • Host: Der Hostname der Datenbank.

  • Port: Der Datenbankport. Der Standardport ist 8080.

  • Datenbank: Der "Katalog" oder „Connector“ für Presto.

  • Username: Der Benutzername des Nutzers, der Abfragen ausführen soll.

    Diese Informationen werden nur dann an den Datenbankserver gesendet, wenn SSL aktiviert ist.

  • Password: Passwort des Nutzers, der Abfragen ausführen soll.

    Diese Informationen werden nur dann an den Datenbankserver gesendet, wenn SSL aktiviert ist.

  • Schema: Das Standardschema, das verwendet wird, wenn kein Schema angegeben ist.

  • Authentifizierung: Wählen Sie Datenbankkonto oder OAuth aus:

    • Geben Sie unter Datenbankkonto den Nutzernamen und das Passwort des Datenbanknutzerkontos an, das für die Verbindung mit Looker verwendet werden soll.
    • Verwenden Sie OAuth, wenn Sie OAuth für die Verbindung konfigurieren möchten.
  • PDTs aktivieren: Mit dieser Ein/Aus-Schaltfläche können Sie persistente abgeleitete Tabellen (PDTs) aktivieren. Dadurch werden zusätzliche PDT-Felder und der Abschnitt PDT Overrides (PDT-Überschreibungen) für die Verbindung angezeigt.

  • Temporäre Datenbank: Das Schema zum Schreiben von PDTs. (In Version 3.50 wurde Presto PDT-Unterstützung hinzugefügt. Weitere Informationen zur Konfiguration von Presto für die PDT-Unterstützung finden Sie im Abschnitt PrestoDB oder Trino für PDTs konfigurieren auf dieser Seite.

  • Zusätzliche JDBC-Parameter: Alle zusätzlichen Parameter aus dem PrestoDB-JDBC-Treiber, dem Trino-JDBC-Treiber oder dem Starburst-JDBC-Treiber.

  • SSL: Aktivieren Sie diese Option, um SSL-Verbindungen zu aktivieren.

  • SSL überprüfen: Ignorieren Sie dieses Feld. Für alle SSL-Verbindungen wird der Standard-Java-Truststore verwendet, sofern nicht über die PrestoDB-JDBC-Parameter, den Trino-JDBC-Treiber oder den Starburst-JDBC-Treiber etwas anderes angegeben wird. Geben Sie diese Parameter in das Feld Additional JDBC parameters (Zusätzliche JDBC-Parameter) ein.

Klicken Sie auf Testen, um zu prüfen, ob die Verbindung erfolgreich hergestellt wurde. Informationen zur Fehlerbehebung finden Sie auf der Dokumentationsseite Datenbankkonnektivität testen.

Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.

Weitere Informationen zu den Verbindungseinstellungen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.

PrestoDB oder Trino für PDTs konfigurieren

PDTs werden für Verbindungen, die OAuth verwenden, nicht unterstützt.

Die PDT-Unterstützung hängt vom von Ihnen mit PrestoDB oder Trino verwendeten Konnektor ab. In diesem Abschnitt werden die notwendigen Konfigurationseinstellungen für eine Scratch-Datenbank erläutert. In diesem Beispiel wird davon ausgegangen, dass Sie den Connector hive verwenden.

Die Hive-Katalogeigenschaftsdatei sollte einige Konfigurationseigenschaften enthalten, die in diesem Abschnitt beschrieben werden.

Folgendes ist erforderlich, da Presto die Hive-Metastore-Ergebnisse zwischenspeichert und Looker die Tabellen sofort sehen muss:

hive.metastore-cache-ttl = 0s

Diese beiden Eigenschaften sind notwendig, da Looker in der Lage sein muss, PDTs abzulegen und umzubenennen:

hive.allow-rename-table=true
hive.allow-drop-table=true

Zu Referenzzwecken verwenden wir auf unseren internen Presto-Testservern die folgende hive.properties-Datei, die für alle Hive-Schemata verwendet wird:

hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true

OAuth für Trino-Verbindungen konfigurieren

Looker unterstützt OAuth for Trino-Verbindungen. Das bedeutet, dass sich jeder Looker-Benutzer bei der Datenbank authentifiziert und Looker autorisiert, Abfragen in der Datenbank mit seinem eigenen OAuth-Benutzerkonto auszuführen.

Mit OAuth können Datenbankadministratoren die folgenden Aufgaben ausführen:

  • Überwachen, welche Looker-Benutzer Abfragen mit der Datenbank ausführen
  • Rollenbasierte Zugriffssteuerung mit Berechtigungen auf Datenbankebene erzwingen
  • OAuth-Tokens für alle Prozesse und Aktionen verwenden, die auf die Datenbank zugreifen, anstatt Datenbank-IDs und Passwörter an mehreren Stellen einzubetten
  • Autorisierung für einen bestimmten Nutzer direkt über die Datenbank widerrufen

Bei Trino-Verbindungen, die OAuth verwenden, müssen sich Nutzer regelmäßig neu anmelden, wenn ihre OAuth-Tokens ablaufen.

Beachten Sie Folgendes für OAuth-Verbindungen auf Datenbankebene:

  • Wenn ein Nutzer sein OAuth-Token ablaufen lässt, wirkt sich das auf alle seine Zeitpläne oder Benachrichtigungen aus. Um dies zu vermeiden, sendet Looker eine Benachrichtigungs-E-Mail an den Eigentümer jedes Zeitplans und jeder Benachrichtigung, bevor das aktuell aktive OAuth-Token abläuft. Looker sendet diese E-Mail-Benachrichtigungen 14 Tage, 7 Tage und 1 Tag vor Ablauf des Tokens. Der Benutzer kann seine Looker-Benutzerseite aufrufen, um Looker erneut für die Datenbank zu autorisieren und Unterbrechungen der Zeitpläne und Warnungen zu vermeiden. Weitere Informationen finden Sie auf der Dokumentationsseite Nutzerkonteneinstellungen personalisieren.
  • Da Datenbankverbindungen, die OAuth nutzen, nutzerspezifisch sind, Caching-Richtlinien gelten auch pro Nutzer und nicht nur pro Abfrage. Anstatt also jedes Mal Ergebnisse im Cache zu verwenden, wenn dieselbe Abfrage innerhalb des Caching-Zeitraums ausgeführt wird, verwendet Looker Ergebnisse im Cache nur, wenn derselbe Nutzer dieselbe Abfrage innerhalb des Caching-Zeitraums ausgeführt hat. Weitere Informationen zum Caching finden Sie auf der Dokumentationsseite Abfragen im Cache speichern.
  • Persistente abgeleitete Tabellen (PDTs) werden für Trino-Verbindungen mit OAuth nicht unterstützt.
  • Wenn ein Looker-Administrator im SUDO-Status als anderer Benutzer verwendet wird, verwendet der Administrator das OAuth-Zugriffstoken dieses Benutzers. Wenn das Zugriffstoken des Benutzers abgelaufen ist, kann der Administrator kein neues Token im Namen des Benutzers erstellen, für den er sich angemeldet hat. Informationen zur Verwendung des Befehls sudo finden Sie auf der Dokumentationsseite Nutzer.
  • Bei der Anmeldung in Azure AD über Looker mit OAuth zeigt Looker keinen expliziten Dialog zur Nutzereinwilligung an. Durch das Einrichten von OAuth mit Looker stimmen Sie implizit zu, dass Ihre Looker-Instanz auf Ihre Trino-Daten zugreifen darf.

Anwendung registrieren

Registrieren Sie zuerst eine Anwendung mit einem unterstützten Identitätsanbieter, um OAuth für Trino zu aktivieren. Looker unterstützt für OAuth mit Trino nur Microsoft Entra ID (früher Azure AD).

Voraussetzungen

  • Sie benötigen ein Azure-Abo.
  • Sie benötigen Administratorberechtigungen für Microsoft Entra ID.

So registrieren Sie eine Anwendung:

  1. Rufen Sie das Azure-Portal auf und melden Sie sich mit Ihren Anmeldedaten an.
  2. Suchen Sie in der Suchleiste des Azure-Portals nach „Microsoft Entra ID“ und wählen Sie den Eintrag aus den Ergebnissen aus.
  3. Klicken Sie im Microsoft Entra ID-Dienst im Abschnitt App-Registrierungen der Kategorie Verwalten auf Neue Registrierung.
  4. Füllen Sie das Registrierungsformular aus:
    • Name: Geben Sie einen aussagekräftigen Namen für die Anwendung ein, z. B. Looker Trino Connection.
    • Unterstützte Kontotypen: Wählen Sie die entsprechende Option aus, je nachdem, wie Sie den Zugriff einschränken möchten. Für interne Anwendungsfälle können Sie Nur Konten in diesem Organisationsverzeichnis auswählen.
    • Weiterleitungs-URI: Wählen Sie die Plattform Web aus und geben Sie den Weiterleitungs-URI für Looker ein. Sie sollte etwa so https://YOUR_LOOKER_HOSTNAME/external_oath/redirect aussehen:
  5. Klicken Sie auf Registrieren.
  6. Erfassen Sie die Client-ID, die Mandanten-ID und den Clientschlüssel, um sie später in der Looker-Verbindung einzugeben.
    • Die Client-ID und die Mandanten-ID finden Sie auf der Seite Übersicht.
    • Wenn Sie Ihren Clientschlüssel nicht kennen, müssen Sie einen neuen erstellen. Klicken Sie im Bereich Verwalten auf Zertifikate und Secrets und dann auf Neuer geheimer Clientschlüssel.
  7. Klicken Sie im Abschnitt Verwalten auf API freigeben.
  8. Klicken Sie neben Anwendungs-ID-URI auf Hinzufügen.
  9. Geben Sie Ihre Client-ID ein. Sie sollte das folgende Format haben: api://CLIENT_ID.

Führen Sie als Nächstes die folgenden Schritte im Azure-Portal aus, um einen neuen Bereich zur Verwendung mit Looker zu erstellen:

  1. Klicken Sie im Abschnitt Von dieser API definierte Bereiche auf Bereich hinzufügen.
  2. Fügen Sie einen Bereichsnamen für den neuen Bereich hinzu. In Looker wird davon ausgegangen, dass der Name des Gültigkeitsbereichs TrinoUsers.Read.All lautet.

    Der Name TrinoUsers.Read.All impliziert nur Leseberechtigungen, mit dem Namen selbst werden jedoch keine Berechtigungen festgelegt oder erzwungen. Achten Sie darauf, den Umfang so einzurichten, dass nur Lesezugriff auf Ihre Datenbank gewährt wird.

  3. Fügen Sie einen Anzeigenamen und eine Beschreibung hinzu.

  4. Wählen Sie unter Wer kann einwilligen? die Option Administratoren und Nutzer aus.

  5. Klicken Sie auf Bereich hinzufügen.

  6. Klicken Sie im Bereich Autorisierte Clientanwendungen auf Clientanwendung hinzufügen.

  7. Geben Sie Ihre Client-ID und den neu erstellten Umfang ein.

  8. Klicken Sie auf Add application (Anwendung hinzufügen).

Gehen Sie dann so vor, um Looker die erforderlichen API-Berechtigungen zu erteilen:

  1. Klicken Sie im Bereich Verwalten auf API-Berechtigungen.
  2. Klicken Sie auf Berechtigung hinzufügen.
  3. Wählen Sie oben den Tab Meine APIs aus.
  4. Wählen Sie in der Liste der App-Registrierungen die Registrierung aus, die Sie gerade erstellt haben, z. B. Looker Trino Connection.
  5. Klicken Sie das Kästchen Delegierte Berechtigungen an.
  6. Klicken Sie das Kästchen TrinoUsers.Read.All an.
  7. Wählen Sie Berechtigung hinzufügen aus.

Datenbank für die Verwendung von OAuth konfigurieren

Fügen Sie der Trino-Datei config.properties als Nächstes die folgenden Zeilen hinzu, um Ihre Trino-Datenbank für die Verwendung von OAuth zu konfigurieren. Ersetzen Sie die ersten fünf Zeilen mit großgeschriebenen Variablen durch Ihre eigenen Werte.

  • YOUR_HTTPS_PORT
  • PATH_TO_YOUR_SSL_CERTIFICATE
  • YOUR_TENANT_ID
  • YOUR_CLIENT_ID
  • YOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE

# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used

# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false

# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used

# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID

# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET

# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true

Anmeldung zum Ausführen von Abfragen

Sobald die Datenbankverbindung für die Verwendung von OAuth eingerichtet ist, werden Nutzer aufgefordert, sich in Microsoft Entra ID anzumelden, bevor sie Abfragen ausführen. Dies schließt Abfragen aus Explores, Dashboards, Looks und SQL Runner ein.

Nutzer können sich auch über den Bereich OAuth-Anmeldedaten für die Verbindung auf der Seite Konto in Microsoft Entra ID anmelden.

So melden Sie sich mit Looker bei Microsoft Entra ID an:

  1. Klicken Sie auf das Looker-Nutzermenü.
  2. Wählen Sie Konto aus.
  3. Klicken Sie auf der Seite Account (Konto) im Abschnitt OAuth Connection Credentials (OAuth-Verbindungsanmeldedaten) auf Log In (Anmelden).

Dadurch wird ein Anmeldedialogfeld angezeigt. Geben Sie Ihre Microsoft Entra ID-Anmeldedaten ein und wählen Sie Anmelden aus, um Looker Zugriff auf Ihr Datenbankkonto zu gewähren.

Nachdem Sie sich über Looker bei Microsoft Entra ID angemeldet haben, können Sie sich jederzeit über die Seite Konto abmelden oder Ihre Anmeldedaten noch einmal autorisieren, wie auf der Dokumentationsseite Nutzerkonto personalisieren beschrieben.

Referenz

Weitere Informationen zum Konfigurieren des Hive-Connectors finden Sie unter PrestoDB Hive-Connector, Trino Hive-Connector oder Starcast Hive Connector.

Funktionsunterstützung

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

PrestoDB unterstützt ab Looker 24.18 die folgenden Funktionen:

Funktion 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
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Unterschiedliches Perzentil
Nein
SQL Runner – Prozesse anzeigen
Ja
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
Ja
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Nein
Materialisierte Ansichten
Nein
Ungefähre Anzahl einzelner
Ja

Trino unterstützt ab Looker 24.18 die folgenden Funktionen:

Funktion 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
Nein
Anfrage abbrechen
Ja
SQL-basierte Pivot-Tabellen
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß-/Kleinschreibung beachten
Ja
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Unterschiedliches Perzentil
Nein
SQL Runner – Prozesse anzeigen
Ja
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
Ja
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Ja
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Nein
Materialisierte Ansichten
Nein
Ungefähre Anzahl einzelner
Ja

Nächste Schritte

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