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 dei più popolari strumenti per l’analitica dei dati oggi. Integrare Snowflake e Looker permette alle organizzazioni di sfruttare la potenza di Snowflake per l’archiviazione dei dati scalabile e flessibile con le capacità di esplorazione e dashboarding intuitive di Looker.
In questo articolo, copriremo le basi dell’utilizzo di Snowflake con Looker, inclusi 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 governance dei dati. Alla fine, avrà una solida base per costruire uno stack di analisi moderno con Snowflake e Looker.
Configurazione dell’Integrazione Snowflake Looker
Il primo passo è collegare il suo account Snowflake a Looker.
Ecco come:
- In Looker, andare su Admin > Connections e cliccare “New Connection”.
- Selezionare “Snowflake” come dialetto.
- Inserire l’URL del suo account Snowflake, username e password.
- Selezionare il database di default, lo schema e il warehouse da utilizzare.
- Testare la connessione e salvare.
Per esempio:
Connection Name: My Snowflake Connection Dialect: snowflake Host: myaccount.snowflakecomputing.com Database: MYDB Schema: PUBLIC Warehouse: MYWH
Una volta configurata la connessione, Looker potrà ora interrogare i dati archiviati nel suo 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 suo database in modo versionabile. Invece di scrivere query SQL, lei definisce il suo modello di dati in LookML e lascia che Looker generi SQL ottimizzati per lei. Questo promuove riutilizzabilità e coerenza all’interno del suo 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 si modella i dati 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
- Lei può 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 a cui è connesso. Questo astrae le complessità del database sottostante e permette agli analisti di concentrarsi sul porre domande e ottenere intuizioni.
Gestione dei Ruoli e degli Utenti in Snowflake e Looker
Quando si configura Snowflake Looker per la sua organizzazione, è cruciale gestire correttamente i ruoli e gli utenti per assicurarsi che l’accesso ai dati sia adeguatamente ristretto. Snowflake offre un ampio controllo degli accessi basato su ruoli (RBAC), e Looker le 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 degli accessi. Alcuni concetti chiave:
- I ruoli possono essere assegnati a privilegi su specifici database, schemi, tabelle e viste
- I ruoli possono essere assegnati a utenti e altri ruoli
- Snowflake ha diversi ruoli definiti dal sistema come ACCOUNTADMIN, SYSADMIN, SECURITYADMIN
- È una buona pratica creare ruoli personalizzati specifici per le esigenze della sua 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, lei assegna ruoli e privilegi ai gruppi, che sono collezioni di utenti Looker. I ruoli di Snowflake possono essere mappati ai gruppi di Looker per estendere il controllo degli accessi di Snowflake nel livello Looker.
Per mappare un ruolo di Snowflake a un gruppo di Looker:
- Andare su Admin > Groups in Looker
- Creare un nuovo gruppo o modificare uno esistente
- Sotto Ruoli, selezionare la connessione Snowflake e scegliere il ruolo Snowflake da assegnare
- Qualsiasi utente aggiunto a questo gruppo di Looker avrà ora i privilegi del ruolo Snowflake assegnato quando esplorerà i dati tramite Looker
Per esempio, lei potrebbe creare un gruppo di Looker chiamato “Business Analysts”, assegnargli il ruolo ANALYST di Snowflake dall’esempio precedente, e aggiungere tutti i suoi utenti Looker analisti a questo gruppo. Saranno limitati alle query in sola lettura sul database MYDB.
La combinazione di ruoli di Snowflake e gruppi di Looker offre un potente modo per gestire l’accesso ai dati attraverso il suo stack analitico Snowflake Looker. Prendendo un approccio strategico nella configurazione di questi permessi, lei può assicurarsi 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 restringe l’accesso ai dati al livello della singola riga basata sugli attributi degli utenti. Questo è importante per assicurarsi che gli utenti vedano solo i dati che sono autorizzati ad accedere. Snowflake Looker supporta la sicurezza a livello di riga sfruttando Secure Views in Snowflake e User Attributes in Looker.
Secure Views in Snowflake
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 vogliamo che gli utenti possano vedere solo i propri ordini. Potremmo creare una secure view 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 loggato in Snowflake. Questa secure view restituirà solo le righe dalla tabella ORDERS in cui la colonna USER_ID corrisponde all’utente corrente.
User Attributes in Looker
Looker le permette di definire User Attributes, che sono coppie chiave-valore associate agli account utente. Questi attributi possono essere passati nelle query per filtrare dinamicamente i dati in base all’utente corrente.
Per configurare un User Attribute in Looker:
- Andare su Admin > User Attributes
- Definire un nuovo attributo, e.g. “snowflake_user”
- Impostare il valore di questo attributo per ogni utente Looker in modo che corrisponda al loro username in Snowflake.
Ora nel suo modello LookML, può fare riferimento a questo attributo utente nel SQL per la sua 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} ;; } filter: user_filter { type: string sql: {% condition user_id %} ${user_id} {% endcondition %} ;; } }
Con questa configurazione, Looker aggiungerà automaticamente una clausola WHERE a qualsiasi query contro la vista ORDERS per filtrare i risultati in base al valore dell’attributo utente “snowflake_user” corrente. Il risultato finale è che gli utenti possono vedere solo i propri dati di ordine quando esploreranno questi dati in Looker.
Combinando le secure views in Snowflake con gli attributi utente in Looker, lei può implementare politiche di sicurezza a livello di riga granulari e dinamiche sui suoi dati. Questo è un modo potente per assicurare la conformità con le normative sulla privacy dei dati e proteggere le informazioni sensibili.
Conclusione
Integrare Snowflake e Looker permette alle organizzazioni di costruire una piattaforma analitica moderna e scalabile. Sfruttando le potenti capacità di data warehousing di Snowflake con il livello di modellazione ed esplorazione dei dati flessibile di Looker, i team di dati possono fornire accesso self-service sicuro ai dati in tutta l’organizzazione.
In questo articolo, abbiamo coperto gli aspetti chiave dell’utilizzo di Snowflake Looker insieme:
- Configurazione della connessione Snowflake in Looker
- Modellazione dei dati Snowflake utilizzando LookML di Looker
- Gestione degli utenti e dei ruoli attraverso Snowflake
- Implementazione della sicurezza a livello di riga con secure views e user attributes
Gli esempi forniti servono come riferimento per l’implementazione di questi concetti nel suo ambiente Snowflake Looker. Configurando correttamente ruoli, privilegi e sicurezza a livello di riga, lei può assicurarsi 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 delle PDT (persistent derived tables) di Looker, sfruttando la clonazione zero-copy di Snowflake per i flussi di lavoro di sviluppo e ottimizzando le prestazioni delle query. La incoraggio ad esplorare ulteriormente questi argomenti mentre costruirà il suo stack analitico.
La combinazione di Snowflake e Looker è una base potente per qualsiasi organizzazione basata sui dati. Seguendo le migliori pratiche di modellazione dei dati, sicurezza e governance, lei può consentire al suo team di ottenere intuizioni preziose rapidamente e in modo sicuro.