
Integration von Snowflake mit Looker

Einleitung
Snowflake, eine cloudbasierte Data Warehousing-Plattform, und Looker, ein modernes Business Intelligence- und Datenvisualisierungs-Tool, gehören zu den beliebtesten Tools für Datenanalysen. Die Integration von Snowflake und Looker ermöglicht es Organisationen, die Leistungsfähigkeit von Snowflakes skalierbarem, flexiblem Datenspeicher mit Lookers intuitiver Datenexploration und Dashboard-Funktionalitäten zu nutzen.
In diesem Artikel behandeln wir die Grundlagen der Verwendung von Snowflake mit Looker, einschließlich der Einrichtung der Integration, der Verwaltung von Benutzern und Rollen, der Implementierung von Row-Level-Sicherheit, der Nutzung von Lookers LookML-Modellierungsschicht mit Snowflake und der Anwendung von Data-Governance Best Practices. Am Ende werden Sie eine solide Grundlage für den Aufbau eines modernen Analysestacks mit Snowflake und Looker haben.
Einrichtung der Snowflake Looker Integration
Der erste Schritt besteht darin, Ihr Snowflake-Konto mit Looker zu verbinden.
So geht’s:
- Gehen Sie in Looker zu Admin > Verbindungen und klicken Sie auf “Neue Verbindung”.
- Wählen Sie “Snowflake” als Dialekt aus.
- Geben Sie Ihre Snowflake-Konto-URL, den Benutzernamen und das Passwort ein.
- Wählen Sie die Standarddatenbank, das Schema und das Warehouse aus.
- Testen Sie die Verbindung und speichern Sie.
Zum Beispiel:
Verbindungsname: Meine Snowflake-Verbindung Dialekt: snowflake Host: myaccount.snowflakecomputing.com Datenbank: MYDB Schema: PUBLIC Warehouse: MYWH
Sobald die Verbindung eingerichtet ist, kann Looker nun Daten in Ihrem Snowflake-Konto abfragen. Der nächste Schritt ist die Erstellung eines LookML-Projekts zur Modellierung und Exploration dieser Daten.
Modellierung von Snowflake-Daten in Looker mit LookML
LookML ist Lookers Modellierungssprache zur Beschreibung des Schemas Ihrer Datenbank auf eine versionierbare Weise. Anstatt SQL-Abfragen zu schreiben, definieren Sie Ihr Datenmodell in LookML und lassen Looker optimiertes SQL für Sie generieren. Dies fördert die Wiederverwendbarkeit und Konsistenz im gesamten Datenteam.

Hier ist ein Beispiel für eine einfache LookML-Ansicht für eine Users-Tabelle in Snowflake:
view: users { sql_table_name: MYDB.PUBLIC.USERS ;; dimension: user_id { primary_key: yes type: number sql: ${TABLE}.ID ;; } dimension: name { type: string sql: ${TABLE}.NAME ;; } dimension: email { type: string sql: ${TABLE}.EMAIL ;; } measure: count { type: count } }
Diese Ansicht ordnet der USERS-Tabelle in Snowflake Dimensionen und Measures zu, die im Looker’s Explore-Bereich verwendet werden können, um Diagramme und Dashboards zu erstellen.
Einige wichtige LookML-Konzepte, die Sie bei der Modellierung von Snowflake-Daten in Looker verstehen sollten:
- Views ordnen sich Tabellen oder abgeleiteten Tabellen zu
- Dimensionen ordnen sich Spalten zu und können zum Gruppieren und Filtern verwendet werden
- Measures sind Aggregationen wie COUNT, SUM, AVG
- Sie können Beziehungen zwischen Views definieren, die Looker verwendet, um automatisch Tabellen zu verknüpfen
Looker übernimmt automatisch die Generierung des optimalen SQL-Dialekts für die verbundene Snowflake-Datenbank. Dies abstrahiert die Komplexitäten der zugrunde liegenden Datenbank und ermöglicht es Analysten, sich auf das Stellen von Fragen und das Gewinnen von Erkenntnissen zu konzentrieren.
Verwaltung von Rollen und Benutzern in Snowflake und Looker
Bei der Konfiguration von Snowflake Looker für Ihre Organisation ist es entscheidend, Rollen und Benutzer richtig zu verwalten, um sicherzustellen, dass der Datenzugriff entsprechend eingeschränkt wird. Snowflake bietet umfassende rollenbasierte Zugriffskontrolle, und Looker ermöglicht es Ihnen, Snowflake-Rollen und -Privilegien Looker-Gruppen zuzuweisen.

