DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Integrazione di Snowflake con Looker

Integrazione di Snowflake con Looker

Immagine contenuto Snowflake Looker

Introduzione

Snowflake, una piattaforma di data warehousing basata su Cloud, e Looker, uno strumento moderno di business intelligence e visualizzazione dei dati, sono due degli strumenti più popolari per l’analisi dei dati oggi. Integrare Snowflake e Looker consente alle organizzazioni di sfruttare la potenza dell’archiviazione dei dati scalabile e flessibile di Snowflake con le capacità intuitive di esplorazione dei dati e creazione di dashboard di Looker.

In questo articolo, tratteremo le basi dell’utilizzo di Snowflake con Looker, compresi come configurare l’integrazione, gestire utenti e ruoli, implementare la sicurezza a livello di riga, utilizzare il livello di modellazione LookML di Looker con Snowflake e applicare le migliori pratiche di data governance. Alla fine, avrai una solida base per costruire uno stack di analisi moderno con Snowflake e Looker.

Configurare l’Integrazione Snowflake Looker

Il primo passo è collegare il tuo account Snowflake a Looker.

Ecco come:

  1. In Looker, vai a Admin > Connessioni e clicca su “Nuova Connessione”.
  2. Seleziona “Snowflake” come dialetto.
  3. Inserisci l’URL del tuo account Snowflake, username e password.
  4. Seleziona il database, lo schema e il warehouse predefiniti da utilizzare.
  5. Testa la connessione e salva.

Per esempio:


Nome Connessione: La Mia Connessione Snowflake
Dialect: snowflake
Host: myaccount.snowflakecomputing.com
Database: MYDB
Schema: PUBLIC
Warehouse: MYWH

Una volta configurata la connessione, Looker può ora eseguire query sui dati memorizzati nel tuo account Snowflake. Il passo successivo è creare un progetto LookML per modellare ed esplorare questi dati.

Modellazione dei Dati Snowflake in Looker Utilizzando LookML

LookML è il linguaggio di modellazione di Looker per descrivere lo schema del tuo database in un modo controllabile per versione. Invece di scrivere query SQL, definisci il tuo modello dati in LookML e lasci che Looker generi SQL ottimizzato per te. Questo promuove la riutilizzabilità e la coerenza all’interno del tuo team di dati.

Architettura Snowflake Looker

Ecco un esempio di una semplice vista LookML per una tabella utenti 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
  }
}

Questa vista mappa alla tabella USERS in Snowflake e definisce dimensioni e misure che possono essere utilizzate nella sezione Esplora di Looker per costruire grafici e dashboard.

Alcuni concetti chiave di LookML da comprendere quando modelli i dati di Snowflake in Looker:

  • Le viste mappano a tabelle o tabelle derivate
  • Le dimensioni mappano a colonne e possono essere utilizzate per raggruppare e filtrare
  • Le misure sono aggregazioni come COUNT, SUM, AVG
  • Puoi definire relazioni tra viste che Looker utilizzerà per unire automaticamente le tabelle

Looker gestisce automaticamente la generazione del dialetto SQL ottimale per il database Snowflake al quale è connesso. Ciò astrae le complessità del database sottostante e permette agli analisti di concentrarsi nel porre domande e ottenere informazioni.

Gestione dei Ruoli e degli Utenti in Snowflake e Looker

Quando configuri Snowflake e Looker per la tua organizzazione, è fondamentale gestire correttamente ruoli e utenti per garantire che l’accesso ai dati sia limitato in modo appropriato. Snowflake fornisce un ampio controllo di accesso basato sui ruoli, e Looker ti permette di assegnare ruoli e privilegi di Snowflake ai gruppi di Looker.

Ruoli in Snowflake

In Snowflake, i ruoli sono la base per i privilegi e il controllo di accesso. Alcuni concetti chiave:

  • I ruoli possono essere assegnati a privilegi specifici su database, schemi, tabelle e viste
  • I ruoli possono essere assegnati a utenti e ad altri ruoli
  • Snowflake ha diversi ruoli definiti dal sistema come ACCOUNTADMIN, SYSADMIN, SECURITYADMIN
  • È buona pratica creare ruoli personalizzati specifici per le esigenze della tua organizzazione

Per esempio, per creare un ruolo ANALYST che può leggere i dati nel database MYDB:


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;

Questo ruolo può ora essere assegnato agli utenti o ai gruppi di Snowflake che necessitano di accesso in sola lettura ai dati in MYDB per scopi di analisi.

Ruoli e Gruppi in Looker

In Looker, assegni ruoli e privilegi ai gruppi, che sono raccolte di utenti Looker. I ruoli di Snowflake possono essere mappati ai gruppi di Looker per estendere il controllo di accesso di Snowflake allo strato Looker.

Per mappare un ruolo Snowflake a un gruppo Looker:

  1. Vai a Admin > Gruppi in Looker
  2. Crea un nuovo gruppo o modifica uno esistente
  3. Sotto ruoli, seleziona la connessione Snowflake e scegli il ruolo di Snowflake da assegnare
  4. Qualsiasi utente aggiunto a questo gruppo Looker avrà ora i privilegi del ruolo Snowflake assegnato esplorando i dati tramite Looker

