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

  • Host: Der Hostname der Datenbank.

  • Port: Der Datenbankport. Der Standardport ist 8080.

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

  • 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 werden soll, wenn kein Schema angegeben wird.

  • 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 Bereich 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 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 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 Anschluss 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 sich jeder Looker-Nutzer mit seinem eigenen OAuth-Nutzerkonto in der Datenbank authentifiziert und Looker dazu autorisiert, Abfragen in der Datenbank auszuführen.

Mit OAuth können Datenbankadministratoren folgende Aufgaben ausführen:

  • Überwachen, welche Looker-Benutzer Abfragen mit der Datenbank ausführen
  • Rollenbasierte Zugriffssteuerung mit Berechtigungen auf Datenbankebene erzwingen
  • OAuth-Token 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 wieder anmelden, wenn ihre OAuth-Tokens ablaufen.

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

  • Wenn ein Nutzer sein OAuth-Token verfallen lässt, sind alle Zeitpläne oder Benachrichtigungen, deren Eigentümer er ist, davon betroffen. Um dies zu verhindern, sendet Looker dem Inhaber jedes Zeitplans und jeder Benachrichtigung eine Benachrichtigungs-E-Mail, bevor das aktuelle aktive OAuth-Token abläuft. Looker sendet diese E-Mail-Benachrichtigungen 14 Tage, 7 Tage und 1 Tag vor Ablauf des Tokens. Der Nutzer kann auf seiner Looker-Benutzerseite Looker für die Datenbank neu autorisieren, um Unterbrechungen bei seinen Zeitplänen und Benachrichtigungen zu vermeiden. Weitere Informationen finden Sie auf der Dokumentationsseite Nutzerkonteneinstellungen 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 Looker mit OAuth in Azure AD anmelden, wird in Looker kein explizites Dialogfeld zur Nutzereinwilligung angezeigt. Wenn Sie OAuth mit Looker einrichten, stimmen Sie implizit zu, 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 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 in der Kategorie Verwalten im Bereich App-Registrierungen 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 Option aus, die am besten zu der gewünschten Zugriffsbeschränkung passt. 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 die Looker-Weiterleitungs-URI ein. Sie sollte etwa so https://YOUR_LOOKER_HOSTNAME/external_oath/redirect aussehen:
  5. Klicken Sie auf Registrieren.
  6. Notieren Sie sich die Client-ID, die Mandanten-ID und den Clientschlüssel, die Sie später in die Looker-Verbindung eingeben.
    • Die Client-ID und die Mandanten-ID finden Sie auf der Seite Übersicht.
    • Wenn Sie Ihr Clientsecret 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 freigeben.
  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 anschließend die folgenden Schritte im Azure-Portal aus, um einen neuen Umfang 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 Namen für den Bereich 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 Leseberechtigungen, aber der Name selbst legt keine Berechtigungen fest und erzwingt sie auch nicht. 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 in der Auswahl 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 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

Konfigurieren Sie als Nächstes Ihre Trino-Datenbank für die Verwendung von OAuth. Fügen Sie dazu der Trino-config.properties-Datei die folgenden Zeilen hinzu. 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 wurde, werden Nutzer aufgefordert, sich bei Microsoft Entra ID anzumelden, bevor sie Abfragen ausführen. Dazu gehören Abfragen aus Explores, Dashboards, Looks und SQL Runner.

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 Konto im Abschnitt Anmeldedaten für OAuth-Verbindung auf Anmelden.

Dadurch wird ein Anmeldedialogfeld angezeigt. Geben Sie Ihre Anmeldedaten für Microsoft Entra ID 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 Personalisierung Ihres Nutzerkontos beschrieben.

Referenz

Weitere Informationen zur Konfiguration des Hive-Konnektors 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 24.20 unterstützt PrestoDB 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
Perzentil der unterschiedlichen Werte
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 Aufrufe
Ja

Trino unterstützt ab Looker 24.20 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
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
Perzentil der unterschiedlichen Werte
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 Aufrufe
Ja

Nächste Schritte

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