Apéndice B. Generador de datos sintéticos

Tabla de contenidos

B.1. Generador para tipos PostgreSQL
B.2. Generador para tipos PostGIS
B.3. Generador para tipos de tiempo y de cuadro delimitador MobilityDB
B.4. Generador para tipos temporales MobilityDB
B.5. Generación de tablas con valores aleatorios
B.6. Generador para tipos de red temporales

En muchas circunstancias, es necesario tener un conjunto de datos de prueba para evaluar enfoques de implementación alternativos o realizar evaluaciones comparativas. A menudo se requiere que tal conjunto de datos tenga requisitos particulares en tamaño o en las características intrínsecas de sus datos. Incluso si un conjunto de datos del mundo real pudiera estar disponible, puede que no sea ideal para tales experimentos por múltiples razones. Por lo tanto, un generador de datos sintéticos que pueda personalizarse para producir datos de acuerdo con los requisitos dados suele ser la mejor solución. Obviamente, los experimentos con datos sintéticos deben complementarse con experimentos con datos del mundo real para tener una comprensión profunda del problema en cuestión.

MobilityDB proporciona un generador simple de datos sintéticos que se puede utilizar para tales fines. En particular, se utilizó este generador de datos para generar la base de datos utilizada para las pruebas de regresión en MobilityDB. El generador de datos está programado en PL/pgSQL para que se pueda personalizar fácilmente. Se encuentra en el directorio datagen en el repositorio. En este apéndice, presentamos brevemente la funcionalidad básica del generador. Primero enumeramos las funciones que generan valores aleatorios para varios tipos de datos de PostgreSQL, PostGIS y MobilityDB y luego damos ejemplos de cómo se usan estas funciones para generar tablas de dichos valores. Los parámetros de las funciones no están especificados, consulte los archivos fuente donde se pueden encontrar explicaciones detalladas sobre los distintos parámetros.

B.1. Generador para tipos PostgreSQL

  • random_bool: Generar un booleano aleatorio

  • random_int: Generar un entero aleatorio

  • random_int_array: Generar una matriz de enteros aleatorios

  • random_intrango: Generar un rango aleatorio de enteros

  • random_float: Generar un número flotante aleatorio

  • random_float_array: Generar una matriz de números flotantes aleatorios

  • random_floatrango: Generar un rango aleatorio de números flotantes

  • random_text: Generar un texto aleatorio

  • random_timestamptz: Generar una marca de tiempo con zona horaria aleatoria

  • random_timestamptz_array: Generar una matriz de marcas de tiempo con zona horaria aleatorias

  • random_minutos: Generar un intervalo de minutos aleatorio

  • random_tstzrange: Generar rango aleatorio de marcas de tiempo con zona horaria

  • random_tstzrango_array: Generar una matriz de rangos aleatorios de marcas de tiempo con zona horaria