Ciao a tutti!
Rieccoci al nostro appuntamento settimanale della rubrica su Snowflake 🙂
Continuiamo con la panoramica sul Summit Annuale di Snowflake che si è tenuto lo scorso giugno. Alcuni dei nostri consulenti vi hanno partecipato e ci hanno raccontato che cosa è successo.
Oggi vogliamo parlarvi di alcune best practices per utilizzare Snowflake e Tableau congiuntamente, in modo ottimale.
Snowflake e Tableau sono due piattaforme innovative che affrontano la sfida di democratizzare l’analisi dei dati in un mondo in cui il loro volume è in crescita costante. Snowflake è una piattaforma quasi illimitata di data warehousing basata sul cloud; Tableau è uno strumento intuitivo di analisi self-service dei dati.
Utilizzarli insieme, ma soprattutto utilizzarli insieme in maniera efficace, è possibile. Alan Eldridge di Snowflake e Jason Oakes di Tableau ce lo spiegano durante il summit 2021 di Snowflake in un intervento chiamato “Best Practices for Using Snowflake with Tableau”.
Si potrebbe dire che Snowflake e Tableau sono concepiti affinché l’uno tiri fuori il meglio dell’altro. Sono molte le funzioni che condividono e che sono pensate al di fuori degli schemi dei classici RDBMS o BI software.
Alcune caratteristiche che accomunano entrambi sono:
- La gestione di tabelle/DBs esterni
- La condivisione dei dati
- Lo schema di data warehouse
- L’uso di SQL
- L’utilizzo di dati semi-strutturati
Inoltre, con l’avanzare degli aggiornamenti in Tableau, Snowflake si è adattato immettendo specifiche azioni che richiamano la tipologia di dati riprodotti (es. la funzione Geography in Snowflake che riproduce le mappe realizzate con Tableau).
SQL in Tableau e in Snowflake: una marcia in più
Per utilizzare Snowflake e Tableau congiuntamente è bene tenere conto di alcuni accorgimenti e suggerimenti per fare in modo che tutto funzioni al meglio.
Il primo consiglio che ci viene dato è: “conoscere la pipeline grafica”.
Infatti, quando creiamo una visualizzazione in Tableau tante cose accadono sul lato back-end. I dati vengono trasferiti da Snowflake per essere poi trasformati, analizzati ed infine rappresentati tramite una visualizzazione grafica in Tableau. Pertanto, è importante sapere ed essere in grado di capire cosa succede tra un passaggio e l’altro in modo tale da avere più controllo sull’intero processo.
Ci sono poi alcune funzionalità tipiche di Snowflake che non sono automaticamente supportate da Tableau, ma non è questo il motivo per non sfruttarle. Farlo infatti è semplice, basta utilizzare SQL!
Vediamone alcune:
- Il supporto per i dati semi-strutturati di Snowflake è molto ricco e flessibile in quanto può leggere più formati, può unirli ad altri set di dati e funziona in modo simile ai dati strutturati. E’ possibile sfruttare a pieno questa potenzialità anche in Tableau utilizzando un Custom SQL.
- Alcune funzioni specifiche definite in Snowflake, come ad esempio le funzioni Non-ANSI aggregate o le funzioni user-defined, possono essere importate in Tableau utilizzando delle Raw SQL functions.
- Risultano molto utili, soprattutto in caso di data sharing, le Table Functions e il Time Travel, anch’esse accessibili tramite Initial SQL e Custom SQL.
Dati semi-strutturati in Snowflake e in Tableau
Come accennato sopra, un punto a favore di Snowflake è la sua capacità di elaborazione dei dati semi-strutturati. In particolare, Snowflake può:
- Caricare diversi formati per questa tipologia di dati (JSON, XML, Parquet, Avro, ORC)
- Unire diversi data set semi-strutturati
- Raggiungere livelli di performance molto simili a quelli ottenuti con dati strutturati
Al contrario, Tableau ha in tal senso alcune limitazioni:
- Non riconosce alcuni formati (es. VARIANT).
- Necessità di estrarre i data set per accelerare la performance e lavorare al meglio, ma ciò potrebbe essere un problema, quando si lavora con ingenti quantità di dati.
Ecco perché utilizzare Snowflake può veramente migliorare l’esperienza dell’utente di Tableau, soprattutto quando la tipologia, la dimensione e il numero dei dataset potrebbero essere proibitive.
Sfruttare l’elasticità di Snowflake in Tableau
La funzione di Live Query permette di far leva sulla scalabilità e l’elasticità di Snowflake – laddove Tableau Server rimane invece abbastanza limitato.
Snowflake è in grado di fornire ottimi risultati in termini di performance grazie alla sua elevata scalabilità ed elasticità. Per questo motivo, può risultare conveniente adottare una connessione live anziché un approccio di estrazione dei dati su Tableau, che potrebbe essere laborioso in caso di grandi volumi.
Come fa Snowflake a fornire tanta elasticità e scalabilità?
Snowflake dispone di due opzioni per aumentare o diminuire la forza computazionale utilizzata dai warehouses.
1. SCALE UP/DOWN
Aumenta o diminuisce il numero di servers all’interno di un unico cluster. Questo tipo di scaling permette di lavorare con le queries più complesse. Deve essere eseguito manualmente e consente di cambiare la dimensione di un warehouse.
2. SCALE OUT/IN (Multi-Clustering)
Questa opzione è disponibile dalla Enterprise Edition in poi.
È anche detta Multi-Clustering perché consiste nel potenziare il warehouse aggiungendo dei clusters aggiuntivi. Grazie all’opzione di Auto-Scale, è possibile gestire dinamicamente e in modo ottimale il lavoro del warehouse. Snowflake, infatti, aggiungerà clusters al WH se è in sovraccarico e le queries si stanno rallentando, e li rimuoverà quando il carico di lavoro diminuisce.
Best practices per la performance
I due esperti rispondono anche alla domanda “Come far andare le cose più veloci?”. Ci vengono forniti dei preziosi suggerimenti su come velocizzare la dashboard, inevitabilmente collegata al cloud:
- Non avere troppe aree basate sui dati poiché ognuna di queste corrisponde ad almeno una query.
- Preferire la connessione live all’estrazione di dati.
- Usare solo i dati di cui si ha veramente bisogno o che si possono visualizzare.
- Minimizzare il numero di filtri, in quanto ogni volta che un filtro viene utilizzato svariate queries sono inviate al database.
- Se possibile, prediligere le relationships alle join perché più efficienti.
- Usare una dimensione fissa per il workbook in modo da limitare la memorizzazione nella cache.
- Utilizzare il più possibile le funzionalità già presenti in Tableau.
- Adoperare le clustered tables in quanto più efficienti.
- In caso di calcoli complessi, proiezioni, aggregazioni e queries su tabelle esterne usare le materialized view.
Diagnostica
Infine, non sottovalutare le misure diagnostiche! Sia dal lato di Snowflake che di Tableau, disponiamo di alcuni fondamentali strumenti di diagnostica che ci permettono di monitorare le performances.
- Tableau offre il Performance Recorder, uno strumento di diagnostica in grado di mostrare un riepilogo delle prestazioni. È possibile trovarlo andando su Guida e quindi Impostazioni. Una volta attivato, rimarrà invisibile mentre lavorate alla vostra dashboard. Quando infine vorrete delle informazioni sulle prestazioni sarà sufficiente fare lo stesso percorso e fermare il processo. In automatico, uscirà una schermata con un resoconto della diagnostica sulle operazioni eseguite in quel lasso temporale registrato.
- Snowflake dispone di tre diversi strumenti che consentono di avere lo stesso tipo di informazioni ma dal punto di vista del database. In particolare, è possibile consultare la sezione History, che riporta tutte le queries eseguite negli ultimi 14 giorni. Dispone inoltre dell’Information Schema e dell’Account Usage DB, che può essere consultato anche da Tableau.
Speriamo che questo articolo vi abbia incuriosito e, soprattutto, che vi abbia fornito una panoramica chiara sulle best practices per utilizzare Snowflake e Tableau in maniera ottimale.
Per ulteriori domande su Snowflake vi invitiamo a contattarci all’indirizzo: info@theinformationlab.it
Vi diamo appuntamento alla prossima settimana con un articolo sulle ultime novità di Snowflake in tema di sicurezza! ❄️