Last active
March 27, 2018 19:39
-
-
Save xrmx/73b3d19e31637b08e8ba249c5d27e40d to your computer and use it in GitHub Desktop.
Descrizione demo del talk tenuto a MERGE-it 2018 https://speakerdeck.com/xrmx/superset-1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Come Demo vorrei farvi vedere quello che ha fatto napo in un suo post ma in modo diverso. | |
Come dati useremo sempre il dataset del Consip su Bandi e gare del 2017. | |
Che ho già scaricato qui. Ora per vedere cosa c'è dentro facciamo un head da terminale. Ah! | |
Ci sono problemi con gli accenti perchè evidentemente in Consip non è arrivato ancora unicode. | |
Per risolvere problemi di questo tipo la cosa più semplice è caricare il file in LibreOffice, | |
indovinare l'encoding (conviene scommettere su windows 1252) e riesportarlo in UTF-8. | |
Visto che ci siamo togliamo anche il commento nell'header che ci da solo fastidio. | |
Ora che abbiamo un csv utilizzabile andiamo direttamente su superset. Dalla versione 0.23 che | |
non era ancora rilasciata ai tempi del tutorial di napo è stata inclusa una funzionalitù di | |
importazione di CSV. Sempre successivamente all'articolo è stata anche tradotto in italiano | |
(da napo e raffaele Spangaro) e sistemato un imbarazzante bug per cui le traduzioni non | |
venivano inserite nel pacchetto da Alessandro Baldo. | |
Andiamo su Sorgenti, quindi upload a CSV, mettiamo table name, mettiamo in parse dates le | |
date e mettiamo la virgola come Decimal Character. La possibilità di inserire esplicitamente | |
le colonne fatte a date è disponibile dal commit 76394d3f8f711c2754dbfdd0c6cf7deb6d3ef122 | |
che non è ancora stato rilasciato. | |
Quindi andiamo in tabelle e dovrebbe esserci la nuova nostra tabella disponibile. Se | |
clicchiamo in Edit Record vediamo il tracciato del database. | |
Ogni riga di questa tabella è una colonna. Le colonne interessanti di questa tabella oltre | |
al nome della colonna del database sono: | |
- tipo, che mostra il tipo della colonna in database | |
- raggruppabile, che ci permette di creare grafici che usano aggregazioni su questa colonna | |
- filtrabile, che ci permette di creare grafici che possono filtrare dati su questa colonna | |
- count distinct, che ci permette di contare in modo distinto i valori presenti nella colonna | |
- sum, che ci permette di creare grafici che sommano valori presenti nella colonna | |
- min, che ci permette di creare grafici che trovano il minimo valore presente nella colonna | |
- max, che ci permette di creare grafici che trovano il massimo valore presente nella colonna | |
- è temporale, che identifica le colonne che possono essere usate per i grafici basati sul tempo | |
Ora proviamo a fare una visualizzazione. Perchè ho poca fantasia useremo due visualizzazioni dal | |
post di Napo, così in caso avete comunque una reference. | |
Andiamo da Sorgenti, Tabelle e clicchiamo sul nome della tabella che abbiamo importato. Ora di | |
default parte un grafico tabellare inutile, ma poco male. Selezioniamo per prima cosa il tipo | |
di visualizzazione, scriviamo cloud per filtrare perchè vogliamo una word cloud. | |
La prima cosa di ricordarsi è settare ad una data compatibile con i dati che abbiamo in db la | |
data di inizio che di default è 7 gg. | |
Quindi nella parte query dell'interfaccia scegliamo "Categoria Merceologica" come series e la | |
somma delle base d'asta come metrica. Le metriche di somma e media vengono create automaticamente | |
all'importazione della tabella per i campi numerici. Un'altra metrica invece che viene creata sempre | |
è quella per il conteggio delle righe che ritorna la query (COUNT(*)). | |
Nella parte opzioni invece mettiamo la rotation a flat perchè altrimenti non si capisce niente. | |
In mezzo alla visualizzazione c'è quel valore ND che non ci piace e quindi lo togliamo mettendo un | |
filtro sui risultati della query. Qui nei campi filtrabili vediamo solo quelli che abbiamo messo | |
come tali nella pagina della tabella. | |
La visualizzazione ci piace quindi la vogliamo salvare e mettere in una dashboard. Mettiamo il nome | |
del grafico e quindi della dashboard che creeremo. Ora prima di creare un altro grafico vogliamo | |
compiacerci della dashboard e condividerla col resto del mondo. Quindi copiamoci l'url e lo mandiamo | |
ad un nostro amico. Oops! Non si vede la dashboard. | |
Dobbiamo infatti dare i permessi agli utenti non loggati | |
Per fare questo andiamo in Sicurezza e quindi List Roles. Qui cerchiamo il ruolo Public e gli aggiungiamo | |
i seguenti permessi: | |
- can explore json, che permette all'utente di fare query tramite api | |
- can dashboard, che permette all'utente di visualizzare le dashboard | |
- datasource access sulla nostra tabella, che permette di accedere ai dati della tabella | |
Torniamo un attimo alla visualizzazione, in alto a destra c'è un bottone query che ci permette di | |
vedere la query sql che viene fatta da superset per richeidere i dati che ci permettono di generare | |
il grafico. | |
Questo è interessante se vogliamo poter esplorare i nostri dati non solo tramite grafici ma anche | |
tramite sql. Se lo conosciamo ovviamente. | |
In Superset è presente un editor SQL chiamato "SQL Lab". SQL Lab ci permette di fare query, salvarle e | |
quindi ricercarle, condividerle ed esportare i dati tramite csv. | |
Sqllab ci permette inoltre di creare tabelle dalle query per oltrepassare il limite di Superset di poter | |
creare grafici dalla singola tabella. Questo ci evita di dove preprocessare i nostri dati. Unica cosa da | |
fare attenzione è che la tabella viene creata una volta, ed aggiornamenti ai dati da cui è stata fatta | |
la query non aggiornano la tabella. | |
Ora aggiungiamo un'altro grafico alla dashboard, in verità qualcosa di diverso un filtro. Andiamo su Grafici, | |
premiamo il + per aggiungere una nuova riga. Mettiamo la nostra datasource e il tipo di grafico "filter box". | |
Quindi dobbiamo ricordarci di mettere la nostra data di inizio e scegliere per quali valori filtrare i dati | |
della nostra tabella. Salviamo il filtro e lo aggiungiamo alla dashboard. | |
Ora nella dashboard abbiamo il filtro e quando lo usiamo gli altri grafici si aggiornano automaticamente. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment