Génération DSPL

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 DSPL
  • country_table.csv: valeurs de country concept
  • age_group_table.csv: valeurs du Concept age_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

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:

  1. "Regrouper" les pays afin d’obtenir la totalité des maladies cas par tranche d'âge seule
  2. Utiliser la geo:country canonique pour la colonne country, ce qui nous permet pour obtenir les noms complets, les lieux, etc.
  3. Faites en sorte que le concept disease_cases étende quantity: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.