Per esempio, potresti creare un gruppo Looker chiamato “Business Analysts”, assegnargli il ruolo ANALYST di Snowflake di cui sopra e aggiungere tutti i tuoi utenti Looker analisti a questo gruppo. Essi saranno limitati a query in sola lettura nel database MYDB.

La combinazione di ruoli di Snowflake e gruppi di Looker fornisce un modo potente per gestire l’accesso ai dati nel tuo stack di analisi Snowflake Looker. Adottando un approccio strategico alla configurazione di questi permessi, puoi garantire che le persone giuste abbiano accesso ai dati giusti.

Implementazione della Sicurezza a Livello di Riga con Snowflake e Looker

La sicurezza a livello di riga limita l’accesso ai dati a livello di singola riga in base agli attributi dell’utente. Questo è importante per garantire che gli utenti vedano solo i dati che sono autorizzati a vedere. Snowflake e Looker supportano la sicurezza a livello di riga utilizzando le Secure Views di Snowflake e gli attributi utente di Looker.

Secure Views in Snowflake

Le Secure Views in Snowflake sono viste che fanno riferimento ad altri oggetti del database e applicano politiche di sicurezza a livello di riga utilizzando predicati SQL.

Per esempio, supponiamo di avere una tabella ORDERS e di voler che gli utenti possano vedere solo i propri ordini. Potremmo creare una vista sicura come:


CREATE SECURE VIEW MY_ORDERS AS
SELECT * 
FROM ORDERS
WHERE USER_ID = CURRENT_USER();

La funzione CURRENT_USER() restituisce il nome dell’utente attualmente connesso a Snowflake. Questa vista sicura restituirà solo le righe della tabella ORDERS dove la colonna USER_ID corrisponde all’utente attuale.

Attributi Utente in Looker

Looker ti permette di definire gli Attributi Utente che sono coppie chiave-valore associati agli account utente. Questi attributi possono essere passati nelle query per filtrare dinamicamente i dati in base all’utente attivo.

Per configurare un Attributo Utente in Looker:

  1. Vai a Admin > Attributi Utente
  2. Definisci un nuovo attributo, ad esempio “utente_snowflake”
  3. Imposta il valore di questo attributo per ogni utente Looker in modo che corrisponda al loro nome utente di Snowflake.

Ora nel tuo modello LookML, puoi fare riferimento a questo attributo utente nell’SQL per la tua vista:


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} ;;
  }

  # Qui aggiungiamo un filtro basato sull'attributo utente "utente_snowflake"
  filter: user_filter {
    type: string
    sql: {% condition user_id %} ${user_id} {% endcondition %} ;;
  }
}

Con questa configurazione, Looker aggiungerà automaticamente una clausola WHERE a qualsiasi query sulla vista ORDERS per filtrare i risultati in base al valore dell’attributo utente “utente_snowflake” dell’utente attuale. Il risultato finale è che gli utenti possono vedere solo i propri dati degli ordini quando esplorano questi dati in Looker.

Combinando le secure views di Snowflake con gli attributi utente di Looker, puoi implementare politiche di sicurezza a livello di riga granulari e dinamiche sui tuoi dati. Questo è un modo potente per garantire la conformità con le normative sulla privacy dei dati e proteggere le informazioni sensibili.

Conclusione

Integrare Snowflake e Looker consente alle organizzazioni di creare una piattaforma di analisi moderna e scalabile. Sfruttando le potenti capacità di data warehousing di Snowflake con il livello di modellazione ed esplorazione flessibile di Looker, i team di dati possono fornire un accesso sicuro e self-service ai dati in tutta l’organizzazione.

In questo articolo, abbiamo coperto gli aspetti chiave dell’utilizzo di Snowflake e Looker insieme:

  • Configurazione della connessione Snowflake in Looker
  • Modellazione dei dati Snowflake utilizzando LookML di Looker
  • Gestione degli utenti e dei ruoli in Snowflake
  • Implementazione della sicurezza a livello di riga con secure views e attributi utente

Gli esempi forniti fungono da riferimento per l’implementazione di questi concetti nel tuo ambiente Snowflake Looker. Configurando correttamente ruoli, privilegi e sicurezza a livello di riga, puoi garantire che i dati siano accessibili in modo sicuro e appropriato in tutta l’organizzazione.

Ci sono molte altre capacità avanzate dell’integrazione Snowflake Looker, come l’uso dei PDTs (tabelle derivate persistenti) di Looker, sfruttando lo zero-copy cloning di Snowflake per i flussi di lavoro di sviluppo e ottimizzando le prestazioni delle query. Ti incoraggio ad esplorare ulteriormente questi argomenti mentre costruisci il tuo stack di analisi.

La combinazione di Snowflake e Looker rappresenta una base potente per qualsiasi organizzazione basata sui dati. Seguendo le migliori pratiche in termini di modellazione dei dati, sicurezza e governance, puoi consentire al tuo team di ottenere informazioni preziose in modo rapido e sicuro.

Successivo

Capacità di Gestione dei Dati di Snowflake

Capacità di Gestione dei Dati di Snowflake

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

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
Informazioni generali
Vendite
Servizio clienti e supporto tecnico
Richieste di collaborazione e alleanza
Informazioni generali:
info@datasunrise.com
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
partner@datasunrise.com