Generación de la DSPL

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 DSPL
  • country_table.csv: Valores de country concepto
  • age_group_table.csv: Valores de Concepto de age_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

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:

  1. “Roll up” los países para obtener el total de la enfermedad casos solo por edad
  2. Usa la geo:country canónica para la columna country, de modo que podamos obtener los nombres completos, las ubicaciones, etc. de estos
  3. Haz que el concepto disease_cases extienda quantity: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.