PrestoDB und Trino

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

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-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 ein. Die meisten Einstellungen sind den meisten Datenbankdialekten gemeinsam. 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 aus dem Looker-Dialektmenü PrestoSQL aus.

  • Host: Der Hostname der Datenbank.

  • Port: Der Datenbankport. Der Standardport ist 8080.

  • Datenbank: Der „Katalog“ oder „Connector“ in Presto-Begrifflichkeit.

  • Nutzername: Der Nutzername des Nutzers, der Abfragen ausführt.

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

  • Passwort: Passwort für den Nutzer, der Abfragen ausführt.

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

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

  • Authentication (Authentifizierung): Wählen Sie Database Account oder OAuth aus.

    • Geben Sie unter Datenbankkonto den Nutzernamen und das Passwort des Datenbanknutzerkontos an, das für die Verbindung mit Looker verwendet wird.
    • 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 bestätigen: Ignorieren Sie dieses Feld. Alle SSL-Verbindungen verwenden den standardmäßigen Java Truststore, sofern nicht anderweitig mit den PrestoDB-JDBC-Parametern, dem Trino-JDBC-Treiber oder dem Starburst-JDBC-Treiber angegeben. Geben Sie diese Parameter in das Feld 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 Datenbankverbindung 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 Connector ab, den Sie mit PrestoDB oder Trino verwenden . 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-Katalogattributdatei 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

In unseren internen Presto-Testservern verwenden wir die folgende hive.properties-Datei, die für alle Hive-Schemas 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 for 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 mithilfe von Berechtigungen auf Datenbankebene durchsetzen
  • 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 Nutzerkontoeinstellungen personalisieren.
  • Da Datenbankverbindungen, die OAuth verwenden, nutzerbezogen sind, gelten die Caching-Richtlinien auch pro Nutzer und nicht nur pro Abfrage. Das bedeutet, dass Looker nicht bei jeder Ausführung derselben Abfrage innerhalb des Caching-Zeitraums im Cache gespeicherte Ergebnisse verwendet, sondern nur dann im Cache gespeicherte Ergebnisse, wenn innerhalb des Caching-Zeitraums derselbe Nutzer die gleiche Abfrage 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 nur Microsoft Entra ID (früher Azure AD) für OAuth mit Trino.

Voraussetzungen

  • Sie benötigen ein Azure-Abo.
  • Sie benötigen Administratorberechtigungen in 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 es 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 so aussehen: https://YOUR_LOOKER_HOSTNAME/external_oath/redirect.
  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.
    • Sie finden die Client-ID und die Mandanten-ID auf der Seite Übersicht.
    • Wenn Sie Ihren Clientschlüssel nicht kennen, müssen Sie einen neuen erstellen. Klicken Sie im Abschnitt Verwalten auf Zertifikate und Secrets und dann auf Neuer 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. Looker geht davon aus, dass der Bereichsname TrinoUsers.Read.All lautet.

    Der Name TrinoUsers.Read.All impliziert nur Leseberechtigungen, mit dem Namen selbst werden jedoch keine Berechtigungen festgelegt oder erzwungen. Richten Sie den Bereich so ein, 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 Abschnitt Autorisierte Clientanwendungen auf Clientanwendung hinzufügen.

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

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

Führen Sie als Nächstes die folgenden Schritte aus, um Looker die erforderlichen API-Berechtigungen zu erteilen:

  1. Klicken Sie im Abschnitt 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. Aktivieren Sie das Kontrollkästchen TrinoUsers.Read.All.
  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 der Großschreibung 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

Anmelden, um Abfragen auszuführen

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 auf der Seite Konto auch über den Abschnitt Anmeldedaten für OAuth-Verbindung bei Microsoft Entra ID anmelden.

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

  1. Klicken Sie auf das Looker-Benutzermenü.
  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. Eine Anleitung dazu finden Sie auf der Seite Nutzerkonto personalisieren.

Referenz

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

Unterstützte Funktionen

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

PrestoDB unterstützt ab Looker 24.10 die folgenden Funktionen:

Feature Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Yes
Symmetrische Summen
Yes
Abgeleitete Tabellen
Yes
Persistente SQL-Abgeleitete Tabellen
Yes
Nichtflüchtige native abgeleitete Tabellen
Yes
Stabile Ansichten
Yes
Anfrage wird abgebrochen
Yes
SQL-basierte Drehpunkte
Yes
Zeitzonen
Yes
SSL
Yes
Zwischensummen
Yes
Zusätzliche JDBC-Parameter
Yes
Groß-/Kleinschreibung beachten
Yes
Standorttyp
Yes
Listentyp
Yes
Perzentil
Yes
Unterschiedliches Perzentil
Nein
SQL Runner – Prozesse anzeigen
Yes
SQL Runner – Tabelle beschreiben
Yes
SQL Runner – Indexe anzeigen
Nein
SQL Runner – Select 10
Yes
Anzahl der SQL-Runner
Yes
SQL Explain
Yes
OAuth-Anmeldedaten
Nein
Kontextkommentare
Yes
Verbindungs-Pooling
Nein
HLL-Skizzen
Yes
Aggregatfunktion
Yes
Inkrementelle PDTs
Nein
Millisekunden
Yes
Mikrosekunden
Nein
Materialisierte Ansicht
Nein
Ungefähre Anzahl einzelner
Yes

Trino unterstützt ab Looker 24.10 die folgenden Funktionen:

Feature Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Yes
Symmetrische Summen
Yes
Abgeleitete Tabellen
Yes
Persistente SQL-Abgeleitete Tabellen
Yes
Nichtflüchtige native abgeleitete Tabellen
Yes
Stabile Ansichten
Nein
Anfrage wird abgebrochen
Yes
SQL-basierte Drehpunkte
Yes
Zeitzonen
Yes
SSL
Yes
Zwischensummen
Yes
Zusätzliche JDBC-Parameter
Yes
Groß-/Kleinschreibung beachten
Yes
Standorttyp
Yes
Listentyp
Yes
Perzentil
Yes
Unterschiedliches Perzentil
Nein
SQL Runner – Prozesse anzeigen
Yes
SQL Runner – Tabelle beschreiben
Yes
SQL Runner – Indexe anzeigen
Nein
SQL Runner – Select 10
Yes
Anzahl der SQL-Runner
Yes
SQL Explain
Yes
OAuth-Anmeldedaten
Yes
Kontextkommentare
Yes
Verbindungs-Pooling
Nein
HLL-Skizzen
Yes
Aggregatfunktion
Yes
Inkrementelle PDTs
Nein
Millisekunden
Yes
Mikrosekunden
Nein
Materialisierte Ansicht
Nein
Ungefähre Anzahl einzelner
Yes

Weitere Informationen

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