Snowflake

Führen Sie die folgenden Schritte aus, um Looker mit Snowflake zu verbinden:

  1. Looker-Nutzer auf Snowflake erstellen und Zugriff gewähren.
  2. 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. Sehen Sie sich eine der Optionen an, die auf der Dokumentationsseite Sicheren Datenbankzugriff aktivieren beschrieben werden.

Looker-Nutzer auf Snowflake erstellen

Wir empfehlen die folgenden Befehle, um den Looker-Nutzer zu erstellen. Achten Sie darauf, jede Zeile einzeln auszuführen.

Fügen Sie optional das Keyword ON FUTURE hinzu, um GRANT-Anweisungen für neu erstellte Objekte beizubehalten. Wir empfehlen, diesen Befehl für Tabellen in allen Schemas auszuführen, die von Looker verwendet werden. Sie müssen GRANT-Anweisungen also 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-Verbindungssteuerfeld einfügen, aktivieren Sie das Kontrollkästchen Alle Abfragen, um sicherzustellen, dass alle Zeilen ausgeführt werden. Standardmäßig führt Snowflake nur die ausgewählten Linien aus.

Looker-Verbindung zu Ihrer Datenbank erstellen

Wählen Sie im Bereich Admin von Looker die Option Verbindungen aus und klicken Sie dann auf Verbindung hinzufügen.

