Tools zum Generieren von Mock-Daten? [geschlossen]


104

Ich suche nach Empfehlungen für ein gutes, kostenloses Tool zum Generieren von Beispieldaten zum Laden in Testdatenbanken. Analog dazu etwas, das " Lorem Ipsum " -Text für jedes RDBMS erzeugt. Zu den Funktionen, nach denen ich suche, gehören:

  • Flexibilität beim Generieren von Daten für eine vorhandene Tabellendefinition.
  • Möglichkeit, kleine und große Datenmengen (> 1 Million Zeilen oder mehr) zu generieren.
  • Generieren Sie im SQL-Skriptformat ( INSERTAnweisungen) oder in einem Flatfile-Format, das für den Massenimport geeignet ist (was normalerweise schneller ist).
  • Eine Befehlszeilenschnittstelle für einfaches Scripting.
  • Erweiterbares Open Source, geschrieben in einer dynamischen Sprache (dies sind nette Dinge, keine starken Anforderungen).

PS: Ich habe in StackOverflow nach einer doppelten Frage gesucht, aber keine gefunden. Wenn es einen gibt, bin ich dankbar, einen Hinweis darauf zu bekommen.


Vielen Dank für die tollen Antworten an alle! Ich sollte meine Anforderungen dahingehend ändern, dass ich Mac OS X als meine primäre Entwicklungsumgebung und nicht Windows verwende (obwohl ich gesagt habe, dass eine Befehlszeilenschnittstelle wünschenswert ist und Windows praktisch ausschließt). Die Windows-spezifischen Vorschläge werden jedoch zweifellos für andere Leser dieser Frage nützlich sein. Vielen Dank.


Hier ist meine Schlussfolgerung:

  • GenerateData:
    • PHP-Web-App-Oberfläche, keine Befehlszeile
    • beschränkt auf das Generieren von 200 Datensätzen (oder zahlen Sie 20 US-Dollar für die Lizenz zum Generieren von 5.000 Datensätzen)
  • RedGate SQL-Datengenerator
    • nicht kostenlos, Preis 295 $
    • erfordert Windows, .NET, SQL Server
  • Visual Studio 2008 Database Edition
    • erfordert Windows
    • erfordert ein teures MSDN- oder ISV-Abonnement
  • Banner Datadect
    • nicht kostenlos, Preis 595 $
    • benötigt Windows (?)
    • Keine Unterstützung für MySQL (?)
    • GUI, nicht befehlszeilen- oder skriptfähig
  • Ruby Faker Edelstein
    • viel zu langsam, um ActiveRecord zum Laden von Massendaten zu verwenden
  • Super Smack
    • Hauptsächlich ein Lasttest-Tool mit integriertem Zufallsdatengenerator
    • trotzdem ziemlich einfach zu bedienen
    • Insgesamt ein gutes Zweitplatziertes
  • Databene Benerator
    • beste Lösung für meine Bedürfnisse
    • XML-Skripte, kompatibel mit DbUnit
    • Open Source (GPL) Java-Code
    • Befehlszeilenverwendung
    • Zugriff auf viele Datenbanken direkt über JDBC

Dies ist von Natur aus ähnlich und in seinem eigenen Licht interessant: en.wikipedia.org/wiki/Fuzz_testing
Trauer

GenerateData ist eine PHP-Anwendung. Sie können den Code hacken, um eine beliebige Anzahl von Datensätzen zu generieren. für V2.x. Ich weiß nicht, ob 3.x die Lizenz ändert.
Han Zheng

Antworten:


41

Schauen Sie sich Databene Benerator an , einen Testdatengenerator, der Ihren Anforderungen sehr nahe kommt.

  • Es kann Daten für eine vorhandene Tabellendefinition generieren (oder sogar Produktionsdaten anonymisieren).
  • es kann einen großen Datensatz erzeugen (unbegrenzte Größe)
  • Es unterstützt verschiedene Eingabe- (CSV, Flat Files, DBUnit) und Ausgabeformate (CSV, Flat Files, DBUnit, XML, Excel, Skripte).
  • Es kann in der Kommandozeile oder über ein Maven-Plugin verwendet werden
  • Es ist Open Source und anpassbar

Ich würde es versuchen.

Übrigens ist eine Liste ähnlicher Produkte auf der Website von databaseene benerator verfügbar.


