Generazione DSPL

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 DSPL
  • country_table.csv: valori di country concetto
  • age_group_table.csv: valori dell'attributo age_group concetto
  • slice_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

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:

  1. "Aggrega" paesi in modo da ottenere il totale casi per fascia d'età
  2. Utilizza la versione canonica geo:country per la colonna country, in modo da poter eseguire automaticamente trovare nome e cognome, località ecc. di questi
  3. Fai in modo che il concetto di disease_cases estenda quantity: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.