web-dev-qa-db-fra.com

Outil pour générer de grands ensembles de données de données de test

Souvent, lorsque vous essayez de proposer une conception de base de données efficace, la meilleure solution consiste à créer deux exemples de bases de données, à les remplir de données et à exécuter des requêtes sur celles-ci pour voir celle qui fonctionne mieux.

Existe-t-il un outil qui générera (idéalement directement dans la base de données) de grands ensembles (~ 10 000 enregistrements) de données de test relativement rapidement? Je cherche quelque chose qui fonctionne au moins avec MySQL.

25
BenV

Le meilleur outil (si vous pouvez le trouver) est DataFactory. (Malheureusement épuisé). J'en ai généré des ensembles de données absolument délicieux (et d'aspect assez authentique).

Generatedata.com est ... acceptable, mais n'évolue pas très bien.

DataGenerator est quelque chose à surveiller.

Et bien que DTM Data Generator soit maladroit et un mauvais substitut à DataFactory, il existe et est vendu, et je l'ai utilisé pour générer des données légèrement acceptables.

12

RedGate a un outil similaire à ce que vous recherchez, mais sa destination est destinée à être MS SQL Server.

http://www.red-gate.com/products/sql-development/sql-data-generator

Vous pouvez également consulter l'article suivant:

http://www.sqlservercentral.com/articles/Advanced+Querying/jointestdata/197/

9
Jeff

Je génère généralement les miennes, en utilisant des données connues en entrée - si c'est trop aléatoire, ce n'est pas toujours un bon test; J'ai besoin de données qui seront distribuées de la même manière que mon produit final.

Toutes les bases de données plus importantes que je dois régler sont de nature scientifique - je peux donc généralement prendre une autre enquête en entrée, la redimensionner et ajouter de la gigue. (par exemple, en prenant des données à une cadence de 5 min avec une précision en millisecondes, et en les transformant en une cadence de 10 s avec une précision en millisecondes mais une gigue de +/- 100 ms par rapport à l'heure)

...

Mais, comme une autre alternative, si vous ne voulez pas écrire le vôtre, est de regarder certains des outils d'analyse comparative - car ils peuvent répéter les choses encore et encore sur la base d'un ensemble de formation, vous pouvez les utiliser pour insérer des lots d'enregistrements (puis ignorez simplement les rapports sur la vitesse à laquelle il l'a fait) ... et ensuite vous pouvez utiliser ce même outil pour tester la vitesse d'exécution de la base de données une fois qu'elle est remplie.

4
Joe

J'utilise mysqlslap. Il se nettoie aussi après lui-même.

Voici le article que j'ai lu quand j'ai commencé à l'utiliser.

3
SteveHarville

Jetez un oeil à cette fonction. Vous pouvez générer des noms, des adresses de numéros de téléphone, des codes postaux, etc. http://moinne.com/blog/ronald/mysql/howto-generate-meaningful-test-data-using-a-mysql-function

2
Sean Thompson

Jetez un oeil à benerator

Ce n'est pas facile au départ, mais c'est assez puissant.

2
a_horse_with_no_name

Le moyen le plus rentable est probablement d'utiliser un générateur de données open source ou commercial. J'avais l'habitude de faire ça.

Maintenant, dans mes années d'or, je considère chaque besoin de données de test comme un mandat pour apprendre un autre langage de script.

Pour tous ceux qui recherchent une solution différente à ce problème ... J'ai écrit un projet de générateur de données de test pour Data Synchronization Studio. Il peut générer un grand ensemble de données allant de 1 à 100s de millions de lignes de données de test réalistes. Voici un article de blog à ce sujet. http://www.simego.com/Blog/2012/02/Test-Data-Generator-Download-for-Data-Sync Son utilisation est gratuite pendant 15 jours (une fois que vous avez vos données de test , tu l'as)

1
Tremayne Christ