sql-server - vinculado - data generator sql server
Generadores de datos para el servidor SQL? (9)
Me gustaría recibir sugerencias sobre los generadores de datos disponibles para el servidor SQL. Si publica una respuesta, proporcione las características que considere importantes.
Nunca he usado una aplicación como esta, por lo que estoy buscando que me eduquen sobre el tema. Gracias.
(Mi objetivo es llenar una base de datos con más de 10.000 registros en cada tabla, para probar una aplicación).
Lo he usado antes
http://sqlmanager.net/en/products/mssql/datagenerator
No es gratis sin embargo.
La verificación de la integridad de las referencias es muy importante, o sus pruebas no servirán sin correlacionar los datos relacionados (en la mayoría de los casos)
Para generar datos de muestra, utilizo aplicaciones simples de Python.
Consideraciones:
Simple de modificar y configurar.
Un conjunto repetible de datos que puede usar para las pruebas de rendimiento y obtener resultados consistentes.
Siga todas las reglas y restricciones de integridad referencial de DB.
Datos realistas
Los dos primeros indican que desea producir archivos de script que cargarán sus datos. El tercero es más difícil. Hay formas de descubrir los metadatos y las restricciones de la base de datos. Si miras juntos los números 3 y 4, no quieres una ingeniería inversa simple: quieres algo que puedas controlar para producir valores realistas.
En general, desea construir un modelo de entidad propio para asegurarse de tener los rangos y las relaciones clave correctos.
Puedes hacer esto de tres maneras.
Genere archivos CSV de datos que puede cargar manualmente. Buenos datos de prueba repetibles.
Genera scripts SQL que puedes ejecutar. Buena información repetible, también.
Use una conexión ODBC para generar datos directamente en la base de datos. De hecho, no me gusta tanto, pero es posible que sí.
Aquí hay una versión reducida de una sola tabla de un generador de datos que escribe un archivo CSV.
import csv
import random
class SomeEntity( list ):
titles = ( ''attr1'', ''attr2'' ) # ... for all columns
def __init__( self ):
self.append( random.randrange( 1, 10 ) )
self.append( random.randrange( 100, 1000 ) )
# ... for all columns
myData = [ SomeEntity() for i in range(10000) ]
aFile= open( ''tmp.csv'', ''wb'' )
dest= csv.writer( aFile )
dest.writerow( SomeEntity.titles )
dest.writerows( myData )
aFile.close()
Para entidades múltiples, debes calcular la cardinalidad. En lugar de generar claves aleatorias, desea hacer una selección aleatoria de las otras entidades. Por lo tanto, es posible que ChildEntity elija un elemento aleatorio de ParentEntity para garantizar que la relación FK-PK sea correcta.
Utilice random.choice(someList)
y random.shuffle(someList)
para asegurar la integridad referencial.
Visual Studio Team System Database Edition (también conocido como Data Dude) hace esto.
Todavía no lo he utilizado para la generación de datos, pero 2 características suenan bien:
Establezca su propio valor inicial para el generador de datos aleatorios. Esto le permite producir los mismos datos aleatorios más de una vez.
Apunta al asistente en una base de datos "real" y haz que genere algo que se parezca a datos reales.
Tal vez estas son las características estándar en otros lugares?
este es gratis: http://www.sqldog.com contiene varias funciones como: generador de datos, búsqueda de texto completo, creación de documentación de base de datos, conexiones de bases de datos activas
Acabo de encontrar sobre eso: Spawner
He usado una herramienta llamada Datatect para esto.
Algunas de las cosas que me gustan de esta herramienta:
- Utiliza ODBC para que pueda generar datos en cualquier fuente de datos ODBC. Lo he usado para bases de datos de Oracle, SQL y MS Access, archivos planos y hojas de cálculo de Excel.
- Extensible a través de VBScript. Puede escribir ganchos en diversas partes del flujo de trabajo de generación de datos para ampliar las capacidades de la herramienta.
- Referencialmente consciente. Al rellenar columnas de clave externa, extrae claves válidas de la tabla principal.
He rodado mi propio generador de datos que genera datos aleatorios que se ajustan a las expresiones regulares. Se convirtió en un proyecto de aprendizaje (en desarrollo) y está disponible en github .
He usado el generador de datos en el pasado. Puede valer la pena mirar.
Edición de terceros
Si no se registra, solo puede generar 100 filas. A continuación puede encontrar una muestra de cómo se ve hoy la interfaz (octubre de 2016)
Algo similar se ha preguntado aquí: Crear datos de prueba en una base de datos
Red Gate SQL Data Generator hace un gran trabajo en ese dominio. Puede personalizar todos los campos de su base de datos y usar datos aleatorios con semillas. E incluso crear patrones específicos usando expresiones Regex.