web-dev-qa-db-fra.com

Outils pour générer des données factices?

Je cherche des recommandations sur un bon outil gratuit pour générer des échantillons de données dans le but de les charger dans des bases de données de test. Par analogie, quelque chose qui produit " lorem ipsum " texte pour tout SGBDR. Les caractéristiques que je recherche comprennent:

  • Flexibilité de 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érez au format de script SQL (instructions INSERT) ou dans un format de fichier plat adapté à l'importation en bloc (ce qui est généralement plus rapide).
  • Une interface de ligne de commande pour un script facile.
  • Extensible, open source, écrit dans un langage dynamique (ce sont des exigences simples, pas des exigences fortes).

PS: J'ai cherché une question en double sur StackOverflow, mais je n'en ai pas trouvé. S'il y en a un, je vous serais reconnaissant de bien vouloir l'indiquer.


Merci pour les bonnes réponses à tous! Je devrais modifier les conditions requises pour utiliser Mac OS X comme environnement de développement principal, et non pour Windows (bien que j’ai dit que l’interface de ligne de commande était souhaitable, et que pratiquement exclut Windows). Les suggestions spécifiques à Windows seront sans doute utiles aux autres lecteurs de cette question, cependant, alors merci.


Voici ma conclusion:

  • GenerateData:
    • Interface de l'application Web PHP, pas de ligne de commande
    • limité à générer 200 enregistrements (ou payer 20 $ pour une licence pour générer 5 000 enregistrements)
  • RedGate SQL Data Generator
    • pas gratuit, prix $ 295
    • nécessite Windows, .NET, SQL Server
  • Visual Studio 2008 Database Edition
    • 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 ni de script
  • Gemme Ruby Faker
    • trop lent à utiliser ActiveRecord pour le chargement de données en vrac
  • 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
    • globalement, un bon outil de runner-up
  • Générateur de databène
    • meilleure solution pour mes besoins
    • Scripts XML, compatibles avec DbUnit
    • code source ouvert (GPL) Java code
    • utilisation en ligne de commande
    • accéder à de nombreuses bases de données directement via JDBC
104
Bill Karwin

Jetez un coup d'œil à databene benerator , un générateur de données de test qui ressemble à vos exigences.

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

Je voudrais essayer.

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

41
Pascal Thivent

Cela semble assez prometteur: createdata.com . Open-source, a beaucoup de types de données intégrés.

Il en existe plusieurs autres ici: Générateurs de données de test (échantillon) . Je n'ai aucune expérience avec aucun d'entre eux, mais quelques-uns sur cette liste semblent pouvoir être assez décents.

23
Chad Birch

Essayez http://www.mockaroo.com

C’est un outil que mon entreprise a conçu pour tester nos propres applications. Nous l'avons rendu gratuit pour quiconque. Il s’agit en fait du bijou Forgery Ruby) entouré d’une application Web. Vous pouvez générer des données aux formats CSV, txt ou SQL. Nous espérons que cela vous aidera.

6
mockaroodev

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 rembourse rapidement en gain de temps. J'utilise l'outil RedGate SQL Data Generator depuis un an et il est, en 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 toujours été rentable.

5
KevDog

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

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

Voici un 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é de générer des données pour une définition de table existante. Combinez le joyau Faker avec l'un des ORM disponibles. ActiveRecord serait probablement le plus facile.

2
brendanjerwin

le générateur de données de Datanamic est un outil à ne pas manquer dans la liste. Il permet de remplir directement des bases de données ou de générer des scripts d'insertion, dispose d'une vaste collection de générateurs préinstallés (et prend en charge plusieurs bases de données ...

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

2
user2072139

Si vous cherchez ou souhaitez utiliser quelque chose de spécifique à MySQL, vous pouvez jeter un oeil à 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 et vous permet d’utiliser le fichier empaqueté words.dat ou les données de test de votre choix.

L’un des avantages de Nice est que sa ligne de commande est hautement personnalisable. Le livre High Performance MySQL contient aussi des exemples assez décents d’utilisation - qui est également extrait ici .

Je ne sais pas si cela va dans le sens de ce que vous recherchez, mais juste une pensée.

2
jonstjohn

Normalement très coûteux, mais si vous êtes un petit ISV, vous pouvez obtenir Visual Studio 2008 Database Edition à très bas prix, consultez les promotions empower et bizspark . Il fournit beaucoup plus de fonctionnalités que de simplement générer des données de test (intégration avec SCC, tests unitaires, refactoring de bases de données, etc.).

Comme j'aime le fait que les outils de Red-Grate sont si faciles à apprendre, je voudrais quand même regarder SQL Data Generator

2
Ian Ringrose

Voici la liste de ces outils (gratuits et commerciaux): http://c2.com/cgi/wiki?TestDataGenerator

1
IgorJ

Vous pouvez utiliser DbSchema, www.dbschema.com, un outil de gestion de base de données doté d’un générateur de données aléatoires pour alimenter votre base de données.

1
user2143407

Pour OS X, il existe Data Creator (US $ 7). 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 beaucoup de types de champs différents et dispose d’un mode d’exportation personnalisé et de certains préréglages (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
RPT

Je sais que vous ne recherchez pas le texte réel de lorem ipsum; mais si quelqu'un d'autre cherche un générateur réel de lorem ipsum et trouve ce fil: lipsum.com en fait un excellent travail.

1
Jenn D.

J'utilise un outil appelé Datatect :

  1. Génère des données dans des fichiers plats ou dans toute base de données conforme à ODBC).
  2. Extensible via VBScript.
  3. Référentiellement au courant; 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, prénoms et titres avec 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 lignes de données dans une base de données SQLServer et 8 000 000 lignes de données dans une base de données Oracle.

Je ne suis aucunement affilié à Banner Systems, je suis juste un client satisfait.

1
Patrick Cuff

Pas gratuit, mais Édition de base de données Visual Studio 2008 est une bonne alternative et fournit beaucoup plus de fonctionnalités (intégration avec SCC, tests unitaires, refactoring de bases de données, etc.).

1
bastos.sergio

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 sauf pour les comptes d'utilisateurs ou des choses comme ça. AFAIK Ils fournissent un soutien pour la commande en gros.

0
dr. evil

+1 pour Benerator: J'ai essayé 3 ou 4 des autres outils proposés (y compris dbmonster), mais Benerator a été très rapide, capable de fournir des données réalistes et d'être 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.

0
davek