PrestoDB und Trino

Auf dieser Seite wird beschrieben, 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. 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 Admin die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.

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 Looker-Dialektmenü aus.

  • Host: Der Datenbankhostname.

  • Port: Der Datenbankport. Der Standardport ist 8080.

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

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

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

  • Password: Das Passwort des Nutzers, der Abfragen ausführt.

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

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

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

    • Mit Database Account (Datenbankkonto) können Sie den Username (Nutzername) und das Password (Passwort) des Datenbanknutzerkontos angeben, das für die Verbindung zu Looker verwendet wird.
    • Verwenden Sie OAuth, wenn Sie OAuth für die Verbindung konfigurieren möchten.
  • PDTs aktivieren: Mit diesem Schalter können Sie persistente abgeleitete Tabellen (PATs) 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: Klicken Sie hier, um SSL-Verbindungen zu aktivieren.

  • SSL überprüfen: Ignorieren Sie dieses Feld. Für alle SSL-Verbindungen wird der standardmäßige Java-Truststore verwendet, sofern nicht anders angegeben. Dies kann über die PrestoDB-JDBC-Parameter, den Trino-JDBC-Treiber oder den Starburst-JDBC-Treiber erfolgen. Geben Sie diese Parameter in das Feld Zusätzliche JDBC-Parameter ein.

Klicken Sie auf Test, 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 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 für Trino-Verbindungen. Das bedeutet, dass jeder Looker-Benutzer sich mit seinem eigenen OAuth-Nutzerkonto bei der Datenbank authentifizieren und Looker dazu autorisieren kann, Abfragen in der Datenbank auszuführen.

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

  • Überwachen, welche Looker-Benutzer Abfragen mit der Datenbank ausführen
  • Rollenbasierte Zugriffskontrollen mit 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 das OAuth-Token eines Nutzers abläuft, sind alle Zeitpläne oder Warnungen, deren Eigentümer er ist, davon betroffen. Um dies zu verhindern, sendet Looker eine Benachrichtigungs-E-Mail an den Inhaber jedes Zeitplans und jeder Benachrichtigung, bevor das aktuelle aktive OAuth-Token abläuft. Looker sendet diese Benachrichtigungs-E-Mails 14 Tage, 7 Tage und 1 Tag vor Ablauf des Tokens. Der Nutzer kann auf seiner Looker-Nutzerseite die Autorisierung von Looker für die Datenbank noch einmal bestätigen, um Unterbrechungen seiner Zeitpläne und Benachrichtigungen zu vermeiden. Weitere Informationen finden Sie auf der Dokumentationsseite Nutzerkontoeinstellungen personalisieren.
  • Da Datenbankverbindungen, die OAuth verwenden, „pro Nutzer“ gelten, werden auch Caching-Richtlinien pro Nutzer und nicht nur pro Abfrage angewendet. 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 sich als anderer Nutzer im SUDO-Modus bewegt, verwendet er das OAuth-Zugriffstoken dieses Nutzers. Wenn das Zugriffstoken des Nutzers abgelaufen ist, kann der Administrator kein neues Token im Namen des Nutzers erstellen, den er impersonalisiert. Informationen zur Verwendung des Befehls sudo finden Sie auf der Dokumentationsseite Nutzer.
  • Wenn Sie sich über OAuth in Looker bei Azure AD anmelden, wird in Looker kein expliziter Dialog zur Nutzereinwilligung angezeigt. Wenn Sie OAuth mit Looker einrichten, willigen Sie implizit ein, dass Ihre Looker-Instanz auf Ihre Trino-Daten zugreift.

Anwendung registrieren

Wenn Sie OAuth für Trino aktivieren möchten, müssen Sie zuerst eine Anwendung mit einem unterstützten Identitätsanbieter registrieren. 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 den Eintrag aus den Ergebnissen aus.
  3. Klicken Sie im Microsoft Entra ID-Dienst im Bereich App-Registrierungen der Kategorie Verwalten auf Neue Registrierung.
  4. Füllen Sie das Registrierungsformular so 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 einen internen Anwendungsfall können Sie Nur Konten in diesem Organisationsverzeichnis auswählen.
    • Weiterleitungs-URI: Wählen Sie die Plattform Web aus und geben Sie dann Ihren Looker-Weiterleitungs-URI ein. Sie sollte etwa so https://YOUR_LOOKER_HOSTNAME/external_oath/redirect aussehen:
  5. Klicken Sie auf Registrieren.
  6. Suchen Sie die Client-ID, die Mandanten-ID und das Client-Secret heraus, die Sie später in Ihre Looker-Verbindung eingeben müssen.
    • Die Client-ID und die Mandanten-ID finden Sie auf der Seite Übersicht.
    • Wenn Sie Ihr Client Secret nicht kennen, müssen Sie ein neues erstellen. Klicken Sie im Bereich Verwalten auf Zertifikate und Secrets und dann auf Neuer geheimer Clientschlüssel.
  7. Klicken Sie im Bereich Verwalten auf API bereitstellen.
  8. Klicken Sie neben Anwendungs-ID-URI auf Hinzufügen.
  9. Geben Sie Ihre Client-ID ein. Er sollte folgendes Format haben: api://CLIENT_ID.

