Des outils pour générer des données factices? [fermé]


104

Je recherche des recommandations sur un bon outil gratuit pour générer des exemples de données dans le but de les charger dans des bases de données de test. Par analogie, quelque chose qui produit du texte " lorem ipsum " pour n'importe quel SGBDR. Les fonctionnalités que je recherche incluent:

  • Flexibilité pour générer des données pour une définition de table existante.
  • Possibilité de générer des ensembles de données petits et grands (> 1 million de lignes ou plus).
  • Générer au format de script SQL ( INSERTinstructions) ou bien dans un format de fichier plat adapté à l'importation en masse (qui est généralement plus rapide).
  • Une interface de ligne de commande pour des scripts faciles.
  • Extensible, open source, écrit dans un langage dynamique (ce sont des exigences intéressantes, pas fortes).

PS: J'ai recherché une question en double sur StackOverflow, mais je n'en ai pas trouvé. S'il y en a un, je serai reconnaissant de vous le signaler.


Merci pour les bonnes réponses à tous! Je devrais modifier mes exigences pour que j'utilise Mac OS X comme environnement de développement principal, pas Windows (même si j'ai dit que l'interface de ligne de commande est souhaitable, et cela exclut pratiquement Windows). Les suggestions spécifiques à Windows seront sans aucun doute utiles aux autres lecteurs de cette question, alors merci.


Voici ma conclusion:

  • GenerateData:
    • Interface d'application Web PHP, pas de ligne de commande
    • limité à la génération de 200 enregistrements (ou payer 20 $ pour une licence pour générer 5000 enregistrements)
  • Générateur de données RedGate SQL
    • pas gratuit, prix 295 $
    • nécessite Windows, .NET, SQL Server
  • Édition de base de données Visual Studio 2008
    • nécessite Windows
    • nécessite un abonnement MSDN ou ISV coûteux
  • Bannière Datadect
    • pas gratuit, prix 595 $
    • nécessite Windows (?)
    • pas de support pour MySQL (?)
    • Interface graphique, pas de ligne de commande ou scriptable
  • Gemme Ruby Faker
    • beaucoup trop lent pour utiliser ActiveRecord pour le chargement de données en masse
  • Super Smack
    • principalement un outil de test de charge, avec un générateur de données aléatoires intégré
    • assez simple à utiliser quand même
    • dans l'ensemble, un bon outil de deuxième place
  • Bénérateur Databene
    • meilleure solution pour mes besoins
    • Scripts XML, compatibles avec DbUnit
    • code Java open source (GPL)
    • utilisation de la ligne de commande
    • accéder à de nombreuses bases de données directement via JDBC

Ceci est de nature similaire et est intéressant sous sa propre lumière: en.wikipedia.org/wiki/Fuzz_testing
grieve

GenerateData est une application php. vous pouvez pirater le code pour générer n'importe quelle quantité d'enregistrements de données que vous souhaitez. pour V2.x. Je ne sais pas si 3.x modifie la licence.
Han Zheng

Vous pouvez également vérifier Data Constructor
Agnius Vasiliauskas

Réponses:


41

Jetez un œil à databene benerator , un générateur de données de test qui se rapproche de vos besoins.

  • il peut générer des données pour une définition de table existante (ou même anonymiser les données de production)
  • il peut générer de grands ensembles de données (taille illimitée)
  • il prend en charge divers formats d'entrée (CSV, Flat Files, DBUnit) et de sortie (CSV, Flat Files, DBUnit, XML, Excel, Scripts)
  • il peut être utilisé en ligne de commande ou via un plugin maven
  • c'est open source et personnalisable

J'essaierais.

BTW, une liste de produits similaires est disponible sur le site Web de databene benerator.


