DSPL Gen è un'utilità a riga di comando che consente di convertire un Tabella di dati CSV in un semplice set di dati DSPL. Lo strumento analizza l'input crea tutte le tabelle di dati necessarie e prepara un file XML DSPL. Il risultato è un set di dati quasi completo "modello" che richiede solo un lieve perfezionamento prima del caricamento a visualizzare immagini.
Il presupposto fondamentale alla base di DSPL Gen è che ogni colonna nella file CSV di input corrisponde a un singolo concetto DSPL e ogni riga è un una singola osservazione per una combinazione di dimensioni. Lo strumento funziona eseguire l'iterazione nelle colonne, stabilendo i metadati appropriati colonna / concetto (ad es. ID, tipo, se si tratta di una dimensione o di una metrica, e così via), generando tutta la definizione e la sezione necessarie del concetto tabelle.
Esecuzione della generazione DSPL
Sintassi
Nota: queste istruzioni presuppongono che hai già seguito istruzioni per l'installazione fornita nella pagina Strumenti di DSPL.
Per eseguire DSPL Gen, vai al terminale / prompt sul tuo sistema e digita:
python dsplgen.py -o [output path] [path to CSV file]
in cui i termini tra parentesi quadre sono sostituiti come segue:
[output path]
: percorso della directory in cui vuoi i tuoi file di output; questa directory deve esistere già del file system.[path to CSV file]
: percorso del file CSV di input. Consulta le in basso per ulteriori dettagli su come formattare questo file.
Il componente -o [output path]
è facoltativo. se omesso, il valore
i file di output verranno posizionati nella directory corrente.
Lo strumento quindi esegue l'iterazione del file CSV estraendo il concetto le definizioni e la generazione delle tabelle delle sezioni. A meno che non vengano rilevati errori, un file XML e uno o più file CSV vengono scritti nella directory di output.
Infine, apri il file XML nell'editor di testo che preferisci e
le modifiche desiderate. Devi inserire almeno i nomi,
descrizioni e altri valori contrassegnati dallo strumento con
Notazione ** INSERT ... **
.
Esempio semplice
Supponiamo di avere un file CSV che fornisce il numero totale di casi per malattia, suddivisi per mese, paese e fascia d'età. Per semplicità, supponiamo che ci siano due valori per ogni dimensione:
date,country,age_group,disease_cases 01/2000,US,old,102030 01/2000,MX,old,192939 01/2000,US,young,23131 01/2000,MX,young,12311 02/2000,US,old,143135 02/2000,MX,old,203131 02/2000,US,young,22990 02/2000,MX,young,12591
L'esecuzione dello strumento sull'input riportato sopra produce quattro file:
dataset.xml
: modello XML DSPLcountry_table.csv
: valori dicountry
concettoage_group_table.csv
: valori dell'attributoage_group
concettoslice_0_table.csv
: tabella per una sezione del set di dati (identica a tabella di input, tranne che per l'ordinamento)
In questo caso particolare, lo strumento è in grado di indovinare correttamente tutti i formati e tipi di colonne. A questo punto, non ti resta che aprire il file XML e modificare i vari nomi, descrizioni e URL nei metadati del set di dati.
Annotazione del file CSV di input
Opzioni di base
In molti casi, come nell'esempio precedente, DSPL Gen può indovinare i metadati per ogni colonna, ad esempio il tipo, il formato e se si tratta di un o una metrica. In altri casi, tuttavia, lo strumento potrebbe non essere in grado di indovinarli, farlo in modo errato o correttamente, ma non seguire comunque il comportamento desiderato.
Per gestire questi casi, lo strumento supporta l'aggiunta della generazione DSPL opzioni / "suggerimenti" nella riga di intestazione CSV. La sintassi di questi parametri è la seguente: che segue:
column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...
In particolare, tieni presente che l'elenco delle opzioni si trova parentesi quadre a destra del nome colonna e l'opzione successiva sono separate da un punto e virgola. Ogni opzione è composta da un un nome dell'opzione, un segno di uguale e un valore dell'opzione.
DSPL Gen attualmente supporta le seguenti opzioni di base:
Opzione | Descrizione | Predefinito |
---|---|---|
type |
Il tipo di dati DSPL per questa colonna; deve essere uno tra date ,
float , integer o string . |
Indovina dai dati |
format |
Il formato della colonna della data; come in DSPL, questo formato dovrebbe essere codificati utilizzando il tag Standard DateTime di Joda. | Indovina dai dati |
slice_role |
il ruolo di questa colonna in tutte le sezioni; deve essere
dimension o metric . |
dimension se la colonna è di tipo date o
string , altrimenti metric |
concept |
Il concetto canonico rappresentato da questa colonna, ad esempio
geo:country ; se specificato, il concetto viene importato e
viene generata automaticamente nel file XML. |
Nessuno |
extends |
Il concetto canonico esteso da questa colonna, ad esempio
entity:entity . |
Nessuno |
parent |
Il concetto principale per questa colonna. Questo elemento principale deve essere una dimensione concetto definito all'interno del set di dati (ovvero, non importato); se specificato, queste informazioni verranno utilizzate per definire una gerarchia dei concetti del set di dati. Tieni presente che ogni istanza secondaria può avere un solo elemento padre. Se più vengono rilevati valori padre, quindi lo strumento produrrà un errore. |
Nessuno |
Roll-up dei valori
Oltre ai suggerimenti di base, le opzioni descritte sopra,
DSPL Gen supporta anche i roll-up delle sezioni, in base a una singola tabella
lo strumento può creare automaticamente altre tabelle con dati
sottoinsiemi delle dimensioni. Ad esempio, se la tabella di input corrisponde a
una sezione con tre dimensioni non temporali (ad es. dimension1
,
dimension2
e dimensions3
), lo strumento può
crea anche alcune sezioni aggiuntive: solo dimension1
,
solo dimension2
, solo dimension1
e
dimension2
e così via.
L'aggiunta di queste sezioni aggiuntive può semplificare l'esplorazione del set di dati poiché riduce il numero di filtri di dimensione necessari per generare e visualizzazioni. Questa procedura, invece, potrebbe introdurre "nuovi" dati non trovati nel file originale, pertanto potrebbero essere introdotti errori, se non utilizzato correttamente; controlla attentamente i numeri raggruppati prima di pubblicare del set di dati.
Il processo di aggregazione viene attivato includendo alcune opzioni aggiuntive nella l'intestazione CSV di input:
Opzione | Descrizione | Predefinito |
---|---|---|
aggregation |
Il metodo di aggregazione da utilizzare quando si combinano più valori
di questa colonna; deve essere uno dei seguenti: AVG , COUNT ,
MAX , MIN o SUM ; solo
significativo per le metriche. |
SUM |
rollup |
Se il valore è true , il concetto di
questa colonna è "aggregazione" (ad esempio dati aggregati);
di significato solo per i concetti di dimensione. |
Falso |
total_val |
Il valore in questa colonna che indica le righe da conservare quando la colonna è raggruppata; di significato solo per i concetti di dimensione. | None |
DSPL Gen calcola quindi le proprietà di aggregazione utilizzando il seguente algoritmo:
- Utilizzando i valori dei tag
rollup
, calcola tutto il possibile combinazioni di colonne - Per ogni combinazione:
- Se eventuali colonne raggruppate hanno un parametro
total_val
impostato, poi filtra le righe in base a questo valore; altrimenti seleziona tutte le righe - Rilascia le colonne di aggregazione
- Raggruppa le righe in base ai valori delle colonne di dimensioni rimanenti
- Aggrega ogni metrica utilizzando il metodo specificato
Parametro
aggregation
- Crea una sezione e una tabella associata per il risultato
- Se eventuali colonne raggruppate hanno un parametro
Tieni presente che se è presente un solo valore in ogni raggruppamento e il valore
funzione di aggregazione è impostata su SUM
(il valore predefinito),
i valori delle metriche nelle tabelle di origine e generate saranno gli stessi, ovvero nessun nuovo valore
vengono generati. Pertanto, l'uso del parametro total_val
e la garanzia
che c'è solo un "totale" riga per ogni combinazione dell'altro
consente di archiviare dati aggregati precalcolati direttamente nell'origine.
Avviso: il numero di sezioni generate è uguale a 2colonne raggruppate. Applicazione di questa opzione a un modello numero di colonne può comportare tempi di esecuzione molto lunghi e/o grandi e set di dati.
Esempio avanzato
Supponiamo di avere gli stessi dati di input dell'esempio precedente, ma ora includono dati aggregati per paesi:
date,country,age_group,disease_cases 01/2000,US,old,102030 01/2000,MX,old,192939 01/2000,total,old,152012 01/2000,US,young,23131 01/2000,MX,young,12311 01/2000,total,young,241011 02/2000,US,old,143135 02/2000,MX,old,203131 02/2000,total,old,211310 02/2000,US,young,22990 02/2000,MX,young,12591 02/2000,total,young,240131
Il totale relativo a ogni fascia d'età potrebbe non corrispondere alla somma dei valori dei paesi perché, ad esempio, a differenze di metodologia o di altri paesi non elencati nell'elenco.
Ora vogliamo creare un set di dati DSPL che abbia le seguenti caratteristiche:
- "Aggrega" paesi in modo da ottenere il totale casi per fascia d'età
- Utilizza la versione canonica
geo:country
per la colonnacountry
, in modo da poter eseguire automaticamente trovare nome e cognome, località ecc. di questi - Fai in modo che il concetto di
disease_cases
estendaquantity:amount
, in modo da poter aggiungere (manualmente) le informazioni sull'unità nel file XML
Per farlo, modifichiamo la riga di intestazione del file CSV di input come segue:
date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]
Se esegui di nuovo lo strumento, viene visualizzata un'ulteriore tabella delle sezioni, elimina la distinzione per paese:
date,age_group,disease_cases 01/2000,old,152012 02/2000,old,211310 01/2000,young,241011 02/2000,young,240131
Tieni presente che se non avessimo incluso i valori totali e i valori
total_val
nella tabella di origine, avremmo ottenuto il
somma calcolata per ogni fascia d'età.
Inoltre, la definizione di disease_cases
nel file XML
ora include l'estensione di quantity:amount
, se vuoi. La
definizione di country
viene eliminata dal file XML perché
per questo usiamo un concetto importato.
Dopo aver inserito i nomi, le descrizioni e le informazioni sull'unità, può comprimere il bundle del set di dati e caricarlo su Public Data Explorer visualizzazione.