hatte jemand Erfolg mit seiner Verwendung? Ich habe es versucht, aber der Benerator-Assistent generiert eine ungültige pom.xml-Datei (für die Option "Datenbank füllen"). Darüber hinaus führt die Auswahl einer der Demos (hsqldb) mit maven ebenfalls zu Fehlern. Mir scheint, das Werkzeug ist nicht in einem guten Zustand, daher lohnt es sich nicht, die Zeit damit zu verlieren.
Peter Butkovic


6

Versuchen Sie es mit http://www.mockaroo.com

Dies ist ein Tool, das mein Unternehmen entwickelt hat, um unsere eigenen Anwendungen zu testen. Wir haben es für jedermann kostenlos gemacht. Es ist im Grunde das Rubinjuwel Forgery mit einer Web-App. Sie können Daten in den Formaten CSV, txt oder SQL generieren. Hoffe das hilft.


Danke für den Tipp, ich werde es mir ansehen!
Bill Karwin

5

Ich weiß, dass Sie gesagt haben, Sie suchen nach einem kostenlosen Tool, aber dies ist ein Fall, in dem ich vorschlagen würde, dass Sie mit Ausgaben von 295 US-Dollar schnell Zeit sparen. Ich benutze das RedGate-Tool SQL Data Generator seit einem Jahr und es ist, um es kurz zu machen, ein großartiges Tool. Es ermöglicht das Festlegen von Abhängigkeiten zwischen Spalten, generiert realistische Daten für Geschäftsobjekte wie Telefonnummern, URLs, Namen usw. Ich kann ehrlich sagen, dass sich dieses Tool immer wieder bezahlt gemacht hat.


Ja, ich bin nicht abgeneigt, 295 Dollar auszugeben, um viele Hundert Entwicklungszeit zu sparen. Danke für die Führung!
Bill Karwin

2

Wenn Sie etwas MySQL-spezifisches suchen oder verwenden möchten, können Sie sich Super Smack ansehen . Es wird derzeit von Tony Bourke gepflegt.

Mit Super Smack können Sie zufällige Daten generieren, die in Ihre Datenbanktabellen eingefügt werden. Es ist anpassbar, sodass Sie die gepackte Datei words.dat oder Testdaten Ihrer Wahl verwenden können.

Eines der schönen Dinge daran ist, dass die Befehlszeile in hohem Maße anpassbar ist. Es gibt einige recht anständige Anwendungsbeispiele in dem Buch High Performance MySQL, das auch hier als Auszug aufgeführt ist .

Ich bin mir nicht sicher, ob das in der Richtung ist, nach der Sie suchen, sondern nur ein Gedanke.


Sieht vielversprechend aus! Sagt, es unterstützt sowohl PostgreSQL als auch MySQL. Danke für den Link.
Bill Karwin

2

Ein Ruby-Skript mit einem der verfügbaren gefälschten Datengeneratoren sollte Ihnen gut tun.

http://faker.rubyforge.org/ ist ein solches Juwel. Leider erfüllt dies nicht alle Ihre Anforderungen.

Hier ist eine andere: http://random-data.rubyforge.org/

Und ein Tutorial zur Verwendung von Faker: http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE: Flexibilität beim Generieren von Daten für eine vorhandene Tabellendefinition. Kombiniere den Faker-Edelstein mit einem der verfügbaren ORMs. ActiveRecord wäre wahrscheinlich am einfachsten.


Haben Sie versucht, eine Massenlast von> 1 Million Zeilen zeilenweise über eine ActiveRecord-Schnittstelle auszuführen? Ich bin nicht optimistisch, was die Zeit bis zur Fertigstellung angeht.
Bill Karwin

Außerdem habe ich das Faker-Juwel heute in einigen Schritten des Gurkenfeatures und dessen SLO W verwendet. Meine bisherige Punktzahl: ActiveRecord -1; Faker -1 Mir geht es nicht so gut. :)
brendanjerwin

2

Normalerweise sehr teuer, aber wenn man ein kleines ISV sind , können Sie erhalten Visual Studio 2008 Database Edition sehr billig finden Sie in den empower und BizSpark Promotionen. Es bietet viel mehr Funktionen als nur das Generieren von Testdaten (Integration mit SCC, Unit Testing, DB Refactoring usw.)

Da mir die Tatsache gefällt, dass Red-Grate-Tools so einfach zu erlernen sind, würde ich mich immer noch mit SQL Data Generator befassen


Ja, es ist weniger kostspielig, in der Größenordnung des gleichen Preises wie das RedGate-Tool, aber zusätzlich muss man sich als ISV qualifizieren und das bedeutet, andere Sachen zu kaufen. Trotzdem danke für den Link, ohne Zweifel wird er für jemanden nützlich sein. +1
Bill Karwin

