Führen Sie die folgenden Schritte aus, um Looker mit Snowflake zu verbinden:
- Erstellen Sie einen Looker-Nutzer in Snowflake und gewähren Sie Zugriff.
- Richten Sie eine Datenbankverbindung in Looker ein.
Looker-Nutzer auf Snowflake erstellen
Wir empfehlen die folgenden Befehle zum Erstellen des Looker-Nutzers. Jede Zeile muss einzeln ausgeführt werden.
Fügen Sie optional das Keyword
ON FUTURE
hinzu, umGRANT
-Anweisungen für neu erstellte Objekte beizubehalten. Wir empfehlen, dies für Tabellen in allen Schemas auszuführen, die Looker verwendet. So müssen SieGRANT
-Anweisungen nicht noch einmal ausführen, wenn neue Tabellen erstellt werden.
-- 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;
Wenn Sie die vorherigen Befehle als Batch in das Snowflake-Verbindungsfeld einfügen, klicken Sie auf das Kästchen Alle Abfragen, um sicherzustellen, dass alle Zeilen ausgeführt werden. Standardmäßig führt Snowflake nur die ausgewählten Zeilen aus.
Looker-Verbindung zu Ihrer Datenbank erstellen
Wählen Sie im Abschnitt Admin von Looker die Option Verbindungen aus und klicken Sie auf Verbindung hinzufügen.
Geben Sie die Verbindungsdetails ein. Die meisten Einstellungen gelten für die meisten Datenbankdialekte. Informationen dazu finden Sie in der Dokumentation zum Verbinden von Looker mit Ihrer Datenbank. Einige der Einstellungen werden als Nächstes beschrieben:
- Name: Geben Sie einen Namen für die Verbindung ein. So verweist das LookML-Modell auf die Verbindung.
- Dialekt: Wählen Sie Schneeflocke aus.
- Host: Geben Sie den Snowflake-Hostnamen ein. Er sieht so aus:
<account_name>.snowflakecomputing.com
. Sehen Sie sich die Beispiele für Schneeflockenkonten nach Region an, um sicherzustellen, dass Sie den richtigen Wert für Ihre Bereitstellung verwenden. - Port: Der Standardwert ist 443.
- Datenbank: Geben Sie die zu verwendende Standarddatenbank ein. Bei diesem Feld wird zwischen Groß- und Kleinschreibung unterschieden.
- Schema: Geben Sie das Standardschema ein.
- Authentifizierung: Wählen Sie Datenbankkonto oder OAuth aus:
- Verwenden Sie Datenbankkonto, um den Nutzernamen und das Passwort des Snowflake-Nutzerkontos anzugeben, das für die Verbindung mit Looker verwendet wird.
- Verwenden Sie OAuth, wenn Sie OAuth für die Verbindung konfigurieren möchten.
- PDTs aktivieren: Verwenden Sie diese Ein-/Aus-Schaltfläche, um persistente abgeleitete Tabellen (PDTs) zu aktivieren. Wenn Sie PATs aktivieren, werden zusätzliche PAT-Felder und der Abschnitt PDT-Überschreibungen für die Verbindung angezeigt.
- Temporäre Datenbank: Wenn PATs aktiviert sind, legen Sie dieses Feld auf ein Schema fest, das die uneingeschränkte Berechtigung des Nutzers zum Erstellen, Löschen, Umbenennen und Ändern von Tabellen hat.
- Max. Verbindungen pro Knoten: Diese Einstellung kann anfangs den Standardwert übernehmen. Weitere Informationen zu dieser Einstellung finden Sie auf der Dokumentationsseite Verbindung zwischen Looker und Datenbank herstellen im Abschnitt Maximale Verbindungen pro Knoten.
- Kostenschätzung: Aktiviert Kostenschätzungen für Explore-Abfragen, Kostenschätzungen für SQL Runner-Abfragen und Schätzungen für Einsparungen bei der Rechenleistung für aggregierte Abfragen zur Bekanntheit der Verbindung.
- Zeitzone der Datenbank: Die Zeitzone, die Ihre Snowflake-Datenbank zum Speichern von Daten und Uhrzeiten verwendet. Die Standardeinstellung ist UTC. Dies ist optional.
- Zeitzone für Abfragen: Die Zeitzone, in der Ihre Abfragen angezeigt werden sollen. z. B. US-Osten (Amerika – New York). Dies ist optional.
Zusätzliche JDBC-Parameter: Fügen Sie zusätzliche JDBC-Parameter aus dem JDBC-Treiber für Schneeflocken 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. Beispiel:
&AUTOCOMMIT=FALSE
- Fügen Sie
Klicken Sie auf Test, um zu prüfen, ob die Verbindung erfolgreich war. Informationen zur Fehlerbehebung finden Sie in der Dokumentation zum Testen der Datenbankverbindung.
Klicken Sie auf Verbinden, um diese Einstellungen zu speichern.
Snowflake Warehouses auf Gruppen- oder Nutzerbasis festlegen
Sie können Looker-Nutzerattribute verwenden, um einzelnen Looker-Nutzern oder ‐Gruppen separate Snowflake-Warenhäuser zuzuweisen. Das ist z. B. hilfreich, wenn Nutzer Nutzer haben, die unterschiedliche Rechenleistungen benötigen. Sie können ein Warehouse mit größeren Rechenressourcen nur den Nutzern zuweisen, die es benötigen, und ein Warehouse mit weniger Ressourcen Nutzern mit weniger Anforderungen zuweisen.
So legen Sie Warehouses für einzelne Gruppen oder Nutzer fest:
- Fügen Sie in Looker die Gruppen oder Nutzer 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 gerade definierten Nutzerattribut den Gruppen oder Nutzern die Werte für den Warehouse-Namen zu.
Fügen Sie auf der Seite Verbindungseinstellungen im Feld Zusätzliche JDBC-Parameter Folgendes hinzu und ersetzen Sie dabei
snowflake_warehouse
durch den Namen des von Ihnen definierten Nutzerattributs:warehouse={{ _user_attributes['snowflake_warehouse'] }}
Beispiel:
Zum Testen der einzelnen Verbindungseinstellungen können Sie als Nutzer, dem Sie einen Warehouse-Namenswert zugewiesen haben, sudo festlegen.
Eine ausführliche Anleitung zu diesem Verfahren finden Sie im Red Pill Analytics-Blog (in englischer Sprache).
Die Funktion „Autosuspend“ von Snowflake
Snowflake Warehouses haben eine automatische Sperrungsfunktion, die standardmäßig aktiviert ist. Nach Ablauf eines bestimmten Zeitraums wird das Warehouse automatisch gesperrt. Wenn das Warehouse gesperrt ist, geben alle Abfragen einen Fehler aus. Dieser Fehler wird auf Dashboards nicht angezeigt (in der Regel werden keine Daten angezeigt), er ist jedoch bei der Abfrage mit der Seite „Erkunden“ sichtbar.
Snowflake verfügt auch über eine Funktion zur automatischen Wiederaufnahme, die das Warehouse bei der Abfrage wieder aktiviert. Es kann jedoch bis zu fünf Minuten dauern, bis das Warehouse wieder fortgesetzt wird. Das hat zur Folge, dass Abfragen fünf Minuten lang hängen, bevor sie zurückgegeben werden. Diese Features können in Looker nicht konfiguriert werden. Aktivieren Sie diese Funktionen in der Benutzeroberfläche von Snowflake auf dem Tab Warehouses.
PAT-Unterstützung
Erstellen Sie für die Unterstützung von persistenter abgeleiteter Tabelle ein Snowflake-Nutzerkonto für PDTs, die Schreibzugriff auf Ihre Datenbank und das Standardschema haben. Aktivieren Sie auf der Looker-Seite Verbindungseinstellungen die Ein-/Aus-Schaltfläche PDTs aktivieren. Gib dann im Abschnitt PDT Overrides (PDT-Überschreibungen) den Nutzernamen und das Passwort des PDT-Nutzers ein. Weitere Informationen finden Sie auf der Dokumentationsseite Verbindung zwischen Looker und Ihrer Datenbank herstellen.
PATs werden nicht für Snowflake-Verbindungen unterstützt, die OAuth verwenden.
Bei Snowflake-Verbindungen setzt Looker den Wert für den Parameter AUTOCOMMIT
auf TRUE
. Dies ist der Standardwert von Snowflake. AUTOCOMMIT ist für SQL-Befehle erforderlich, die von Looker ausgeführt werden, um sein PAT-Registrierungssystem aufrechtzuerhalten.
OAuth für Snowflake-Verbindungen konfigurieren
Looker unterstützt OAuth für Snowflake-Verbindungen. Das heißt, jeder Looker-Nutzer authentifiziert sich bei Snowflake und autorisiert Looker, Abfragen in der Datenbank mit seinem eigenen Snowflake-Nutzerkonto auszuführen.
Über OAuth können Datenbankadministratoren folgende Aufgaben ausführen:
- Überwachen, welche Looker-Benutzer Abfragen mit der Datenbank ausführen
- Rollenbasierte Zugriffssteuerungen mit Snowflake-Berechtigungen erzwingen
- Verwende für alle Prozesse und Aktionen, die auf Snowflake zugreifen, OAuth-Tokens, anstatt Schneeflake-IDs und -Passwörter an mehreren Orten einzubetten
- Autorisierung für einen bestimmten Nutzer über Snowflake widerrufen
Bei Snowflake-Verbindungen, die OAuth verwenden, müssen sich die Nutzer regelmäßig neu anmelden, wenn ihre OAuth-Tokens ablaufen. Die Gültigkeitsdauer von Snowflake OAuth-Tokens wird über Snowflake selbst festgelegt.
Für Snowflake mit OAuth gilt Folgendes:
- Wenn ein Nutzer sein Snowflake-Token ablaufen lässt, hat dies Auswirkungen auf Zeitpläne oder Benachrichtigungen, deren Eigentümer er ist. Um das zu verhindern, sendet Looker eine Benachrichtigungs-E-Mail an den Inhaber jedes Zeitplans und jede Benachrichtigung, bevor das aktuelle aktive Snowflake-OAuth-Token abläuft. Looker sendet diese Benachrichtigungs-E-Mails 14 Tage, 7 Tage und 1 Tag vor Ablauf des Tokens. Der Nutzer kann seine Looker-Nutzerseite aufrufen, um Looker wieder für die Datenbank zu autorisieren und dadurch eine Unterbrechung von Zeitplänen und Benachrichtigungen zu vermeiden. Weitere Informationen finden Sie auf der Seite Einstellungen für Nutzerkonten personalisieren.
- Da Snowflake-Verbindungen, die OAuth verwenden, pro Nutzer gelten, gelten die Caching-Richtlinien auch pro Nutzer und nicht nur pro Abfrage. Das bedeutet, dass anstelle von im Cache gespeicherten Ergebnissen immer dann, wenn die gleiche Abfrage im Caching-Zeitraum ausgeführt wird, Looker-Ergebnisse nur dann verwendet werden, wenn derselbe Nutzer innerhalb des Caching-Zeitraums dieselbe Abfrage ausgeführt hat. Weitere Informationen zum Caching finden Sie auf der Dokumentationsseite zu Caching-Abfragen.
- Wenn Sie OAuth verwenden, können Sie nicht zu verschiedenen Rollen im Snowflake-Nutzerkonto wechseln. Wie in der Snowflake-Dokumentation beschrieben, verwendet Snowflake die Standardrolle des Snowflake-Nutzerkontos, es sei denn, die Standardrolle ist ACCOUNTADMIN oder SECURITYADMIN. Da diese Rollen für OAuth blockiert sind, verwendet Snowflake stattdessen die Rolle PUBLIC. Weitere Informationen finden Sie in der Snowflake-Dokumentation.
- Persistente abgeleitete Tabellen (PDTs) werden für Snowflake-Verbindungen mit OAuth nicht unterstützt.
- Administratoren verwenden das OAuth-Zugriffstoken dieses Nutzers, wenn sie den Sudo-Status als anderen Nutzer festlegen. Wenn das Zugriffstoken des Nutzers abgelaufen ist, kann der Administrator kein neues Token für den sudo-Nutzer erstellen. Der Nutzer muss sich in Snowflake anmelden und Looker neu autorisieren. Informationen zur Verwendung des Befehls
sudo
finden Sie auf der Dokumentationsseite Nutzer.
Snowflake-Datenbank für OAuth mit Looker konfigurieren
Zum Erstellen einer Snowflake-Verbindung zu Looker mit OAuth müssen Sie die OAuth-Integration in Snowflake einrichten. Dafür ist ein Snowflake-Nutzerkonto mit der Berechtigung ACCOUNTADMIN erforderlich.
Führen Sie in Snowflake den folgenden Befehl aus, wobei
<looker_hostname>
der Hostname Ihrer Looker-Instanz ist:CREATE SECURITY INTEGRATION LOOKER TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = LOOKER OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
Fordern Sie die OAuth-Client-ID und das Secret mit dem folgenden Befehl an:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
Die Antwort hat eine
OAUTH_CLIENT_ID
und eineOAUTH_CLIENT_SECRET
, die Sie später in diesem Verfahren benötigen.Erstellen Sie in Looker eine neue Verbindung zu Ihrem Snowflake-Warehouse, wie auf der Dokumentationsseite Verbindung zwischen Looker und Ihrer Datenbank herstellen beschrieben. Wählen Sie beim Erstellen der neuen Verbindung 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
OAUTH_CLIENT_ID
- undOAUTH_CLIENT_SECRET
-Werte ein, die Sie zuvor aus Ihrer Datenbank erhalten haben.Führen Sie die restlichen Schritte unter Looker mit der Datenbank verbinden aus.
Nachdem Sie die Looker-Verbindung zu Ihrer Datenbank konfiguriert haben, können Sie die Verbindung selbst testen. Dazu haben Sie folgende Möglichkeiten:
- Wählen Sie unten auf der Seite Verbindungseinstellungen die Schaltfläche Testen aus, wie auf der Dokumentationsseite Verbindung zwischen Looker und Datenbank herstellen beschrieben.
- Wählen Sie auf der Admin-Seite Verbindungen im Eintrag der Verbindung die Schaltfläche Testen aus, wie auf der Dokumentationsseite Verbindungen beschrieben.
Darüber hinaus können Sie die Verbindung testen und auf einem Modell bereitstellen. Gehen Sie dazu so vor:
- Wechseln Sie in Looker in den Entwicklungsmodus.
- Rufen Sie die Projektdateien auf, um ein Looker-Projekt zu finden, das Ihre Snowflake-Verbindung verwendet.
- Ö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 das explorative Modell oder die Dashboards des Modells und führen Sie eine Abfrage aus. Wenn Sie versuchen, eine Abfrage auszuführen, werden Sie von Looker aufgefordert, sich in Snowflake anzumelden.
- Folgen Sie den Anmeldeaufforderungen von Snowflake und geben Sie Ihre Snowflake-Anmeldedaten ein.
Nachdem Sie sich in Snowflake angemeldet haben, kehrt Looker zu Ihrer Abfrage zurück. Wenn Ihre Abfrage korrekt ausgeführt wird, können Sie für die neuen Verbindungen einen Commit durchführen und Ihre Änderungen für die Produktion bereitstellen.
In Snowflake anmelden, um Abfragen auszuführen
Sobald die Snowflake-Verbindung für OAuth eingerichtet ist, werden Nutzer aufgefordert, sich bei Snowflake anzumelden, bevor sie Abfragen ausführen. Das gilt auch für Abfragen aus Explores, Dashboards, Looks und SQL-Runnern.
Nutzer können sich auch auf der Seite Account (Konto) im Abschnitt OAuth-Verbindungsanmeldedaten von Snowflake anmelden.
So melden Sie sich in Looker in Ihrem Snowflake-Konto an:
- Klicken Sie auf das Looker-Nutzermenü.
- Wählen Sie Konto aus.
- Scrollen Sie auf der Seite Account (Konto) nach unten zum Bereich OAuth Connection Credentials (Anmeldedaten für OAuth-Verbindung) und wählen Sie die Schaltfläche Log In (Anmelden) für die gewünschte Snowflake-Datenbank aus.
Daraufhin wird ein Pop-up-Fenster für die Anmeldung bei Snowflake angezeigt. Geben Sie Ihre Snowflake-Anmeldedaten ein. Wählen Sie Login (Anmelden) und dann Allow (Zulassen) aus, um Looker Zugriff auf Ihr Snowflake-Konto zu gewähren.
Nachdem Sie sich über Looker in Snowflake angemeldet haben, können Sie sich auf der Seite Account (Konto) jederzeit abmelden oder Ihre Anmeldedaten neu autorisieren. Weitere Informationen dazu finden Sie auf der Seite Personalisierung Ihres Nutzerkontos.
Unterstützte Funktionen
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Ab Looker 23.8 unterstützt Snowflake die folgenden Funktionen:
Funktion | Unterstützt? |
---|---|
Supportstufe | Unterstützt |
Looker (Google Cloud Core) | Ja |
Symmetrische Summen | Ja |
Abgeleitete Tabellen | Ja |
Über SQL abgeleitete Tabellen | Ja |
Nichtflüchtige native abgeleitete Tabellen | Ja |
Stabile Aufrufe | Ja |
Abfrageabbau | Ja |
SQL-basierte Pivots | Ja |
Zeitzonen | Ja |
SSL | Ja |
Zwischensummen | Ja |
Zusätzliche JDBC-Parameter | Ja |
Groß-/Kleinschreibung beachten | Ja |
Standorttyp | Ja |
Listentyp | Ja |
Perzentil | Ja |
Eindeutiges Perzentil | Nein |
Prozesse der SQL Runner-Sendung | Nein |
SQL-Runner-Beschreibungstabelle | Ja |
SQL-Runner-Show-Indizes | Nein |
SQL Runner Select 10 | Ja |
Anzahl der SQL-Runner | Ja |
Erläuterung zu SQL | Ja |
OAuth-Anmeldedaten | Ja |
Kontextkommentare | Ja |
Verbindungs-Pooling | Ja |
HLL-Sketche | Ja |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Ja |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl Einzeln | Nein |
Nächste Schritte
Nachdem Sie die Datenbank mit Looker verbunden haben, konfigurieren Sie die Anmeldeoptionen für Ihre Nutzer.