So stellen Sie eine Verbindung zwischen Looker und Snowflake her:
- Erstellen Sie einen Looker-Nutzer in Snowflake und stellen Sie den Zugriff bereit.
- Richten Sie eine Datenbankverbindung in Looker ein.
Netzwerkverkehr 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-Nutzer in Snowflake erstellen
Wir empfehlen die folgenden Befehle zum Erstellen des Looker-Nutzers. Führen Sie jede Zeile einzeln aus.
Optional können Sie das Keyword
ON FUTURE
hinzufügen, umGRANT
-Anweisungen für neu erstellte Objekte zu speichern. Wir empfehlen, diesen Befehl für Tabellen in allen Schemas auszuführen, die in Looker verwendet werden, damit SieGRANT
-Anweisungen nicht noch einmal ausführen müssen, 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, wählen Sie das Kästchen Alle Abfragen aus, damit alle Zeilen ausgeführt werden. Standardmäßig werden in Snowflake nur die ausgewählten Zeilen ausgeführt.
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:
- Name: Geben Sie einen Namen für die Verbindung ein. So wird im LookML-Modell auf die Verbindung verwiesen.
- Dialekt: Wählen Sie Snowflake aus.
- Host: Geben Sie den Snowflake-Hostnamen ein. Er sieht so aus:
<account_name>.snowflakecomputing.com
. Sehen Sie sich die Beispiele für Snowflake-Kontonamen 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:
- Geben Sie unter Datenbankkonto den Nutzernamen und das Passwort des Snowflake-Nutzerkontos 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. Wenn Sie PDTs aktivieren, werden zusätzliche PDT-Felder und der Bereich PDT-Überschreibungen für die Verbindung angezeigt.
Temporäre Datenbank: Wenn PDTs aktiviert sind, legen Sie in diesem Feld ein Schema fest, in dem der Nutzer vollständige Berechtigungen zum Erstellen, Löschen, Umbenennen und Ändern von Tabellen hat.
Maximale Verbindungen pro Knoten: Diese Einstellung kann anfangs auf dem Standardwert belassen werden. Weitere Informationen zu dieser Einstellung finden Sie auf der Seite Looker mit Ihrer Datenbank verbinden im Abschnitt Maximale Verbindungen pro Knoten.
Kostenschätzung: Hiermit werden Kostenschätzungen für Explore-Abfragen, Kostenschätzungen für SQL Runner-Abfragen und Kosteneinsparungen für Abfragen zur Aggregation von Daten für die Verbindung aktiviert.
Datenbankzeitzone: Die Zeitzone, in der Ihre Snowflake-Datenbank Datums- und Uhrzeitangaben speichert. Der Standardwert ist UTC. Dies ist optional.
Zeitzone der Abfrage: Die Zeitzone, in der Ihre Abfragen angezeigt werden sollen. Beispiel: US Eastern (Amerika – New York). Dies ist optional.
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 werden in Looker standardmäßig die folgenden Snowflake-Parameter für jede Sitzung festgelegt:
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
- Fügen Sie
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.
Snowflake-Repositories pro Gruppe oder pro Nutzer festlegen
Mithilfe von Looker-Nutzerattributen können Sie einzelnen Looker-Nutzern oder -Gruppen separate Snowflake-Warehouses zuweisen. Das ist beispielsweise nützlich, wenn Nutzer unterschiedliche Rechenleistung benötigen. Sie können ein Data Warehouse mit mehr Rechenressourcen nur den Nutzern zuweisen, die es benötigen, und Nutzern mit geringeren Anforderungen ein Data Warehouse mit weniger Ressourcen.
So weisen Sie Lager pro Gruppe oder pro Nutzer 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 gerade definierten Nutzerattribut den Gruppen oder Nutzern die Werte für den Namen des Lagers zu.
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'] }}
Beispiel:
Wenn Sie die einzelnen Verbindungseinstellungen testen möchten, können Sie sudo als Nutzer ausführen, dem Sie einen Wert für den Namen des Repositoriums zugewiesen haben.
Eine ausführlichere Anleitung zu diesem Verfahren findest du im Red Pill Analytics-Blog.
Die Funktion „Autosuspend“ von Snowflake
Snowflake-Repositories haben eine Funktion zur automatischen Sperrung, die standardmäßig aktiviert ist. Nach einem bestimmten Zeitraum wird das Lager automatisch ausgesetzt. Wenn das Warehouse deaktiviert ist, führen alle Abfragen zu einem Fehler. Dieser Fehler ist in Dashboards nicht sichtbar, da dort normalerweise keine Daten angezeigt werden. Er wird jedoch bei Abfragen über die Seite „Expl. Datenanalyse“ angezeigt.
Snowflake bietet außerdem eine Funktion zur automatischen Wiederaufnahme, mit der das Data Warehouse fortgesetzt wird, wenn es abgefragt wird. Das Wiederaufnehmen des Speichers kann jedoch bis zu fünf Minuten dauern. In dieser Zeit reagieren Abfragen nicht. Diese Funktionen können nicht in Looker konfiguriert werden. Aktivieren Sie diese Funktionen auf dem Tab Repositories in der Snowflake-Benutzeroberfläche.
Unterstützung von PDT
Wenn Sie persistente abgeleitete Tabellen verwenden 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 Verbindungseinstellungen in Looker im Bereich Persistente abgeleitete Tabellen (PDTs) die Option PDTs aktivieren. Geben Sie dann im Feld Temporäre Datenbank den Namen des temporären Schemas ein, das Looker zum Erstellen von PDTs verwendet. Geben Sie als Nächstes im Abschnitt PDT-Überschreibungen den Nutzernamen und das Passwort des PDT-Nutzers ein. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.
PDTs werden für Snowflake-Verbindungen, die OAuth verwenden, nicht unterstützt.
Bei Snowflake-Verbindungen legt Looker den Wert für den Parameter AUTOCOMMIT
auf TRUE
fest (der 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 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-Nutzer 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 Snowflake-Verbindungen, die OAuth verwenden, müssen sich Nutzer regelmäßig wieder anmelden, wenn ihre OAuth-Tokens ablaufen. Die Gültigkeitsdauer von Snowflake-OAuth-Tokens wird in Snowflake selbst festgelegt.
Beachten Sie Folgendes für OAuth-Verbindungen auf Datenbankebene:
- Wenn ein Nutzer sein OAuth-Token verfallen lässt, sind alle Looker-Zeitpläne oder -Benachrichtigungen, deren Inhaber 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 Seite Abfragen im Cache speichern.
Wenn Sie OAuth verwenden, können Sie nicht zu anderen Rollen im Snowflake-Nutzerkonto wechseln. Wie in der Snowflake-Dokumentation beschrieben, verwendet Snowflake die Standardrolle des Kontos des Snowflake-Nutzers, 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.
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 mit Looker für OAuth 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 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';
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 zur Datenbank herstellen dieser Seite 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-Client-Secret angezeigt.
Fügen Sie die Werte für
OAUTH_CLIENT_ID
undOAUTH_CLIENT_SECRET
ein, die Sie früher in diesem Verfahren aus Ihrer Datenbank abgerufen haben.Führen Sie den Rest des Verfahrens unter Looker mit Ihrer Datenbank verbinden aus.
Nachdem Sie die Looker-Verbindung zu Ihrer Datenbank konfiguriert haben, können Sie die Verbindung selbst testen. Gehen Sie dazu so vor:
- Klicken Sie auf der Seite Verbindungseinstellungen unten auf die Schaltfläche Testen, wie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden beschrieben.
- Wählen Sie auf der Seite Verbindungen auf der Seite „Verwaltung“ neben dem Eintrag der Verbindung 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 Entwicklungsmodus.
- Rufen Sie die Projektdateien für ein Looker-Projekt auf, das Ihre Snowflake-Verbindung verwendet.
- Öffnen Sie eine Modelldatei und ersetzen Sie den Wert
connection
des Modells durch den Namen der neuen Snowflake-Verbindung. Speichern Sie dann 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 in Snowflake anzumelden.
- Folgen Sie der Anleitung zur Anmeldung in Snowflake und geben Sie Ihre Snowflake-Anmeldedaten ein.
Nach der Anmeldung in Snowflake werden Sie in Looker zu Ihrer Abfrage zurückgeleitet. Wenn die Abfrage richtig ausgeführt wird, können Sie den neuen Verbindungswert festschreiben und Ihre Änderungen in der Produktion bereitstellen.
In Snowflake anmelden, um Abfragen auszuführen
Sobald 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 SQL Runner.
Nutzer können sich auch auf der Seite Konto im Bereich OAuth-Anmeldedaten für die Verbindung 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-Anmeldedaten für die Verbindung auf und klicken Sie für die entsprechende Snowflake-Datenbank auf die Schaltfläche Anmelden.
Wenn Sie Anmelden auswählen, wird das Snowflake-Anmeldedialogfeld angezeigt. Geben Sie Ihre Snowflake-Anmeldedaten ein und wählen Sie Anmelden und dann 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 jederzeit über die Seite Konto abmelden oder Ihre Anmeldedaten neu autorisieren, wie auf der Dokumentationsseite Personalisierung Ihres Nutzerkontos beschrieben.
Funktionsunterstützung
Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.
Snowflake unterstützt ab Looker 25.0 die folgenden Funktionen:
Feature | 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 | Nein |
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 | Ja |
HLL-Skizzen | Ja |
Aggregatfunktion | Ja |
Inkrementelle PDTs | Ja |
Millisekunden | Ja |
Mikrosekunden | Ja |
Materialisierte Ansichten | Nein |
Ungefähre Anzahl einzelner Aufrufe | Nein |
Nächste Schritte
Nachdem Sie Ihre Datenbank mit Looker verbunden haben, konfigurieren Sie die Anmeldeoptionen für Ihre Nutzer.