quelqu'un a eu du succès avec son utilisation? J'ai essayé le, mais benerator-wizard génère un fichier pom.xml invalide (pour l'option "Populate database"). De plus, opter pour l'une des démos (hsqldb) avec maven entraîne également des erreurs. Pour moi, il semble que l'outil ne soit pas en bon état, il ne vaut donc pas la peine de perdre du temps avec lui.
Peter Butkovic


6

Essayez http://www.mockaroo.com

C'est un outil conçu par mon entreprise pour tester nos propres applications. Nous l'avons rendu gratuit pour tout le monde. Il s'agit essentiellement du joyau rubis de faux avec une application Web qui l'entoure. Vous pouvez générer des données aux formats CSV, txt ou SQL. J'espère que cela t'aides.


Merci pour le conseil, je vais le vérifier!
Bill Karwin

5

Je sais que vous avez dit que vous recherchiez un outil gratuit, mais c'est un cas où je suggérerais que dépenser 295 $ vous remboursera rapidement en temps gagné. J'utilise l'outil RedGate SQL Data Generator depuis un an et c'est, pour être bref, un outil génial. Il permet de définir des dépendances entre les colonnes, génère des données réalistes pour les objets métier tels que les numéros de téléphone, les URL, les noms, etc. Je peux honnêtement affirmer que cet outil a été rentable à maintes reprises.


Oui, je ne suis pas opposé à l'idée de dépenser 295 $ pour économiser plusieurs centaines de dollars en temps de développement. Merci pour le plomb!
Bill Karwin

2

Si vous cherchez ou souhaitez utiliser quelque chose de spécifique à MySQL, vous pouvez jeter un œil à Super Smack . Il est actuellement maintenu par Tony Bourke.

Super Smack vous permet de générer des données aléatoires à insérer dans vos tables de base de données. Il est personnalisable, vous permettant d'utiliser le fichier compressé words.dat ou toute donnée de test de votre choix.

Une des bonnes choses à ce sujet est que la ligne de commande est hautement personnalisable. Il y a quelques exemples d'utilisation assez décents dans le livre High Performance MySQL qui est également extrait ici .

Je ne sais pas si cela correspond à ce que vous recherchez, mais juste une pensée.


Cela semble prometteur! Dit qu'il prend en charge PostgreSQL ainsi que MySQL. Merci pour le lien.
Bill Karwin

2

Un script Ruby avec l'un des faux générateurs de données disponibles devrait vous suffire.

http://faker.rubyforge.org/ est l'un de ces joyaux. Malheureusement, cela ne répond pas à toutes vos exigences.

En voici une autre: http://random-data.rubyforge.org/

Et un tutoriel pour utiliser Faker: http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE: Flexibilité pour générer des données pour une définition de table existante. Combinez la gemme Faker avec l'un des ORM disponibles. ActiveRecord serait probablement le plus simple.


Avez-vous essayé d'effectuer un chargement en masse de> 1 million de lignes, une ligne à la fois via une interface ActiveRecord? Je ne suis pas optimiste quant au temps d’achèvement.
Bill Karwin

Aussi, j'ai utilisé la gemme Faker aujourd'hui dans certaines étapes de Cucumber Feature et son SLO W. Donc, mon score jusqu'à présent: ActiveRecord -1; Faker -1 Je ne vais pas si bien. :)
brendanjerwin

2

Normalement très coûteux, mais si vous êtes un petit éditeur de logiciels indépendant, vous pouvez obtenir Visual Studio 2008 Database Edition à un prix très avantageux, voir le pouvoir et le bizspark promotions. Il fournit beaucoup plus de fonctionnalités que la simple génération de données de test (intégration avec SCC, test unitaire, refactoring de base de données, etc.)

Comme j'aime le fait que les outils Red-Grate soient si faciles à apprendre, je regarderais toujours SQL Data Generator


Ouais c'est moins cher, de l'ordre du même prix que l'outil de RedGate, mais en plus il faut se qualifier comme ISV et cela signifie acheter d'autres choses. Merci pour le lien quand même, il ne fait aucun doute qu'il sera utile à quelqu'un. +1
Bill Karwin

2

un outil qui ne devrait vraiment pas manquer dans la liste est le générateur de données de Datanamic qui remplit directement les bases de données ou génère des scripts d'insertion, possède une grande collection de générateurs préinstallés (et prend en charge plusieurs bases de données ...

http://www.datanamic.com/datagenerator/index.html


Merci pour la suggestion. Il convient de noter que c'est pour la plate-forme Windows uniquement et qu'il coûte 799 $.
Bill Karwin

1

Je sais que vous ne cherchez pas de texte lorem ipsum; mais au cas où quelqu'un d'autre chercherait un véritable générateur de lorem ipsum et trouverait ce fil: lipsum.com fait un excellent travail.


Merci pour le lien, mais oui ce n'est pas ce que je cherchais.
Bill Karwin

Il y a aussi un plugin pour Firefox appelé Dummy Lipsum, c'est utile! Désolé, je ne peux pas aider Bill :(
alex

1

Pas gratuit, mais Visual Studio 2008 Database Edition est une bonne alternative et offre beaucoup plus de fonctionnalités (Intégration avec SCC, Unit Testing, DB Refactoring, etc ...)


Semble être disponible uniquement via un abonnement MSDN qui coûte 5469 $ par an. Pour ce montant, je pourrais embaucher des étudiants pour créer des données de test et les saisir.
Bill Karwin

1

J'utilise un outil appelé Datatect :

  1. Génère des données dans des fichiers plats ou dans toute base de données compatible ODBC.
  2. Extensible via VBScript.
  3. Référentiellement conscient; remplira les clés étrangères avec les valeurs de la table parent.
  4. Les données sont sensibles au contexte; ville, état et numéros de téléphone pour les codes postaux, les prénoms et les titres donnés avec le sexe.
  5. Peut créer des types de données complexes et personnalisés.
  6. Générez plus de 2 milliards de noms propres, noms commerciaux, adresses, villes, états et codes postaux.

J'ai utilisé cet outil pour générer jusqu'à 40 000 000 de lignes de données dans une base de données SQLServer et 8 000 000 de lignes de données dans une base de données Oracle.

Je ne suis en aucun cas affilié à Banner Systems, juste un client satisfait.


Cela semble être une option prometteuse. Merci pour le lien. +1 Cependant, je ne développe pas sur Windows comme plate-forme principale, désolé de ne pas l'avoir spécifié dans ma question.
Bill Karwin


1

Pour OS X, il existe Data Creator (7 USD). Le téléchargement est gratuit à des fins de test. Vous pouvez l'utiliser pour évaluer le logiciel et ses fonctionnalités.

Il nécessite OS X Lion ou successif. Il peut générer de nombreux types de champs différents et dispose d'un mode d'exportation personnalisé ainsi que de certains prédéfinis (TSV, CSV, table Html, page Web avec table à l'intérieur).

http://www.tensionsoftware.com/osx/datacreator/

ici sur l'App Store:

https://itunes.apple.com/us/app/data-creator/id491686136?mt=12


1

Vous pouvez utiliser DbSchema, www.dbschema.com, c'est un outil de gestion de base de données et il dispose d'un générateur de données aléatoires pour peupler votre base de données.


0

Pas de réponse directe à votre question, mais cela peut être utile pour certains types de données:

Fake Name Generator peut être utile - http://www.fakenamegenerator.com/ , pas pour tout, mais pour les comptes d'utilisateurs ou des trucs comme ça. AFAIK Ils fournissent un support pour la commande en gros.


Oui, j'ai jeté un coup d'œil mais cela ne semble pas offrir la flexibilité que je recherche. Merci quand même pour le lien.
Bill Karwin

0

+1 pour Benerator: j'ai essayé 3 ou 4 des autres outils proposés (y compris dbmonster) mais j'ai trouvé que Benerator était très rapide, fournissait des données réalistes et était flexible. J'ai également reçu des commentaires très rapides et utiles du créateur de l'outil lorsque j'ai posté sur le forum.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.