2

Ein Tool, das in der Liste wirklich nicht fehlen sollte, ist der Datengenerator von Datanamic, der Datenbanken direkt auffüllt oder Einfügeskripte generiert, über eine große Sammlung vorinstallierter Generatoren verfügt (und mehrere Datenbanken unterstützt ...).

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


Danke für den Vorschlag. Es sollte beachtet werden, dass es nur für die Windows-Plattform ist und 799 US-Dollar kostet.
Bill Karwin

1

Ich weiß, dass Sie nicht nach tatsächlichem Lorem-Ipsum-Text suchen. aber für den Fall, dass jemand anderes nach einem tatsächlichen Lorem-Ipsum-Generator sucht und diesen Thread findet: lipsum.com macht einen großartigen Job.


Danke für den Link, aber ja, das habe ich nicht gesucht.
Bill Karwin

Es gibt auch ein Plugin für Firefox namens Dummy Lipsum, es ist nützlich! Entschuldigung, ich kann Bill nicht helfen :(
Alex

1

Nicht kostenlos, aber Visual Studio 2008 Database Edition ist eine gute Alternative und bietet viel mehr Funktionen (Integration mit SCC, Unit Testing, DB Refactoring usw.)


Scheint nur über ein MSDN-Abonnement verfügbar zu sein, das 5469 USD pro Jahr kostet. Für diesen Geldbetrag könnte ich einige College-Studenten einstellen, um Testdaten zu erstellen und
Bill Karwin

1

Ich benutze ein Tool namens Datatect :

  1. Generiert Daten in Flatfiles oder in ODBC-kompatiblen Datenbanken.
  2. Erweiterbar über VBScript.
  3. Referenziell bewusst; füllt Fremdschlüssel mit Werten aus der übergeordneten Tabelle.
  4. Daten sind kontextsensitiv; Stadt-, Bundesland- und Telefonnummern für bestimmte Postleitzahlen, Vornamen und Titel mit Geschlecht.
  5. Kann benutzerdefinierte, komplexe Datentypen erstellen.
  6. Generieren Sie über 2 Milliarden Eigennamen, Firmennamen, Straßenadressen, Städte, Bundesstaaten und Postleitzahlen.

Ich habe dieses Tool verwendet, um bis zu 40.000.000 Datenzeilen in einer SQLServer-Datenbank und 8.000.000 Datenzeilen in einer Oracle-Datenbank zu generieren.

Ich bin in keiner Weise mit Banner Systems verbunden, sondern nur ein zufriedener Kunde.


Das sieht nach einer vielversprechenden Option aus. Danke für den Link. +1 Ich entwickle jedoch nicht unter Windows als meine primäre Plattform. Leider habe ich das in meiner Frage nicht angegeben.
Bill Karwin


1

Für OS X gibt es Data Creator (7 US-Dollar). Der Download ist zu Testzwecken kostenlos. Sie können es verwenden, um die Software und ihre Funktionen zu bewerten.

Es erfordert OS X Lion oder sukzessive. Es kann viele verschiedene Feldtypen generieren und verfügt über einen benutzerdefinierten Exportmodus sowie einige Voreinstellungen (TSV, CSV, HTML-Tabelle, Webseite mit Tabelle im Inneren).

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

hier im App Store:

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


1

Sie können DbSchema verwenden. Www.dbschema.com ist ein Datenbankverwaltungstool und verfügt über einen Zufallsdatengenerator zum Auffüllen Ihrer Datenbank.


0

Keine direkte Antwort auf Ihre Frage, aber dies kann für bestimmte Arten von Daten hilfreich sein:

Fake Name Generator kann nützlich sein - http://www.fakenamegenerator.com/ , nicht für alles außer für Benutzerkonten oder ähnliches. AFAIK Sie bieten Unterstützung für Großbestellungen.


Ja, ich habe es mir angesehen, aber es scheint nicht die Flexibilität zu bieten, die ich suche. Trotzdem danke für den Link.
Bill Karwin

0

+1 für Benerator: Ich habe 3 oder 4 der anderen angebotenen Tools (einschließlich dbmonster) ausprobiert, aber festgestellt, dass Benerator sehr schnell ist, realistische Daten liefert und flexibel ist. Ich habe auch sehr schnelles und hilfreiches Feedback vom Entwickler des Tools erhalten, als ich im Forum gepostet habe.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.