So stellen Sie eine Verbindung zwischen Looker und Snowflake her:
- Looker-Nutzer in Snowflake erstellen und Zugriff bereitstellen.
- Richten Sie eine Datenbankverbindung in Looker ein.
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-Nutzer in Snowflake erstellen
Wir empfehlen die folgenden Befehle zum Erstellen des Looker-Nutzers. Führen Sie jede Zeile einzeln aus oder wählen Sie im Bereich „Snowflake-Verbindung“ die Option Alle Abfragen aus, damit alle Zeilen ausgeführt werden. Standardmäßig werden in Snowflake nur die ausgewählten Zeilen ausgeführt.
Wir empfehlen, das Keyword ON FUTURE
jeder GRANT
-Anweisung hinzuzufügen, damit neu erstellte Objekte dieselben Berechtigungen haben, ohne dass weitere Maßnahmen erforderlich sind.
-- change role to ACCOUNTADMIN
use role ACCOUNTADMIN;
-- create role for looker
create role if not exists looker_role;
grant role looker_role to role SYSADMIN;
-- Note that we are not making the looker_role a SYSADMIN,
-- but rather granting users with the SYSADMIN role to modify the looker_role
-- create a user for looker
create user if not exists looker_user
password = <enter password here>;
grant role looker_role to user looker_user;
alter user looker_user
set default_role = looker_role
default_warehouse = looker_wh;
-- change role
use role SYSADMIN;
-- create a warehouse for looker (optional)
create warehouse if not exists looker_wh
-- set the size based on your dataset
warehouse_size = medium
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;
grant all privileges
on warehouse looker_wh
to role looker_role;
-- grant read only database access (repeat for all database/schemas)
grant usage on database <database> to role looker_role;
grant usage on schema <database>.<schema> to role looker_role;
-- rerun the following any time a table is added to the schema
grant select on all tables in schema <database>.<schema> to role looker_role;
-- or
grant select on future tables in schema <database>.<schema> to role looker_role;
-- create schema for looker to write back to
use database <database>;
create schema if not exists looker_scratch;
use role ACCOUNTADMIN;
grant ownership on schema looker_scratch to role SYSADMIN revoke current grants;
grant all on schema looker_scratch to role looker_role;
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. Die folgenden Einstellungsbeschreibungen enthalten Hinweise, die speziell für Snowflake gelten:
Datenbankeinstellungen – Host: Geben Sie den Snowflake-Hostnamen ein. Das sieht so aus: <account_name>.snowflakecomputing.com
. Beispiele für Snowflake-Kontonamen nach Region
Datenbankeinstellungen – Authentifizierungsmethode: Wählen Sie eine der folgenden Authentifizierungsmethoden aus:
Das Datenbankkonto sollte nur von Bestandskunden verwendet werden, die Zeit für die Umstellung auf eine Multi-Faktor-Authentifizierungsmethode vor dem Snowflake-Termin im November 2025 benötigen. Geben Sie den Nutzernamen und das Passwort des Snowflake-Nutzerkontos an, das für die Verbindung zu Looker verwendet wird.
Schlüsselpaar sollte von Kunden verwendet werden, die die Schlüsselpaar-Authentifizierung von Snowflake implementieren möchten, um eine Verbindung zu ihrer Datenbank herzustellen. Geben Sie im Feld Nutzername das Nutzerkonto an, das für die Verbindung mit Snowflake verwendet wird. Laden Sie eine unverschlüsselte Schlüsseldatei im .p8-Format in das Feld Schlüsselpaardatei hoch. Verschlüsselte Schlüsseldateien werden nicht unterstützt. In der Dokumentation von Snowflake wird beschrieben, wie eine private Schlüsseldatei erstellt wird.
OAuth sollte von Kunden verwendet werden, die keine nichtflüchtigen abgeleiteten Tabellen (Persistent Derived Tables, PDTs) benötigen und OAuth für die Verbindung konfigurieren möchten.
Optionale Einstellungen – PDTs aktivieren: PDTs werden für Snowflake-Verbindungen, die die OAuth-Authentifizierung verwenden, nicht unterstützt. Wenn persistente abgeleitete Tabellen erforderlich sind, verwenden Sie stattdessen die Authentifizierungsoption Schlüsselpaar.
Optionale Einstellungen – Zusätzliche JDBC-Parameter: Fügen Sie zusätzliche JDBC-Parameter aus dem Snowflake-JDBC-Treiber hinzu.
- Fügen Sie
warehouse=<YOUR WAREHOUSE NAME>
hinzu. Außerdem legt Looker standardmäßig die folgenden Snowflake-Parameter für jede Sitzung fest:
TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ
JDBC_TREAT_DECIMAL_AS_INT=FALSE
TIMESTAMP_INPUT_FORMAT=AUTO
AUTOCOMMIT=TRUE
Sie können jeden dieser Parameter überschreiben, indem Sie im Feld Zusätzliche JDBC-Parameter einen alternativen Wert festlegen, z. B.
&AUTOCOMMIT=FALSE
.
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.
Snowflake-Warehouses pro Gruppe oder Nutzer festlegen
Mit Nutzerattributen in Looker können Sie einzelnen Looker-Nutzern oder -Gruppen separate Snowflake-Data Warehouses zuweisen. Das ist beispielsweise nützlich, wenn Sie Nutzer haben, die unterschiedliche Rechenleistungen benötigen. Sie können nur den Nutzern, die sie benötigen, ein Data Warehouse mit mehr Rechenressourcen zuweisen, während Sie Nutzern mit geringerem Bedarf ein Data Warehouse mit weniger Ressourcen zuweisen.
So weisen Sie Lagerhäuser gruppen- oder nutzerweise zu:
- Fügen Sie die Gruppen oder Nutzer in Looker hinzu.
Definieren Sie in Looker ein Nutzerattribut, in dem die Namen der Snowflake-Warehouses gespeichert werden. Sie können diesem Attribut einen beliebigen Namen geben, z. B.
snowflake_wh
.Weisen Sie im Nutzerattribut, das Sie gerade definiert haben, die Werte für den Lagerhausnamen den Gruppen oder Nutzern zu, die unterschiedlichen Lagerhauszugriff benötigen.
Fügen Sie auf der Seite Verbindungseinstellungen im Feld Zusätzliche JDBC-Parameter Folgendes hinzu und ersetzen Sie
snowflake_warehouse
durch den Namen des von Ihnen definierten Nutzerattributs:warehouse={{ _user_attributes['snowflake_warehouse'] }}
Wenn Sie die einzelnen Verbindungseinstellungen testen möchten, können Sie sudo als Nutzer ausführen, dem Sie einen Wert für den Warehouse-Namen zugewiesen haben.
Autosuspend-Funktion von Snowflake verwalten
Snowflake-Warehouses haben eine Funktion für die automatische Inaktivierung, die standardmäßig aktiviert ist. Nach einem bestimmten Zeitraum wird das Data Warehouse automatisch in den Ruhestand versetzt. Wenn das Data Warehouse gesperrt ist, wird bei allen Abfragen ein Fehler ausgegeben. Dieser Fehler ist nicht in Dashboards sichtbar (normalerweise werden bei solchen Fehlern keine Daten angezeigt), aber für jeden Nutzer, der Abfragen über die Seite „Erkunden“ ausführt.
Dazu werden in der Regel zwei Methoden verwendet:
Snowflake verfügt über eine Funktion zum automatischen Fortsetzen, mit der das Warehouse fortgesetzt wird, wenn es abgefragt wird. Das Fortsetzen des Data Warehouse kann jedoch bis zu fünf Minuten dauern. In dieser Zeit werden keine Antworten auf Anfragen zurückgegeben. Die automatische Fortsetzung kann in Looker nicht konfiguriert werden. Aktivieren Sie diese Funktionen auf dem Tab Warehouses (Data Warehouses) in der Snowflake-Benutzeroberfläche:
Wenn persistente abgeleitete Tabellen (PDTs) aktiviert sind, prüft Looker standardmäßig alle 5 Minuten, ob abgeleitete Tabellen neu generiert werden müssen. Durch diese Prüfung bleiben Snowflake-Warehouses aktiv. Möglicherweise möchten Sie jedoch, dass Snowflake Warehouses außerhalb der Arbeitszeiten sperrt, um Kosten zu senken. Dies kann erreicht werden, indem Sie den Zeitplan für die PDT-Neugenerierung ändern, wie in der Dokumentation zum Wartungszeitplan beschrieben.
Unterstützung von PAT
PDTs werden für Snowflake-Verbindungen, die OAuth verwenden, nicht unterstützt.
Wenn Sie persistente abgeleitete Tabellen unterstützen möchten, erstellen Sie ein Snowflake-Nutzerkonto für PDTs mit Schreibzugriff auf Ihre Datenbank und das temporäre Schema, das Looker zum Erstellen von PDTs verwendet. Aktivieren Sie auf der Seite Looker-Verbindungseinstellungen auf dem Tab Optionale Einstellungen im Bereich Einstellungen für persistente abgeleitete Tabelle (PAT) die Ein/Aus-Schaltfläche PATs aktivieren. Geben Sie dann im Feld Temporäre Datenbank den Namen des temporären Schemas ein, das Looker zum Erstellen von PDTs verwenden soll.
PDT-Überschreibungen sind für Snowflake-Verbindungen, die die Schlüsselpaar-Authentifizierung verwenden, nicht verfügbar.
Bei Snowflake-Verbindungen legt Looker den Wert für den Snowflake-Parameter AUTOCOMMIT
auf TRUE
fest, den Standardwert von Snowflake. AUTOCOMMIT
ist für SQL-Befehle erforderlich, die Looker zur Verwaltung des PDT-Registrierungssystems ausführt.
OAuth für Snowflake-Verbindungen konfigurieren
Looker unterstützt OAuth für Snowflake-Verbindungen. Das bedeutet, dass jeder Looker-Nutzer sich mit seinem eigenen OAuth-Nutzerkonto bei der Datenbank authentifiziert.
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 Snowflake-Verbindungen, für die OAuth verwendet wird, müssen sich Nutzer regelmäßig neu anmelden, wenn ihre OAuth-Tokens ablaufen. Das maximale Alter von Snowflake-OAuth-Tokens wird von Snowflake selbst festgelegt.
Beachten Sie Folgendes für OAuth-Verbindungen auf Datenbankebene:
- Persistente abgeleitete Tabellen (PDTs) werden für Snowflake-Verbindungen mit OAuth nicht unterstützt.
- Wenn das OAuth-Token eines Nutzers abläuft, sind alle Looker-Zeitpläne oder ‑Benachrichtigungen, deren Inhaber er ist, davon betroffen. Um dies zu verhindern, sendet Looker 14 Tage, 7 Tage und 1 Tag vor dem Ablauf des Tokens eine Benachrichtigungs-E-Mail an den Inhaber jedes Zeitplans und jeder Benachrichtigung. 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. Das bedeutet, dass Looker Ergebnisse im Cache nur verwendet, 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.
- Bei Verwendung von OAuth können Sie nicht zu anderen Rollen im Snowflake-Nutzerkonto wechseln. Wie in der Snowflake-Dokumentation beschrieben, verwendet Snowflake die Standardrolle des Snowflake-Nutzerkontos, sofern die Standardrolle nicht ACCOUNTADMIN oder SECURITYADMIN ist. Da diese Rollen für OAuth blockiert sind, verwendet Snowflake stattdessen die Rolle „PUBLIC“. Weitere Informationen finden Sie in der Snowflake-Dokumentation.
- 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.
Snowflake-Datenbank für OAuth mit Looker konfigurieren
Wenn Sie eine Snowflake-Verbindung zu Looker mit OAuth erstellen möchten, müssen Sie die OAuth-Integration in Snowflake einrichten. Dazu ist ein Snowflake-Nutzerkonto mit der Berechtigung ACCOUNTADMIN erforderlich.
Führen Sie den folgenden Befehl in Snowflake aus. Ersetzen Sie dabei
<looker_hostname>
durch den Hostnamen Ihrer Looker-Instanz:CREATE SECURITY INTEGRATION LOOKER TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = LOOKER OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
Rufen Sie die OAuth-Client-ID und das Secret mit dem folgenden Befehl ab:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
Die Antwort enthält
OAUTH_CLIENT_ID
undOAUTH_CLIENT_SECRET
, die Sie später in diesem Verfahren benötigen.Erstellen Sie in Looker eine neue Verbindung zu Ihrem Snowflake-Warehouse, wie im Abschnitt Looker-Verbindung zu Ihrer Datenbank erstellen auf dieser Seite beschrieben. Wenn Sie die neue Verbindung erstellen, wählen Sie im Feld Authentifizierung die Option OAuth aus. Wenn Sie die Option OAuth auswählen, werden in Looker die Felder OAuth-Client-ID und OAuth-Clientschlüssel angezeigt.
Fügen Sie die Werte
OAUTH_CLIENT_ID
undOAUTH_CLIENT_SECRET
ein, die Sie weiter oben in diesem Verfahren aus Ihrer Datenbank erhalten haben.Führen Sie das restliche Verfahren unter Looker mit Ihrer Datenbank verbinden aus.
OAuth-Verbindung testen
Nachdem Sie die Looker-Verbindung zu Ihrer Datenbank konfiguriert haben, können Sie die Verbindung testen, indem Sie eine der folgenden Aktionen ausführen:
- Wählen Sie unten auf der Seite Verbindungseinstellungen die Schaltfläche Testen aus, wie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden beschrieben.
- Wählen Sie auf der Seite Verbindungen in der Liste der Verbindungen die Schaltfläche Testen aus, wie auf der Dokumentationsseite Verbindungen beschrieben.
Außerdem können Sie die Verbindung testen und in einem Modell bereitstellen. Gehen Sie dazu so vor:
- Wechseln Sie in Looker in den Entwicklermodus.
- Rufen Sie die Projektdateien für ein Looker-Projekt auf, in dem Ihre Snowflake-Verbindung verwendet wird.
- Öffnen Sie eine Modelldatei, ersetzen Sie den
connection
-Wert des Modells durch den Namen der neuen Snowflake-Verbindung und speichern Sie die Modelldatei. - Öffnen Sie eines der Explores oder Dashboards des Modells und führen Sie eine Abfrage aus. Wenn Sie versuchen, eine Abfrage auszuführen, werden Sie in Looker aufgefordert, sich bei Snowflake anzumelden.
- Folgen Sie der Anleitung zur Anmeldung bei Snowflake und geben Sie Ihre Snowflake-Anmeldedaten ein.
Nachdem Sie sich erfolgreich bei Snowflake angemeldet haben, werden Sie von Looker zu Ihrer Abfrage zurückgeleitet. Wenn die Abfrage korrekt ausgeführt wird, können Sie den neuen Verbindungswert übernehmen und Ihre Änderungen in der Produktion bereitstellen.
Bei Snowflake anmelden, um Abfragen auszuführen
Wenn die Snowflake-Verbindung für OAuth eingerichtet wurde, werden Nutzer aufgefordert, sich bei Snowflake 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 Snowflake anmelden.
So melden Sie sich mit Looker in Ihrem Snowflake-Konto an:
- Klicken Sie auf das Looker-Nutzermenü.
- Wählen Sie Konto aus.
- Rufen Sie auf der Seite Konto den Abschnitt OAuth-Verbindungsanmeldedaten auf und wählen Sie für die entsprechende Snowflake-Datenbank die Schaltfläche Anmelden aus.
Wenn Sie Anmelden auswählen, wird ein Snowflake-Anmeldedialogfeld angezeigt. Geben Sie Ihre Snowflake-Anmeldedaten ein, wählen Sie Anmelden aus und klicken Sie dann auf Zulassen, um Looker Zugriff auf Ihr Snowflake-Konto zu gewähren.
Sobald Sie sich über Looker in Snowflake anmelden, können Sie sich jederzeit über die Seite Konto abmelden oder Ihre Anmeldedaten neu autorisieren, wie auf der Dokumentationsseite Nutzerkonto personalisieren beschrieben.
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Snowflake unterstützt die folgenden Funktionen ab Looker 25.10:
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 | Nein |
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 | Ja |
HLL-Skizzen | Ja |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Ja |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Vergleich zum vorherigen Zeitraum | Ja |
Ungefähre Anzahl einzelner Aufrufe | Nein |
Nächste Schritte
Nachdem Sie Ihre Datenbank mit Looker verbunden haben, können Sie Anmeldeoptionen für Ihre Nutzer konfigurieren.