Snowflake-Rollen
In Snowflake sind Rollen die Grundlage für Privilegien und Zugriffskontrollen. Einige wichtige Konzepte:
- Rollen können Privilegien für bestimmte Datenbanken, Schemata, Tabellen und Ansichten zugewiesen werden
- Rollen können Benutzern und anderen Rollen zugewiesen werden
- Snowflake hat mehrere systemdefinierte Rollen wie ACCOUNTADMIN, SYSADMIN, SECURITYADMIN
- Es ist eine Best Practice, benutzerdefinierte Rollen zu erstellen, die den Bedürfnissen Ihrer Organisation entsprechen
Zum Beispiel, um eine ANALYST-Rolle zu erstellen, die Daten in der MYDB-Datenbank lesen kann:
USE ROLE SECURITYADMIN; CREATE ROLE ANALYST; GRANT USAGE ON DATABASE MYDB TO ROLE ANALYST; GRANT USAGE ON ALL SCHEMAS IN DATABASE MYDB TO ROLE ANALYST; GRANT SELECT ON ALL TABLES IN DATABASE MYDB TO ROLE ANALYST; GRANT SELECT ON FUTURE TABLES IN DATABASE MYDB TO ROLE ANALYST;
Diese Rolle kann nun Snowflake-Benutzern oder -Gruppen zugewiesen werden, die Lesezugriff auf Daten in MYDB zu Analysezwecken benötigen.
Looker-Rollen und -Gruppen
In Looker weisen Sie Rollen und Privilegien Gruppen zu, die Sammlungen von Looker-Benutzern sind. Snowflake-Rollen können Looker-Gruppen zugeordnet werden, um Snowflakes Zugriffskontrollen in die Looker-Ebene zu erweitern.
So ordnen Sie eine Snowflake-Rolle einer Looker-Gruppe zu:
- Gehen Sie zu Admin > Gruppen in Looker
- Erstellen Sie eine neue Gruppe oder bearbeiten Sie eine bestehende
- Wählen Sie unter Rollen die Snowflake-Verbindung und die zuzuweisende Snowflake-Rolle aus
- Alle Benutzer, die dieser Looker-Gruppe hinzugefügt werden, haben nun die Privilegien der zugewiesenen Snowflake-Rolle, wenn sie Daten durch Looker erkunden
Zum Beispiel könnten Sie eine Looker-Gruppe namens “Business Analysts” erstellen, ihr die ANALYST-Snowflake-Rolle von früher zuweisen und alle Ihre Analysten-Looker-Benutzer zu dieser Gruppe hinzufügen. Sie sind auf schreibgeschützte Abfragen in der MYDB-Datenbank beschränkt.
Die Kombination von Snowflake-Rollen und Looker-Gruppen bietet eine leistungsstarke Möglichkeit, den Datenzugriff in Ihrem Snowflake Looker-Analysestack zu verwalten. Durch einen strategischen Ansatz bei der Konfiguration dieser Berechtigungen können Sie sicherstellen, dass die richtigen Personen Zugriff auf die richtigen Daten haben.
Implementierung von Row-Level-Sicherheit mit Snowflake und Looker
Die Row-Level-Sicherheit beschränkt den Datenzugriff auf der Ebene einzelner Zeilen basierend auf Benutzerattributen. Dies ist wichtig, um sicherzustellen, dass Benutzer nur die Daten sehen, zu deren Zugriff sie autorisiert sind. Snowflake Looker unterstützt die Row-Level-Sicherheit durch die Nutzung von Secure Views in Snowflake und Benutzerattributen in Looker.
Secure Views in Snowflake
Secure Views in Snowflake sind Ansichten, die auf anderen Datenbankobjekten basieren und Row-Level-Sicherheitsrichtlinien mithilfe von SQL-Prädikaten anwenden.
Zum Beispiel, wenn wir eine ORDERS-Tabelle haben und wollen, dass Benutzer nur ihre eigenen Bestellungen sehen können, könnten wir eine Secure View erstellen wie:
CREATE SECURE VIEW MY_ORDERS AS SELECT * FROM ORDERS WHERE USER_ID = CURRENT_USER();
Die Funktion CURRENT_USER() gibt den Namen des aktuell angemeldeten Snowflake-Benutzers zurück. Diese secure view gibt nur Zeilen aus der ORDERS-Tabelle zurück, bei denen die USER_ID-Spalte dem aktuellen Benutzer entspricht.
Benutzerattribute in Looker
Looker ermöglicht es Ihnen, Benutzerattribute zu definieren, bei denen es sich um Schlüssel-Wert-Paare handelt, die Benutzerkonten zugeordnet sind. Diese Attribute können in Abfragen übernommen werden, um Daten dynamisch basierend auf dem aktuellen Benutzer zu filtern.
So konfigurieren Sie ein Benutzerattribut in Looker:
- Gehen Sie zu Admin > Benutzerattribute
- Definieren Sie ein neues Attribut, z.B. “snowflake_user”
- Legen Sie den Wert dieses Attributs für jeden Looker-Benutzer fest, um mit deren Snowflake-Benutzernamen übereinzustimmen.
Nun können Sie in Ihrem LookML-Modell dieses Benutzerattribut in den SQL-Definitionen Ihrer Ansicht verwenden:
view: orders { sql_table_name: MYDB.PUBLIC.ORDERS ;; dimension: user_id { type: number sql: ${TABLE}.USER_ID ;; } dimension: order_id { primary_key: yes type: number sql: ${TABLE}.ORDER_ID ;; } dimension: total_amount { type: number sql: ${TABLE}.TOTAL_AMOUNT ;; } dimension: order_date { type: date sql: ${TABLE}.ORDER_DATE ;; } measure: count { type: count } measure: total_sales { type: sum sql: ${total_amount} ;; } # Hier fügen wir einen Filter basierend auf dem "snowflake_user" Benutzerattribut hinzu filter: user_filter { type: string sql: {% condition user_id %} ${user_id} {% endcondition %} ;; } }
Mit dieser Konfiguration fügt Looker automatisch eine WHERE-Klausel zu allen Abfragen gegen die ORDERS-Ansicht hinzu, um die Ergebnisse basierend auf dem aktuellen Wert des “snowflake_user” Attributs zu filtern. Das Endergebnis ist, dass Benutzer nur ihre eigenen Bestelldaten sehen können, wenn sie diese Daten in Looker erkunden.
Indem Sie secure views in Snowflake mit Benutzerattributen in Looker kombinieren, können Sie granulare, dynamische Row-Level-Sicherheitsrichtlinien für Ihre Daten implementieren. Dies ist eine leistungsstarke Möglichkeit, die Einhaltung von Datenschutzbestimmungen sicherzustellen und sensible Informationen zu schützen.
Fazit
Die Integration von Snowflake und Looker ermöglicht es Organisationen, eine moderne, skalierbare Analyseplattform aufzubauen. Durch die Nutzung von Snowflakes leistungsfähigen Data-Warehousing-Funktionen in Verbindung mit Lookers flexiblem Datenmodellierungs- und Explorationslayer können Datenteams sicheren, selbstbedienten Zugriff auf Daten in der gesamten Organisation bereitstellen.
In diesem Artikel haben wir die wichtigsten Aspekte der Verwendung von Snowflake Looker zusammen behandelt:
- Einrichten der Snowflake-Verbindung in Looker
- Modellierung von Snowflake-Daten mit Lookers LookML
- Verwaltung von Benutzern und Rollen in Snowflake
- Implementierung von Row-Level-Sicherheit mit secure views und Benutzerattributen
Die bereitgestellten Beispiele dienen als Referenz für die Implementierung dieser Konzepte in Ihrer eigenen Snowflake Looker-Umgebung. Durch die richtige Konfiguration von Rollen, Privilegien und Row-Level-Sicherheit können Sie sicherstellen, dass Daten sicher und angemessen in der gesamten Organisation genutzt werden.
Es gibt viele weitere fortgeschrittene Fähigkeiten der Snowflake Looker-Integration, wie die Verwendung von Lookers PDTs (persistente abgeleitete Tabellen), die Nutzung von Snowflakes Zero-Copy-Klonen für Entwicklungs-Workflows und die Optimierung der Abfrageleistung. Ich ermutige Sie, diese Themen weiter zu erforschen, während Sie Ihren Analysestack aufbauen.
Die Kombination von Snowflake und Looker ist eine leistungsstarke Grundlage für jede datengetriebene Organisation. Durch die Befolgung von Best Practices in den Bereichen Datenmodellierung, Sicherheit und Governance können Sie Ihr Team in die Lage versetzen, schnell und sicher wertvolle Erkenntnisse zu gewinnen.