DSPL Gen est un utilitaire de ligne de commande qui permet de convertir table de données CSV dans un ensemble de données DSPL simple. L'outil analyse l'entrée crée toutes les tables de données nécessaires et présente un fichier XML DSPL. Le résultat est un ensemble de données presque complet "modèle" qui ne nécessite qu'un affinement mineur avant l'importation et la visualisation.
L'hypothèse fondamentale sur laquelle repose DSPL Gen est que chaque colonne de CSV d'entrée correspond à un concept DSPL unique, et chaque ligne est un une seule observation pour une combinaison de dimensions. Cet outil fonctionne par itération sur les colonnes, afin d'établir les métadonnées appropriées pour chaque colonne / concept (identifiant, type, dimension ou métrique, puis générer la définition de concept et la tranche nécessaires tableaux.
Exécution de DSPL Gen
Syntaxe
Remarque:Ces instructions partent du principe que vous avez déjà suivi la instructions d'installation présentées sur la page "Outils DSPL".
Pour exécuter DSPL Gen, accédez au terminal ou à l'invite de votre système et saisissez la commande suivante:
python dsplgen.py -o [output path] [path to CSV file]
où les termes entre crochets sont remplacés comme suit:
[output path]
: chemin d'accès au répertoire dans lequel vous souhaitez vos fichiers de sortie à placer ; ce répertoire doit déjà exister dans votre système de fichiers.[path to CSV file]
: chemin d'accès à votre fichier CSV d'entrée. Consultez le section ci-dessous pour découvrir comment formater ce fichier.
Le composant -o [output path]
est facultatif. En cas d'omission,
fichiers de sortie seront placés
dans le répertoire actuel.
L'outil s'exécute ensuite, itère le fichier CSV et extrait le concept des définitions et la génération de tables de segments. Sauf en cas d'erreur, un fichier XML et un ou plusieurs fichiers CSV sont écrits dans le répertoire de sortie.
Enfin, ouvrez le fichier XML dans l'éditeur de texte de votre choix
toute modification souhaitée. Au minimum, vous devez
remplir les noms,
les descriptions et les autres valeurs indiquées par l'outil à l'aide de l'attribut
** INSERT ... **
.
Exemple simple
Supposons que nous disposons d'un fichier CSV qui donne le nombre total de cas pour une par mois, par pays et par tranche d'âge. Pour plus de simplicité, supposons qu'il y ait deux valeurs pour chaque dimension:
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'exécution de l'outil sur l'entrée ci-dessus génère quatre fichiers:
dataset.xml
: modèle XML DSPLcountry_table.csv
: valeurs decountry
conceptage_group_table.csv
: valeurs du Conceptage_group
slice_0_table.csv
: table de la tranche de l'ensemble de données (identique à table d'entrée, sauf pour le tri)
Dans ce cas précis, l'outil est capable de deviner correctement types et formats de colonnes. Il ne vous reste plus qu'à accéder au fichier XML et modifier les différents noms, descriptions et URL dans les métadonnées de l'ensemble de données.
Annoter le fichier CSV d'entrée
Options de base
Dans de nombreux cas, comme dans l'exemple ci-dessus, la génération DSPL peut deviner métadonnées de chaque colonne, par exemple le type, le format et s'il s'agit d'un une dimension ou une métrique. Dans d'autres cas, il est possible que l'outil ne soit pas en mesure devinez-les, peuvent deviner de manière incorrecte ou correcte, mais quand même, mais elles ne doivent pas adopter le comportement souhaité.
Pour gérer ces cas, l'outil accepte l'ajout de la génération DSPL options / "indices" dans la ligne d'en-tête du fichier CSV. La syntaxe de ceux-ci est la suivante : ce qui suit:
column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...
Notez en particulier que la liste d'options est placée à l'intérieur crochets à droite du nom de la colonne et l'option successive sont séparés par des points-virgules. Chaque option se compose d'un un nom d'option, un signe égal et une valeur d'option.
DSPL Gen prend actuellement en charge les options de base suivantes:
Option | Description | Par défaut |
---|---|---|
type |
Type de données DSPL pour cette colonne Doit être l'une des valeurs suivantes : date ,
float , integer ou string . |
Déterminé à partir des données |
format |
Format de cette colonne de date. comme dans DSPL, ce format doit être encodé à l'aide de la méthode Norme Joda DateTime | Déterminé à partir des données |
slice_role |
Quel est le rôle de cette colonne dans n'importe quelle tranche ; doit être soit
dimension ou metric . |
dimension si la colonne est de type date ou
string , sinon metric |
concept |
Le concept canonique que cette colonne représente, par exemple
geo:country ; s'il est fourni, le concept est importé et
est générée dans le fichier XML. |
Aucun |
extends |
Le concept canonique que cette colonne étend, par exemple
entity:entity |
Aucun |
parent |
Concept parent pour cette colonne. Ce parent doit être une dimension concept défini dans l'ensemble de données (non importé) ; le cas échéant, ces informations serviront à définir une hiérarchie de concepts dans ensemble de données. Notez que chaque instance enfant ne peut avoir qu'un seul parent. Si plusieurs valeurs parentes sont détectées, l'outil génère alors une erreur. |
Aucun |
Vues d'ensemble des valeurs
En plus de l'indice de base, les options décrites ci-dessus,
DSPL Gen est également compatible avec les cumuls de segments: pour une seule table,
l'outil peut créer automatiquement des tables supplémentaires avec des
sous-ensembles de dimensions. Ainsi, par exemple, si votre table d'entrée correspond à
une tranche avec trois dimensions non temporelles (par exemple, dimension1
,
dimension2
et dimensions3
), l'outil peut
créez également des tranches supplémentaires: dimension1
uniquement,
uniquement dimension2
, uniquement dimension1
et
dimension2
, etc.
L'ajout de ces segments supplémentaires peut faciliter l'exploration de votre ensemble de données car il réduit le nombre de filtres de variables requis pour produire des visualisations. D'autre part, ce processus peut introduire de "nouveaux" données introuvables dans le fichier d'origine. Dans le cas contraire, cela peut aussi entraîner des erreurs. sont utilisés correctement ; vérifiez attentivement les chiffres cumulés avant de publier votre ensemble de données.
Le processus de consolidation est déclenché par l'inclusion d'options supplémentaires dans l'en-tête CSV d'entrée:
Option | Description | Par défaut |
---|---|---|
aggregation |
Méthode d'agrégation à utiliser lors de la combinaison de plusieurs valeurs
de cette colonne ; doit être l'une des valeurs suivantes : AVG , COUNT ,
MAX , MIN ou SUM ; uniquement
significatif pour les métriques. |
SUM |
rollup |
Si la valeur est true , le concept de
cette colonne est "cumulée" (c'est-à-dire regroupées) ;
ne sont significatifs que pour les concepts de dimensions. |
Faux |
total_val |
La valeur dans cette colonne qui indique les lignes à conserver lorsque cette est regroupée. n'est pertinent que pour les concepts de dimensions. | None |
DSPL Gen calcule ensuite les cumuls à l'aide de l'algorithme suivant:
- À l'aide des valeurs des balises
rollup
, calculer toutes les valeurs possibles combinaisons de colonnes - Pour chaque combinaison:
<ph type="x-smartling-placeholder">
- </ph>
- Si des colonnes regroupées comportent un paramètre
total_val
puis filtrez les lignes selon cette valeur ; Sinon, sélectionnez toutes les lignes - Supprimer les colonnes regroupées
- Regrouper les lignes en fonction des valeurs des colonnes de dimension restantes
- Agrégez chaque métrique en utilisant la méthode spécifiée dans ses
Paramètre
aggregation
- Créer une tranche et la table associée pour le résultat
- Si des colonnes regroupées comportent un paramètre
Notez que s'il n'y a qu'une seule valeur dans chaque groupe et que le paramètre
est définie sur SUM
(valeur par défaut), alors la fonction
les valeurs des métriques dans les tables sources et générées seront identiques (aucune nouvelle valeur)
sont générés. Ainsi, en utilisant le paramètre total_val
et en veillant à ce que
qu'il n'y a qu'un seul « total » ligne pour chaque combinaison des autres
vous permet de stocker des agrégations précalculées directement dans la source.
Avertissement:Le nombre de tranches générées est égale à 2colonnes regroupées. Cette option est appliquée à un grand de colonnes peut entraîner des durées d'exécution très longues et/ou un nombre élevé des ensembles de données.
Exemple avancé
Supposons que nous ayons les mêmes données d'entrée que dans l'exemple précédent, mais que inclut désormais des données agrégées pour l'ensemble des pays:
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
Le total de chaque tranche d'âge peut ne pas correspondre à la somme des valeurs des pays parce que, par exemple, des différences de méthodologie ou de l'existence des pays non énumérés dans la liste.
Nous voulons à présent créer un ensemble de données DSPL contenant les éléments supplémentaires suivants fonctionnalités:
- "Regrouper" les pays afin d’obtenir la totalité des maladies cas par tranche d'âge seule
- Utiliser la
geo:country
canonique pour la colonnecountry
, ce qui nous permet pour obtenir les noms complets, les lieux, etc. - Faites en sorte que le concept
disease_cases
étendequantity:amount
. afin que nous puissions ajouter (manuellement) les informations sur les unités dans le fichier XML.
Pour ce faire, nous modifions la ligne d'en-tête du fichier CSV d'entrée comme suit:
date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]
En exécutant à nouveau l'outil, nous obtenons maintenant un tableau de segments supplémentaire, un qui élimine la distinction par pays:
date,age_group,disease_cases 01/2000,old,152012 02/2000,old,211310 01/2000,young,241011 02/2000,young,240131
Notez que si nous n'avions pas inclus les valeurs totales et le
total_val
dans la table source, la valeur
pour chaque tranche d'âge.
De plus, la définition de disease_cases
dans le fichier XML
inclut désormais l'extension de quantity:amount
, comme vous le souhaitez. La
la définition de country
est supprimée du fichier XML, car
nous utilisons un concept
importé pour cela à la place.
Après avoir renseigné les différents noms, descriptions et informations sur les unités, nous Vous pouvez compresser le bundle d'ensembles de données et l'importer dans Public Data Explorer pour la visualisation.