Führen Sie dann die folgenden Schritte im Azure-Portal aus, um einen neuen Bereich für die 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 erwartet, dass der Name des Bereichs TrinoUsers.Read.All lautet.

    Der Name TrinoUsers.Read.All impliziert Leseberechtigungen, aber der Name selbst legt keine Berechtigungen fest oder erzwingt sie. Richten Sie den Bereich so ein, dass nur Lesezugriff auf Ihre Datenbank möglich ist.

  3. Geben Sie einen Anzeigenamen und eine Beschreibung ein.

  4. Wählen Sie im Auswahlfeld Wer darf die Einwilligung geben? 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 Bereich ein.

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

Führen Sie dann die folgenden Schritte aus, 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 als Nächstes die folgenden Zeilen in Ihre Trino-Datei config.properties ein, um die OAuth-Authentifizierung für Ihre Trino-Datenbank 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

Anmelden, um Abfragen auszuführen

Wenn die Datenbankverbindung für die Verwendung von OAuth eingerichtet ist, werden Nutzer aufgefordert, sich bei Microsoft Entra ID anzumelden, bevor sie Abfragen ausführen. Dazu gehören Abfragen aus Explores, Dashboards, Looks und dem SQL Runner.

Nutzer können sich auch über den Bereich OAuth-Verbindungsanmeldedaten 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 Konto im Bereich Anmeldedaten für OAuth-Verbindung auf 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 in Microsoft Entra ID angemeldet haben, können Sie sich jederzeit über die Seite Konto abmelden oder Ihre Anmeldedaten neu autorisieren, wie auf der Dokumentationsseite Nutzerkonto personalisieren beschrieben.

Referenz

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

Funktionsunterstützung

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

Ab Looker 25.10 werden die folgenden Funktionen in PrestoDB unterstützt:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Persistente SQL-basierte abgeleitete Tabellen
Ja
Persistente native abgeleitete Tabellen
Ja
Stabile Ansichten
Ja
Abfrage beenden
Ja
SQL-basierte Pivots
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß- und Kleinschreibung
Ja
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Perzentil der unterschiedlichen Werte
Nein
SQL Runner – Prozesse anzeigen
Ja
SQL-Runner-Funktion „Tabelle beschreiben“
Ja
SQL Runner-Befehl „Show Indexes“
Nein
SQL Runner Select 10
Ja
SQL-Runner-Zählung
Ja
SQL Explain
Ja
OAuth 2.0-Anmeldedaten
Nein
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Ja
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Nein
Materialisierte Ansichten
Nein
Vergleich zum vorherigen Zeitraum
Nein
Ungefähre Anzahl einzelner Aufrufe
Ja

Ab Looker 25.10 unterstützt Trino die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Ja
Symmetrische Summen
Ja
Abgeleitete Tabellen
Ja
Persistente SQL-basierte abgeleitete Tabellen
Ja
Persistente native abgeleitete Tabellen
Ja
Stabile Ansichten
Nein
Abfrage beenden
Ja
SQL-basierte Pivots
Ja
Zeitzonen
Ja
SSL
Ja
Zwischensummen
Ja
Zusätzliche JDBC-Parameter
Ja
Groß- und Kleinschreibung
Ja
Standorttyp
Ja
Listentyp
Ja
Perzentil
Ja
Perzentil der unterschiedlichen Werte
Nein
SQL Runner – Prozesse anzeigen
Ja
SQL-Runner-Funktion „Tabelle beschreiben“
Ja
SQL Runner-Befehl „Show Indexes“
Nein
SQL Runner Select 10
Ja
SQL-Runner-Zählung
Ja
SQL Explain
Ja
OAuth 2.0-Anmeldedaten
Ja
Kontextkommentare
Ja
Verbindungs-Pooling
Nein
HLL-Skizzen
Ja
Aggregatfunktion
Ja
Inkrementelle PDTs
Nein
Millisekunden
Ja
Mikrosekunden
Nein
Materialisierte Ansichten
Nein
Vergleich zum vorherigen Zeitraum
Nein
Ungefähre Anzahl einzelner Aufrufe
Ja

Nächste Schritte

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