
Integrazione di Snowflake con 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:
- In Looker, vai a Admin > Connessioni e clicca su “Nuova Connessione”.
- Seleziona “Snowflake” come dialetto.
- Inserisci l’URL del tuo account Snowflake, username e password.
- Seleziona il database, lo schema e il warehouse predefiniti da utilizzare.
- 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.

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:
- Vai a Admin > Gruppi in Looker
- Crea un nuovo gruppo o modifica uno esistente
- Sotto ruoli, seleziona la connessione Snowflake e scegli il ruolo di Snowflake da assegnare
- 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:
- Vai a Admin > Attributi Utente
- Definisci un nuovo attributo, ad esempio “utente_snowflake”
- 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.