DSPL Gen es una utilidad de línea de comandos que ayuda a convertir un en un conjunto de datos DSPL simple. La herramienta analiza la entrada crea todas las tablas de datos necesarias y establece un archivo XML DSPL. El resultado es un conjunto de datos casi completo “plantilla” que solo requiere un refinamiento menor antes de la carga y visualizar.
La suposición fundamental detrás de la DSPL Gen es que cada columna en el archivo CSV de entrada corresponde a un solo concepto DSPL y cada fila es un una única observación para una combinación de dimensiones. La herramienta funciona iterando a través de las columnas, estableciendo los metadatos adecuados para cada columna o concepto (p.ej., su ID, tipo, si es una dimensión o una métrica, etc.) y, luego, generar toda la definición de conceptos y la porción en diferentes tipos de tablas particionadas.
Ejecutando DSPL gen.
Sintaxis
Nota: En estas instrucciones, se supone que ya seguiste el instrucciones de instalación proporcionadas en la página de herramientas de DSPL.
Para ejecutar DSPL Gen, ve a la terminal o al mensaje en tu sistema y escribe lo siguiente:
python dsplgen.py -o [output path] [path to CSV file]
donde los términos entre corchetes se reemplazan por lo siguiente:
[output path]
: La ruta de acceso al directorio en el que deseas colocar tus archivos de salida; este directorio ya debe existir en tu sistema de archivos.[path to CSV file]
: Ruta de acceso al archivo CSV de entrada. Consulta la más abajo para obtener más detalles sobre cómo formatear este archivo.
El componente -o [output path]
es opcional. si se omite, el
se ubicarán en el directorio actual.
Luego, la herramienta se ejecuta, itera en tu archivo CSV y extrae el concepto definiciones y generar tablas de slices. A menos que se encuentren errores, un archivo y se escriben uno o más archivos CSV en el directorio de salida.
Por último, abre el archivo XML en el editor de texto que prefieras y haz
los cambios deseados. Como mínimo, debes completar los nombres,
descripciones y otros valores que la herramienta marcó con el
Notación ** INSERT ... **
.
Ejemplo simple
Supongamos que tenemos un archivo CSV que proporciona el número total de casos de un enfermedad, desglosada por mes, país y edad. Para simplificar, supongamos que hay 2 valores de cada dimensión:
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
Cuando ejecutas la herramienta en la entrada anterior, se producen 4 archivos:
dataset.xml
: La plantilla XML de DSPLcountry_table.csv
: Valores decountry
conceptoage_group_table.csv
: Valores de Concepto deage_group
slice_0_table.csv
: Tabla para la porción del conjunto de datos (idéntico a de entrada, excepto para el ordenamiento)
En este caso particular, la herramienta puede adivinar correctamente todos los tipos y formatos de columnas. Entonces, lo único que queda por hacer es ir al archivo XML y editar los distintos nombres, descripciones y URLs en los metadatos del conjunto de datos.
Anotar el archivo CSV de entrada
Opciones básicas
En muchos casos, como en el ejemplo anterior, la generación de DSPL puede adivinar la fórmula metadatos para cada columna, p.ej., el tipo, el formato y si se trata dimensión o una métrica. Sin embargo, en otros casos, es posible que la herramienta adivinarlas, puede que adivine incorrectamente o adivinen correctamente, pero aun así, no seguir el comportamiento deseado.
Para manejar estos casos, la herramienta admite la adición de generación DSPL. opciones / "sugerencias" en la fila de encabezado de CSV. La sintaxis de estos es tan sigue:
column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...
Cabe destacar que la lista de opciones se ubica corchetes a la derecha del nombre de la columna y la opción sucesiva están separados por punto y coma. Cada opción consta de un un nombre de opción, un signo igual y un valor de opción.
Actualmente, la generación de DSPL admite las siguientes opciones básicas:
Opción | Descripción | Predeterminado |
---|---|---|
type |
el tipo de datos DSPL para esta columna; debe ser date
float , integer o string . |
Adivinado a partir de los datos |
format |
El formato de esta columna de fecha; como en DSPL, este formato debe ser codificada con el estándar de Joda DateTime. | Adivinado a partir de los datos |
slice_role |
El rol de esta columna en cualquier porción; debe ser una de las siguientes opciones:
dimension o metric . |
dimension si la columna es de tipo date o
string ; de lo contrario, metric |
concept |
El concepto canónico que representa esta columna, p.ej.,
geo:country ; si se proporciona, se importa el concepto y no
definición se produce en el archivo en formato XML. |
Ninguno |
extends |
El concepto canónico que extiende esta columna, p.ej.,
entity:entity |
Ninguno |
parent |
El concepto superior para esta columna. Este elemento superior debe ser una dimensión concepto definido dentro del conjunto de datos (es decir, no importado); si se proporciona, esta información se usará para definir una jerarquía de conceptos en el de tu conjunto de datos. Ten en cuenta que cada instancia secundaria solo puede tener un elemento superior. Si hay varios los valores superiores, la herramienta producirá un error. |
Ninguno |
Propiedad de datos integrados del valor
Además de la "sugerencia" básica, de las opciones descritas anteriormente
La generación de DSPL también admite las propiedades de datos integrados de Slice, en función de una sola tabla.
de entrada, la herramienta puede crear automáticamente tablas adicionales con datos
subconjuntos de las dimensiones. Así, por ejemplo, si tu tabla de entrada corresponde
Una porción con tres dimensiones que no son de tiempo (p.ej., dimension1
,
dimension2
y dimensions3
) la herramienta puede
También puedes crear algunas secciones adicionales: solo dimension1
,
solo dimension2
, solo dimension1
y
dimension2
, etcétera.
Agregar estas porciones adicionales puede facilitar la exploración de tu conjunto de datos ya que reduce la cantidad de filtros de dimensión necesarios para generar visualizaciones. Por otro lado, este proceso puede introducir "nuevos" datos no encontrados en el archivo original, por lo que también puede introducir errores si no se utilicen correctamente; Revisa cuidadosamente las cifras completas antes de publicar tu de tu conjunto de datos.
El proceso de datos integrados se activa cuando se incluyen algunas opciones adicionales en el encabezado CSV de entrada:
Opción | Descripción | Predeterminado |
---|---|---|
aggregation |
El método de agregación que se usará cuando se combinen varios valores
de esta columna; debe ser AVG , COUNT ,
MAX , MIN o SUM ; solamente
significativo para las métricas. |
SUM |
rollup |
Si el valor es true , el concepto de
esta columna está "completada" (es decir, agregados);
solo es significativo para los conceptos de dimensión. |
Falso |
total_val |
El valor en esta columna que indica las filas que se conservarán cuando esta la columna está listada; solo es significativo para los conceptos de dimensión. | None |
Luego, la generación de DSPL calcula las propiedades de datos integrados con el siguiente algoritmo:
- Con los valores de las etiquetas
rollup
, calcula todos los valores posibles combinaciones de columnas - Para cada combinación:
- Si alguna columna de lista completa tiene un parámetro
total_val
set, luego filtrar las filas por este valor; De lo contrario, seleccionar todas las filas - Descarta las columnas de lista completa
- Agrupa las filas por los valores de las columnas de dimensiones restantes.
- Agregar cada métrica con el método especificado en su
Parámetro
aggregation
- Crea una porción y una tabla asociada para el resultado
- Si alguna columna de lista completa tiene un parámetro
Ten en cuenta que si hay un solo valor en cada grupo y las
se configura como SUM
(el valor predeterminado) y, luego,
los valores de las métricas en las tablas fuente y generadas serán los mismos, es decir, no hay valores nuevos
cuando se generen. Por lo tanto, usa el parámetro total_val
y garantiza
que solo hay un “total” fila para cada combinación de las otras
te permite almacenar agregaciones precalculadas directamente en la fuente.
Advertencia: La cantidad de segmentos que se generaron es Equivale a 2columnas completas. Si aplicas esta opción a un modelo la cantidad de columnas puede dar como resultado tiempos de ejecución muy largos o grandes conjuntos de datos.
Ejemplo avanzado
Supongamos que tenemos los mismos datos de entrada que en el ejemplo anterior, pero ahora se incluyen agregaciones de todos los países:
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
Es posible que el total para cada edad no coincida con la suma de los valores de cada país debido a, por ejemplo, las diferencias en la metodología o la existencia de otros países que no figuran en la lista.
Ahora queremos crear un conjunto de datos DSPL que tenga atributos:
- “Roll up” los países para obtener el total de la enfermedad casos solo por edad
- Usa la
geo:country
canónica para la columnacountry
, de modo que podamos obtener los nombres completos, las ubicaciones, etc. de estos - Haz que el concepto
disease_cases
extiendaquantity:amount
. para que podamos agregar (manualmente) información de unidades en el archivo en formato XML
Para ello, modificamos la fila de encabezado del archivo CSV de entrada de la siguiente manera:
date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]
Cuando vuelves a ejecutar la herramienta, obtenemos una tabla de Slice adicional, una que elimina la distinción por país:
date,age_group,disease_cases 01/2000,old,152012 02/2000,old,211310 01/2000,young,241011 02/2000,young,240131
Ten en cuenta que si no hubiéramos incluido los valores totales y el
total_val
en la tabla de origen, obtuvimos la etiqueta
calculada para cada edad.
Además, la definición de disease_cases
en el archivo en formato XML
ahora incluye la extensión de quantity:amount
, según lo desees. El
la definición de country
se elimina del archivo en formato XML porque
usaremos un concepto importado para esto.
Después de completar los distintos nombres, descripciones e información de las unidades, podemos comprimir el paquete de conjuntos de datos y subirlo a Public Data Explorer visualización.