Geben Sie die Verbindungsdetails ein. Die meisten Einstellungen sind den meisten Datenbankdialekten gemeinsam. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden. Einige der Einstellungen werden im Folgenden beschrieben:

  • Name: Geben Sie der Verbindung einen Namen. So verweist das LookML-Modell auf die Verbindung.
  • Dialekt: Wählen Sie Snowflake aus.
  • Host: Geben Sie den Snowflake-Hostnamen ein. Sie sieht so aus: <account_name>.snowflakecomputing.com. Prüfen Sie Beispiele für Snowflake-Kontonamen nach Region, 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.
  • Authentication (Authentifizierung): Wählen Sie Database Account 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: Verwenden Sie diese Ein/Aus-Schaltfläche, um nichtflüchtige 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 für dieses Feld ein Schema fest, bei dem der Nutzer über alle Berechtigungen zum Erstellen, Löschen, Umbenennen und Ändern von Tabellen verfügt.
  • Max. Verbindungen pro Knoten: Diese Einstellung kann anfangs auf dem Standardwert belassen werden. Weitere Informationen zu dieser Einstellung finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden im Abschnitt Max. Verbindungen pro Knoten.
  • Kostenschätzung: Aktiviert Kostenschätzungen für Explore-Abfragen, Kostenschätzungen für SQL Runner-Abfragen und Schätzungen für Recheneinsparungen für Aggregate Awareness-Abfragen für die Verbindung.
  • Datenbank-Zeitzone: Die Zeitzone, in der Ihre Snowflake-Datenbank Datum und Uhrzeit speichert. Die Standardeinstellung ist UTC. Dies ist optional.
  • Zeitzone der Abfrage: Die Zeitzone, in der Ihre Abfragen angezeigt werden sollen. Beispiel: USA (Osten (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.
    • Darüber hinaus 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 die einzelnen Parameter überschreiben, indem Sie im Feld Zusätzliche JDBC-Parameter einen alternativen Wert angeben, z. B. &AUTOCOMMIT=FALSE.

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 Warehouses pro Gruppe oder pro Nutzer festlegen

Sie können Looker-Nutzerattribute verwenden, um einzelnen Looker-Nutzern oder ‐Gruppen separate Snowflake-Warehouses zuzuweisen. Dies ist beispielsweise nützlich, wenn Sie Nutzer haben, die unterschiedliche Rechenleistungen benötigen. Sie können ein Warehouse mit größeren Rechenressourcen nur den Nutzern zuweisen, die es benötigen, während Sie ein Warehouse mit weniger Ressourcen nur den Nutzern mit geringeren Anforderungen zuweisen.

So legen Sie Warenlager pro Gruppe oder pro Nutzer fest:

  1. Fügen Sie die Gruppen oder Nutzer in Looker hinzu.
  2. Definieren Sie in Looker ein Nutzerattribut, in dem die Snowflake-Warehouse-Namen gespeichert werden. Sie können diesem Attribut einen beliebigen Namen geben, z. B. snowflake_wh.

  3. Weisen Sie in dem soeben definierten Nutzerattribut die Werte der Warehouse-Namen den Gruppen oder Nutzern zu.

  4. Geben Sie auf der Seite Verbindungseinstellungen im Feld Zusätzliche JDBC-Parameter Folgendes ein und ersetzen Sie dabei snowflake_warehouse durch den Namen des von Ihnen definierten Nutzerattributs:

      warehouse={{ _user_attributes['snowflake_warehouse'] }}
    

    Beispiel:

  5. Um die individuellen Verbindungseinstellungen zu testen, können Sie als Nutzer, dem Sie einen Wert für den Warehouse-Namen zugewiesen haben, mit sudo die einzelnen Verbindungseinstellungen testen.

Eine ausführlichere Anleitung für diesen Eingriff finden Sie im Red Pill Analytics-Blog.

Funktion zur automatischen Sperrung von Snowflake

Snowflake Warehouses haben ein Feature zur automatischen Sperrung, das standardmäßig aktiviert ist. Nach einem bestimmten Zeitraum wird das Warehouse automatisch gesperrt. Wenn das Warehouse gesperrt wird, führen alle Abfragen zu einem Fehler. Dieser Fehler ist in Dashboards nicht sichtbar (normalerweise werden keine Daten angezeigt), ist aber bei Abfragen über die Explore-Seite sichtbar.

Snowflake verfügt auch über eine Funktion zum automatischen Fortsetzen, mit der das Warehouse bei einer Abfrage fortgesetzt wird. Die Fortsetzung des Warehouse kann jedoch bis zu fünf Minuten dauern. Dadurch hängen die Abfragen fünf Minuten lang auf, bevor sie zurückkehren. Diese Features können in Looker nicht konfiguriert werden. Aktivieren Sie diese Funktionen auf dem Tab Warehouses in der Snowflake-Benutzeroberfläche.

PAT-Unterstützung

Erstellen Sie zur Unterstützung von nichtflüchtigen abgeleiteten Tabellen ein Snowflake-Nutzerkonto für PATs, das Schreibzugriff auf Ihre Datenbank und das temporäre Schema hat, das Looker zum Erstellen von PDTs verwendet. Aktivieren Sie auf der Looker-Seite Verbindungseinstellungen im Bereich Persistente abgeleitete Tabellen (PDTs) die Ein/Aus-Schaltfläche 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 PAT-Nutzers ein. Weitere Informationen finden Sie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden.

PDTs werden für Snowflake-Verbindungen mit OAuth nicht unterstützt.

Bei Snowflake-Verbindungen legt Looker den Wert für den Parameter AUTOCOMMIT auf TRUE fest. Dies ist der Standardwert von Snowflake. AUTOCOMMIT ist für SQL-Befehle erforderlich, die Looker zur Verwaltung des PAT-Registrierungssystems ausführt.

OAuth für Snowflake-Verbindungen konfigurieren

Looker unterstützt OAuth für Snowflake-Verbindungen. Dies bedeutet, dass sich jeder Looker-Benutzer bei Snowflake authentifiziert und Looker autorisiert, Abfragen in der Datenbank mit seinem eigenen Snowflake-Benutzerkonto auszuführen.

Über OAuth können Datenbankadministratoren folgende Aufgaben ausführen:

  • Überwachen, welche Looker-Benutzer Abfragen mit der Datenbank ausführen
  • Rollenbasierte Zugriffssteuerung mit Snowflake-Berechtigungen erzwingen
  • Verwenden Sie OAuth-Tokens für alle Prozesse und Aktionen, die auf Snowflake zugreifen, anstatt Snowflake-IDs und -Passwörter an mehreren Stellen einzubetten.
  • Autorisierung für einen bestimmten Nutzer über Snowflake widerrufen

Bei Snowflake-Verbindungen, die OAuth verwenden, müssen sich Nutzer regelmäßig neu anmelden, wenn ihre OAuth-Tokens ablaufen. Die Gültigkeitsdauer von Snowflake-OAuth-Tokens wird von Snowflake selbst festgelegt.

Beachten Sie Folgendes für Snowflake mit OAuth:

  • Wenn ein Nutzer sein Snowflake-Token ablaufen lässt, sind alle Zeitpläne oder Benachrichtigungen, die ihm gehören, davon betroffen. Um dies zu vermeiden, sendet Looker eine Benachrichtigungs-E-Mail an den Inhaber jedes Zeitplans und jeder 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-Benutzerseite aufrufen, um Looker noch einmal für die Datenbank zu autorisieren und Unterbrechungen seiner Zeitpläne und Warnungen zu vermeiden. Weitere Informationen finden Sie auf der Dokumentationsseite Nutzerkontoeinstellungen personalisieren.
  • Da Snowflake-Verbindungen, die OAuth verwenden, "pro Nutzer" sind, gelten die Caching-Richtlinien auch pro Nutzer und nicht nur pro Abfrage. Das bedeutet, dass Looker nicht mehr zwischengespeicherte Ergebnisse verwendet, wenn dieselbe Abfrage innerhalb des Caching-Zeitraums ausgeführt wird, sondern nur dann, wenn derselbe Nutzer dieselbe Abfrage ausgeführt hat. Weitere Informationen zum Caching finden Sie auf der Dokumentationsseite Caching-Abfragen.
  • 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 Snowflake-Nutzerkontos, es sei denn, die Standardrolle lautet ACCOUNTADMIN oder SECURITYADMIN. Da diese Rollen für OAuth blockiert sind, verwendet Snowflake stattdessen die Rolle ÖFFENTLICH. Weitere Informationen finden Sie in der Snowflake-Dokumentation.
  • Persistente abgeleitete Tabellen (PDTs) werden für Snowflake-Verbindungen mit OAuth nicht unterstützt.
  • Wenn Administratoren im SUDO-Status als anderer Benutzer agieren, verwenden sie das OAuth-Zugriffstoken dieses Benutzers. Wenn das Zugriffstoken des Benutzers abgelaufen ist, kann der Administrator kein neues Token im Namen des Benutzers erstellen, den der Nutzer im sudo-Befehl erstellt hat. Der Benutzer muss sich bei Snowflake anmelden und Looker noch einmal autorisieren. Informationen zur Verwendung des Befehls sudo finden Sie auf der Dokumentationsseite Nutzer.

Snowflake-Datenbank für OAuth mit Looker konfigurieren

Um eine Snowflake-Verbindung zu Looker mithilfe von OAuth zu erstellen, müssen Sie die OAuth-Integration in Snowflake einrichten. Hierfür ist ein Snowflake-Nutzerkonto mit der Berechtigung ACCOUNTADMIN erforderlich.

  1. Führen Sie den folgenden Befehl in Snowflake 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';
    
  2. Rufen Sie die OAuth-Client-ID und den OAuth-Clientschlüssel ab, indem Sie den folgenden Befehl ausführen:

      SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
    

    Die Antwort enthält OAUTH_CLIENT_ID und OAUTH_CLIENT_SECRET, die Sie später in diesem Verfahren benötigen.

  3. Erstellen Sie in Looker eine neue Verbindung zu Ihrem Snowflake-Warehouse, wie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden beschrieben. Wählen Sie beim Erstellen der neuen Verbindung im Feld Authentication (Authentifizierung) die Option OAuth aus. Wenn Sie die Option OAuth auswählen, zeigt Looker die Felder OAuth-Client-ID und OAuth-Clientschlüssel an.

  4. Fügen Sie die Werte OAUTH_CLIENT_ID und OAUTH_CLIENT_SECRET ein, die Sie zuvor in diesem Verfahren aus Ihrer Datenbank erhalten haben.

  5. Führen Sie die restlichen Schritte unter Looker mit Ihrer Datenbank verbinden aus.

Nachdem Sie die Verbindung von Looker zu Ihrer Datenbank konfiguriert haben, können Sie die Verbindung selbst testen, indem Sie eine der folgenden Aktionen ausführen:

  • Wählen Sie unten auf der Seite Verbindungseinstellungen die Schaltfläche Test aus, wie auf der Dokumentationsseite Looker mit Ihrer Datenbank verbinden beschrieben.
  • Wählen Sie die Schaltfläche Test (Testen) neben dem Eintrag der Verbindung auf der Verwaltungsseite Connections (Verbindungen) aus, wie auf der Dokumentationsseite Connections beschrieben.

Darüber hinaus können Sie die Verbindung testen und für ein Modell bereitstellen. Gehen Sie dazu so vor:

  1. Wechseln Sie in Looker in den Entwicklungsmodus.
  2. Gehen Sie zu den Projektdateien für ein Looker-Projekt, das Ihre Snowflake-Verbindung verwendet.
  3. Öffnen Sie eine Modelldatei und ersetzen Sie den connection-Wert des Modells durch den Namen der neuen Snowflake-Verbindung. Speichern Sie dann die Modelldatei.
  4. Ö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 von Looker aufgefordert, sich bei Snowflake anzumelden.
  5. Folgen Sie den Eingabeaufforderungen für Snowflake und geben Sie Ihre Snowflake-Anmeldedaten ein.

Nach der erfolgreichen Anmeldung bei Snowflake kehrt Looker zu Ihrer Abfrage zurück. Wenn die Abfrage korrekt ausgeführt wird, können Sie einen Commit für den neuen Verbindungswert durchführen und die Änderungen für die Produktion bereitstellen.

Bei Snowflake anmelden, um Abfragen auszuführen

Sobald die Snowflake-Verbindung für OAuth eingerichtet ist, werden die 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 über den Abschnitt OAuth-Verbindungsanmeldedaten auf ihrer Seite Konto bei Snowflake anmelden.

So melden Sie sich mit Looker bei Ihrem Snowflake-Konto an:

  1. Klicken Sie auf das Looker-Benutzermenü.
  2. Wählen Sie Konto aus.
  3. Scrollen Sie auf der Seite Account (Konto) nach unten zum Abschnitt OAuth Connection Credentials (OAuth-Verbindungsanmeldedaten) und wählen Sie für die gewünschte Snowflake-Datenbank die Schaltfläche Log In (Anmelden) aus.

Dadurch wird ein Pop-up-Fenster für die Anmeldung bei Snowflake angezeigt. Geben Sie Ihre Snowflake-Anmeldedaten ein, wählen Sie Anmelden und dann Zulassen aus, um Looker Zugriff auf Ihr Snowflake-Konto zu gewähren.

Nachdem Sie sich über Looker bei Snowflake angemeldet haben, können Sie sich jederzeit über die Seite Konto abmelden oder Ihre Anmeldedaten noch einmal autorisieren, wie auf der Dokumentationsseite Nutzerkonto personalisieren beschrieben.

Unterstützte Funktionen

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

Snowflake unterstützt ab Looker 24.8 die folgenden Funktionen:

Funktion Unterstützt?
Supportstufe
Unterstützt
Looker (Google Cloud Core)
Yes
Symmetrische Summen
Yes
Abgeleitete Tabellen
Yes
Abgeleitete SQL-Tabellen
Yes
Nichtflüchtige native abgeleitete Tabellen
Yes
Stabile Ansichten
Yes
Abfrage beenden
Yes
SQL-basierte Pivots
Yes
Zeitzonen
Yes
SSL
Yes
Zwischensummen
Yes
Zusätzliche JDBC-Parameter
Yes
Groß-/Kleinschreibung beachten
Yes
Standorttyp
Yes
Listentyp
Yes
Perzentil
Yes
Unterschiedliche Perzentile
Nein
SQL-Runner-Show-Prozesse
Nein
SQL-Runner – Tabelle beschreiben
Yes
SQL Runner – Indexe anzeigen
Nein
SQL Runner Select 10
Yes
Anzahl der SQL-Runner
Yes
SQL erklären
Yes
OAuth-Anmeldedaten
Yes
Kontextkommentare
Yes
Verbindungs-Pooling
Yes
HLL-Skizzen
Yes
Aggregatfunktion
Yes
Inkrementelle PDTs
Yes
Millisekunden
Yes
Mikrosekunden
Yes
Materialisierte Ansicht
Nein
Ungefähre Anzahl unterschiedlich
Nein

Weitere Informationen

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