Snowflake Looker
Einführung
Snowflake, eine cloud-basierte Data-Warehousing-Plattform, und Looker, ein modernes Business-Intelligence- und Datenvisualisierungstool, gehören heute zu den beliebtesten Tools für Datenanalysen. Die Integration von Snowflake und Looker ermöglicht es Organisationen, die Leistungsfähigkeit von Snowflakes skalierbarem und flexiblem Datenspeicher mit Lookers intuitiven Datenexplorations- und Dashboarding-Funktionen zu kombinieren.
In diesem Artikel behandeln wir die Grundlagen der Nutzung von Snowflake mit Looker, einschließlich der Einrichtung der Integration, der Verwaltung von Benutzern und Rollen, der Implementierung von Row-Level-Sicherheit, der Verwendung von Lookers LookML-Modellierungsschicht mit Snowflake und der Anwendung von Best Practices der Daten-Governance. Am Ende haben Sie eine solide Grundlage für den Aufbau eines modernen Analysestacks mit Snowflake und Looker.
Einrichtung der Snowflake Looker-Integration
Der erste Schritt ist, Ihr Snowflake-Konto mit Looker zu verbinden.
So geht’s:
- Gehen Sie in Looker zu Admin > Connections und klicken Sie auf “New Connection”.
- Wählen Sie “Snowflake” als Dialekt aus.
- Geben Sie die URL Ihres Snowflake-Kontos, Benutzernamen und Passwort ein.
- Wählen Sie die zu verwendende Standard-Datenbank, das Schema und das Warehouse aus.
- Testen Sie die Verbindung und speichern Sie sie.
Beispielsweise:
Connection Name: My Snowflake Connection Dialect: snowflake Host: myaccount.snowflakecomputing.com Database: MYDB Schema: PUBLIC Warehouse: MYWH
Sobald die Verbindung eingerichtet ist, kann Looker Daten abfragen, die in Ihrem Snowflake-Konto gespeichert sind. Der nächste Schritt ist, ein LookML-Projekt zu erstellen, um diese Daten zu modellieren und zu erkunden.
Modellieren von Snowflake-Daten in Looker mit LookML
LookML ist Lookers Modellierungssprache zur Beschreibung des Schemas Ihrer Datenbank auf eine versionskontrollierbare Weise. Anstatt SQL-Abfragen zu schreiben, definieren Sie Ihr Datenmodell in LookML und lassen Looker für Sie optimierte SQL-Abfragen generieren. Dies fördert die Wiederverwendbarkeit und Konsistenz im Daten-Team.
Hier ist ein Beispiel für eine einfache LookML-Ansicht für eine Benutzer-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 ist der USERS-Tabelle in Snowflake zugeordnet und definiert Dimensionen und Maße, die in Lookers Explore-Bereich zur Erstellung von Diagrammen und Dashboards verwendet werden können.
Einige wichtige LookML-Konzepte, die beim Modellieren von Snowflake-Looker-Daten zu verstehen sind:
- Ansichten (Views) sind Tabellen oder abgeleitete Tabellen zugeordnet
- Dimensionen sind Spalten zugeordnet und können für Gruppierung und Filterung verwendet werden
- Maße sind Aggregationen wie COUNT, SUM, AVG
- Sie können Beziehungen zwischen Ansichten definieren, die Looker automatisch zum Verknüpfen von Tabellen verwendet
Looker generiert automatisch den optimalen SQL-Dialekt für die verbundene Snowflake-Datenbank. Dies abstrahiert die Komplexitäten der zugrunde liegenden Datenbank und ermöglicht es Analysten, sich darauf zu konzentrieren, Fragen zu stellen und Erkenntnisse zu gewinnen.
Verwaltung von Rollen und Benutzern in Snowflake und Looker
Beim Konfigurieren von Snowflake-Looker für Ihre Organisation ist es wichtig, Rollen und Benutzer richtig zu verwalten, um sicherzustellen, dass der Datenzugriff angemessen eingeschränkt ist. Snowflake bietet umfangreiche rollenbasierte Zugriffskontrolle, und Looker ermöglicht es, Snowflake-Rollen und -Berechtigungen Looker-Gruppen zuzuweisen.
Snowflake-Rollen
In Snowflake sind Rollen die Grundlage für Berechtigungen und Zugriffskontrollen. Einige wichtige Konzepte:
- Rollen können Berechtigungen 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 Best Practice, spezifische Rollen für die Bedürfnisse Ihrer Organisation zu erstellen
Beispielsweise, 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 nur Lesezugriff auf Daten in MYDB für Analysezwecke benötigen.
Looker-Rollen und -Gruppen
In Looker weisen Sie Rollen und Berechtigungen Gruppen zu, die Sammlungen von Looker-Benutzern sind. Snowflake-Rollen können Looker-Gruppen zugewiesen werden, um Snowflakes Zugriffskontrolle in die Looker-Schicht zu erweitern.
Um eine Snowflake-Rolle einer Looker-Gruppe zuzuordnen:
- Gehen Sie zu Admin > Groups 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
- Benutzer, die dieser Looker-Gruppe hinzugefügt werden, haben nun die Privilegien der zugewiesenen Snowflake-Rolle, wenn sie Daten über Looker erkunden
Beispielsweise könnten Sie eine Looker-Gruppe namens “Business Analysts” erstellen, dieser die zuvor erstellte ANALYST-Snowflake-Rolle zuweisen und alle Ihre Analysten-Looker-Benutzer dieser Gruppe hinzufügen. Sie werden auf schreibgeschützte Abfragen der MYDB-Datenbank beschränkt.
Die Kombination aus Snowflake-Rollen und Looker-Gruppen bietet eine leistungsstarke Möglichkeit, den Datenzugriff in Ihrem Snowflake-Looker-Analysestapel zu verwalten. Durch einen strategischen Ansatz bei der Konfiguration dieser Berechtigungen können Sie sicherstellen, dass die richtigen Personen auf die richtigen Daten zugreifen.
Implementierung von Row-Level-Sicherheit mit Snowflake und Looker
Row-Level-Sicherheit beschränkt den Datenzugriff auf der individuellen Zeilenebene basierend auf Benutzerattributen. Dies ist wichtig, um sicherzustellen, dass Benutzer nur Daten sehen, zu denen 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 andere Datenbankobjekte verweisen und Row-Level-Sicherheitspolitiken mithilfe von SQL-Prädikaten anwenden.
Beispielsweise, angenommen, wir haben eine ORDERS-Tabelle und wir möchten, dass Benutzer nur ihre eigenen Bestellungen sehen können. Wir könnten eine Secure View wie folgt erstellen:
CREATE SECURE VIEW MY_ORDERS AS SELECT * FROM ORDERS WHERE USER_ID = CURRENT_USER();
Die Funktion CURRENT_USER() gibt den Namen des derzeit in Snowflake angemeldeten Benutzers zurück. Diese Secure View wird nur Zeilen aus der ORDERS-Tabelle zurückgeben, bei denen die Spalte USER_ID mit dem aktuellen Benutzer übereinstimmt.
Benutzerattribute in Looker
Looker ermöglicht das Definieren von Benutzerattributen, die Schlüssel-Wert-Paare sind, die Benutzernkonten zugeordnet sind. Diese Attribute können in Abfragen weitergegeben werden, um Daten basierend auf dem aktuellen Benutzer dynamisch zu filtern.
Um ein Benutzerattribut in Looker zu konfigurieren:
- Gehen Sie zu Admin > User Attributes
- Definieren Sie ein neues Attribut, z.B. “snowflake_user”
- Legen Sie den Wert dieses Attributs für jeden Looker-Benutzer auf deren Snowflake-Benutzernamen fest.
Nun können Sie in Ihrem LookML-Modell dieses Benutzerattribut in dem SQL für Ihre Ansicht referenzieren:
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 wird Looker automatisch eine WHERE-Klausel zu Abfragen gegen die ORDERS-Ansicht hinzufügen, um die Ergebnisse basierend auf dem Wert des “snowflake_user”-Attributs des aktuellen Benutzers zu filtern. Dadurch können Benutzer beim Erkunden dieser Daten in Looker nur ihre eigenen Bestelldaten sehen.
Durch die Kombination von Secure Views in Snowflake mit Benutzerattributen in Looker können Sie granulare, dynamische Row-Level-Sicherheitspolitiken auf Ihre Daten anwenden. Dies ist ein leistungsstarker Weg, um die Einhaltung von Datenschutzbestimmungen zu gewährleisten und sensible Informationen zu schützen.
Schlussfolgerung
Die Integration von Snowflake und Looker ermöglicht es Organisationen, eine moderne, skalierbare Analyselösung zu entwickeln. Durch die Nutzung der leistungsstarken Data-Warehousing-Funktionen von Snowflake und der flexiblen Datenmodellierung und -explorationsschicht von Looker können Datenteams sicheren, selbstbedienten Zugang zu Daten innerhalb der Organisation bieten.
In diesem Artikel haben wir die wichtigsten Aspekte der gemeinsamen Nutzung von Snowflake und Looker behandelt:
- Einrichtung 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 korrekte Konfiguration von Rollen, Berechtigungen und Row-Level-Sicherheit können Sie sicherstellen, dass Daten sicher und angemessen innerhalb der Organisation genutzt werden.
Es gibt viele weitere fortgeschrittene Fähigkeiten der Snowflake-Looker-Integration, wie die Nutzung von Lookers PDTs (Persistent Derived Tables), die Nutzung von Snowflakes Zero-Copy-Cloning für Entwicklungs-Workflows und die Optimierung der Abfrageperformance. Ich ermutige Sie, diese Themen weiter zu erforschen, während Sie Ihren Analyse-Stack aufbauen.
Die Kombination aus Snowflake und Looker ist ein leistungsstarkes Fundament für jede datengesteuerte Organisation. Durch die Einhaltung von Best Practices in Bezug auf Datenmodellierung, Sicherheit und Governance können Sie Ihr Team befähigen, schnell und sicher wertvolle Einblicke zu gewinnen.