Nei nostri precedenti articoli abbiamo trattato l’argomento
joins , così come il
data blending e le loro relative implementazioni. Oggi ci concentreremo sulle differenze tra i due metodi ed andremo a capire insieme quando utilizzare un join e quando invece è meglio applicare il data blending e viceversa. Innanzitutto, partiamo ponendoci qualche domanda:
- Quante connessioni abbiamo all’interno del workbook?
- Come sono collegate le fonti?
- Quanti dati contengono le fonti?
- Quali viste abbiamo bisogno di creare?
Una volta risposto a queste prime domande, abbiamo un quadro quasi completo per capire quale metodo è meglio applicare. Ma prima, facciamo un breve riepilogo: come funziona una join ed in cosa consiste invece il data blending. Consideriamo le seguenti tabelle appartenenti alla stessa fonte dati, ad esempio un file Excel costituito da due fogli, uno per ogni tabella:
Tabella 1: (elenco clienti con ordini resi) Cliente ID | Nome Cliente | Età | Ordine ID | Quantità ordine |
1 | Mario | 27 | 76 | 50 |
2 | Giovanni | 55 | 77 | 20 |
3 | Luca | 18 | 78 | 30 |
4 | Luisa | 40 | 79 | 70 |
Tabella 2: (elenco ordini con stato reso o sospeso) Ordine ID | Quantità ordine | Ordine Reso/sospeso |
77 | 20 | reso |
78 | 30 | reso |
79 | 70 | reso |
79 | 15 | sospeso |
Attraverso una join stabiliamo e fissiamo una relazione tra di loro: pensiamo alla logica degli insiemi ed intersezioni ed immaginiamo le tabelle come due insiemi. Quindi supponiamo di voler creare una nuova tabella contenente solamente gli ordini con status “reso”. Andremo dunque ad utilizzare una
inner join che prende soltanto i valori comuni ad entrambe le tabelle, ed imposteremo come chiave il campo Ordine ID. La nuova tabella sarà dunque così composta:
Cliente ID | Nome Cliente | Età | Ordine ID | Quantità ordine | Ordine Reso/sospeso |
2 | Giovanni | 55 | 77 | 20 | reso |
3 | Luca | 18 | 78 | 30 | reso |
4 | Luisa | 40 | 79 | 70 | reso |
Ricordiamo che ci sono altre 3 tipologie di join:
- Nel caso della left join prendiamo tutte le righe della tabella 1 e relative informazioni associate della tabella 2; in mancanza di informazioni visualizziamo null
Cliente ID | Nome Cliente | Età | Ordine ID | Quantità ordine | Ordine Reso/sospeso |
1 | Mario | 27 | 76 | 50 | null |
2 | Giovanni | 55 | 77 | 20 | reso |
3 | Luca | 18 | 78 | 30 | reso |
4 | Luisa | 40 | 79 | 70 | reso |
- Nel caso della right join prendiamo tutte le righe della tabella 2 e relative informazioni associate della tabella 1; in mancanza di informazioni visualizziamo null
Cliente ID | Nome Cliente | Età | Ordine ID | Quantità ordine | Ordine Reso/sospeso |
2 | Giovanni | 55 | 77 | 20 | reso |
3 | Luca | 18 | 78 | 30 | reso |
4 | Luisa | 40 | 79 | 70 | reso |
null | null | null | 79.1 | 15 | sospeso |
- Full Outer join: prendiamo tutte le righe di entrambe le tabelle:
Cliente ID | Nome Cliente | Età | Ordine ID | Quantità ordine | Ordine Reso/sospeso |
1 | Mario | 27 | 76 | 50 | null |
2 | Giovanni | 55 | 77 | 20 | reso |
3 | Luca | 18 | 78 | 30 | reso |
4 | Luisa | 40 | 79 | 70 | reso |
null | null | null | 79 | 15 | sospeso |
In caso di data blending consideriamo nuovamente le due tabelle, ma supponiamo che si trovino in due datasource con origini differenti. La combinazione tra esse, a differenza delle join, non combina mai realmente i dati ma i risultati vengono aggregati al livello appropriato e presentati visivamente insieme nella vista. A questo punto andremo a caricarle separatamente su Tableau e poi a stabilire dal menu
Data -> Edit blend relationship le chiavi di relazione, nel nostro caso “Order ID”. Successivamente in ogni foglio del workbook potremmo decidere quale delle due tabelle utilizzare come fonte primaria; inoltre possiamo anche decidere se attivare o meno la chiave di blend. Ad esempio, nel caso in cui volessimo mostrare tutti i clienti con stato reso appartenenti alla fonte n.1, utilizzeremo la datasource 1 come primaria e filtreremo tenendo in considerazione solo gli ordini resi.
Sia effettuando il data blending o scegliendo un join abbiamo ottenuto lo stesso risultato. Quindi quale è meglio usare? In generale, l’utilizzo di joins è consigliato rispetto al data blending per i seguenti motivi:
- sono più performanti poiché il lavoro è svolto dal database e non dalla macchina locale;
- ci sono poche limitazioni nell’utilizzo.
Tuttavia, non è tutto! Vediamo dunque nel dettaglio, pregi e difetti di entrambi i metodi. Di seguito, una tabella riassuntiva. Passa il mouse sulle icone per visualizzare maggiori informazioni.
Per leggere altri utili suggerimenti e continuare la tua formazione Tableau, puoi seguirci sui nostri canali social Linkedin e Facebook o iscriverti alla nostra nuova community
LearnToViz, per commentare questo e gli altri contenuti con gli altri membri della piattaforma!