DataSunrise erreicht AWS DevOps Kompetenz Status in AWS DevSecOps und Überwachung, Protokollierung, Performance

Integration von Snowflake mit Looker

Integration von Snowflake mit Looker

Snowflake Looker Inhaltsbild

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:

  1. Gehen Sie in Looker zu Admin > Verbindungen und klicken Sie auf “Neue Verbindung”.
  2. Wählen Sie “Snowflake” als Dialekt aus.
  3. Geben Sie Ihre Snowflake-Konto-URL, den Benutzernamen und das Passwort ein.
  4. Wählen Sie die Standarddatenbank, das Schema und das Warehouse aus.
  5. 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.

Snowflake Looker Architektur

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:

  1. Gehen Sie zu Admin > Gruppen in Looker
  2. Erstellen Sie eine neue Gruppe oder bearbeiten Sie eine bestehende
  3. Wählen Sie unter Rollen die Snowflake-Verbindung und die zuzuweisende Snowflake-Rolle aus
  4. 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:

  1. Gehen Sie zu Admin > Benutzerattribute
  2. Definieren Sie ein neues Attribut, z.B. “snowflake_user”
  3. 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.

Nächste

Snowflakes Datenmanagement-Funktionen

Snowflakes Datenmanagement-Funktionen

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Allgemeine Informationen
Vertrieb
Kundenservice und technischer Support
Partnerschafts- und Allianz-Anfragen
Allgemeine Informationen:
info@datasunrise.com
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
partner@datasunrise.com