Narzędzia do generowania pozorowanych danych? [Zamknięte]

104

Szukam rekomendacji dobrego, darmowego narzędzia do generowania przykładowych danych w celu załadowania do testowych baz danych. Analogicznie, coś, co tworzy tekst „ lorem ipsum ” dla dowolnego RDBMS. Funkcje, których szukam, obejmują:

  • Elastyczność w generowaniu danych dla istniejącej definicji tabeli.
  • Możliwość generowania małych i dużych zestawów danych (> 1 milion wierszy lub więcej).
  • Generuj w formacie skryptu SQL ( INSERTinstrukcje) lub w płaskim formacie pliku odpowiednim do importu zbiorczego (który jest zwykle szybszy).
  • Interfejs wiersza poleceń do łatwego tworzenia skryptów.
  • Rozszerzalne, open source, napisane w dynamicznym języku (są to przyjemne w użyciu, nie są surowe wymagania).

PS: Szukałem zduplikowanego pytania w StackOverflow, ale nie znalazłem żadnego. Jeśli istnieje, będę wdzięczny za wskazanie go.


Dzięki za świetne odpowiedzi wszystkim! Powinienem zmienić moje wymagania, aby używać Mac OS X jako mojego podstawowego środowiska programistycznego, a nie Windows (chociaż powiedziałem, że interfejs wiersza poleceń jest pożądany, a to praktycznie wyklucza Windows). Jednak sugestie dotyczące systemu Windows bez wątpienia będą przydatne dla innych czytelników tego pytania, więc dziękuję.


Oto mój wniosek:

  • GenerateData:
    • Interfejs aplikacji internetowej PHP, a nie wiersz poleceń
    • ograniczone do wygenerowania 200 rekordów (lub zapłać 20 $ za licencję na generowanie 5000 rekordów)
  • Generator danych SQL RedGate
    • nie za darmo, cena 295 USD
    • wymaga systemu Windows, .NET, SQL Server
  • Visual Studio 2008 Database Edition
    • wymaga systemu Windows
    • wymaga kosztownej subskrypcji MSDN lub ISV
  • Banner Datadect
    • nie za darmo, cena 595 USD
    • wymaga systemu Windows (?)
    • brak wsparcia dla MySQL (?)
    • GUI, a nie wiersz poleceń ani skryptów
  • Klejnot Ruby Faker
    • zbyt wolno, aby używać ActiveRecord do masowego ładowania danych
  • Super Smack
    • głównie narzędzie do testowania obciążenia, z wbudowanym generatorem danych losowych
    • niemniej jednak dość prosty w użyciu
    • ogólnie dobre narzędzie zajmujące drugie miejsce
  • Databene Benerator
    • najlepsze rozwiązanie dla moich potrzeb
    • Skrypty XML zgodne z DbUnit
    • kod Java open source (GPL)
    • użycie wiersza poleceń
    • dostęp do wielu baz danych bezpośrednio przez JDBC
Bill Karwin
źródło
Ma to podobny charakter i jest interesujące we własnym świetle: en.wikipedia.org/wiki/Fuzz_testing
opłakuj
GenerateData to aplikacja php. możesz zhakować kod, aby wygenerować dowolną ilość rekordów danych. dla V2.x. Nie wiem, czy 3.x zmieni licencję.
Han Zheng,
Możesz również sprawdzić Data Constructor
Agnius Vasiliauskas,

Odpowiedzi:

41

Zapoznaj się z generatorem databene , generatorem danych testowych, który jest zbliżony do Twoich wymagań.

  • może generować dane dla istniejącej definicji tabeli (lub nawet anonimizować dane produkcyjne)
  • może generować duży zbiór danych (nieograniczony rozmiar)
  • obsługuje różne dane wejściowe (CSV, Flat Files, DBUnit) i format wyjściowy (CSV, Flat Files, DBUnit, XML, Excel, Scripts)
  • może być używany w wierszu poleceń lub za pośrednictwem wtyczki maven
  • jest open source i konfigurowalny

Spróbowałbym.

Przy okazji, lista podobnych produktów jest dostępna na stronie internetowej generatora databene.

Pascal Thivent
źródło
ktoś odniósł sukces z jego użyciem? Wypróbowałem to, ale kreator beneratora generuje nieprawidłowy plik pom.xml (dla opcji "Wypełnij bazę danych"). Co więcej, wybranie jednego z dem (hsqldb) z maven również powoduje błędy. Wydaje mi się, że narzędzie nie jest w dobrym stanie, więc nie warto tracić z nim czasu.
Peter Butkovic
23

Wygląda to całkiem obiecująco: generatedata.com . Open-source, ma wiele wbudowanych typów danych.

Istnieje kilka innych wymienionych tutaj: Testowe (przykładowe) generatory danych . Nie mam doświadczenia z żadnym z nich, ale kilka na tej liście wygląda na całkiem przyzwoitych.

Chad Birch
źródło
6

Wypróbuj http://www.mockaroo.com

To narzędzie stworzone przez moją firmę, aby pomóc w testowaniu naszych własnych aplikacji. Zrobiliśmy to za darmo dla każdego. Jest to w zasadzie rubinowy klejnot Forgery z owiniętą wokół niego aplikacją internetową. Możesz generować dane w formacie CSV, txt lub SQL. Mam nadzieję że to pomoże.

mockaroodev
źródło
Dzięki za wskazówkę, sprawdzę to!
Bill Karwin,
5

Wiem, że powiedziałeś, że szukasz darmowego narzędzia, ale jest to jeden przypadek, w którym sugerowałbym, że wydanie 295 USD zwróci się szybko w zaoszczędzonym czasie. Używam narzędzia RedGate SQL Data Generator przez ostatni rok i jest to, mówiąc krótko, niesamowite narzędzie. Pozwala na ustalanie zależności między kolumnami, generuje realistyczne dane dla obiektów biznesowych, takich jak numery telefonów, adresy URL, nazwiska itp. Mogę szczerze stwierdzić, że to narzędzie wielokrotnie się zwróciło.

KevDog
źródło
Tak, nie mam nic przeciwko wydaniu 295 dolarów, aby zaoszczędzić setki czasu na programowanie. Dzięki za prowadzenie!
Bill Karwin
2

Jeśli szukasz lub chcesz użyć czegoś specyficznego dla MySQL, możesz rzucić okiem na Super Smack . Obecnie opiekuje się nim Tony Bourke.

Super Smack umożliwia generowanie losowych danych do wstawienia do tabel bazy danych. Jest konfigurowalny, co pozwala na użycie spakowanego pliku words.dat lub dowolnych wybranych danych testowych.

Jedną z fajnych rzeczy jest to, że jest to wiersz poleceń, który można w dużym stopniu dostosować. Istnieje kilka całkiem przyzwoitych przykładów użycia w książce High Performance MySQL, która jest również tutaj fragmentaryczna .

Nie jestem pewien, czy jest to zgodne z tym, czego szukasz, ale to tylko myśl.

jonstjohn
źródło
Wygląda obiecująco! Mówi, że obsługuje PostgreSQL, a także MySQL. Dzięki za link.
Bill Karwin
2

Skrypt Ruby z jednym z dostępnych fałszywych generatorów danych powinien wystarczyć.

http://faker.rubyforge.org/ to jedna z takich perełek. Niestety, to nie spełnia wszystkich Twoich wymagań.

Oto kolejny: http://random-data.rubyforge.org/

I tutorial do używania Fakera: http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE: Elastyczność w generowaniu danych dla istniejącej definicji tabeli. Połącz klejnot oszusta z jednym z dostępnych ORMów. Najłatwiejszy byłby prawdopodobnie ActiveRecord.

brendanjerwin
źródło
Czy próbowałeś wykonać ładowanie zbiorcze> 1 miliona wierszy, jeden wiersz na raz za pośrednictwem interfejsu ActiveRecord? Nie jestem optymistą co do czasu zakończenia.
Bill Karwin
Ponadto użyłem dziś klejnotu Fakera w niektórych krokach funkcji Cucumber i jego SLO W. Tak więc mój dotychczasowy wynik: ActiveRecord -1; Faker -1 Nie radzę sobie tak dobrze. :)
brendanjerwin
2

Zwykle bardzo kosztowne, ale jeśli są małe ISV można uzyskać Visual Studio 2008 Database Edition bardzo tanio, zobacz Empower i BizSpark promocjach. Zapewnia o wiele więcej funkcji niż tylko generowanie danych testowych (integracja z SCC, testy jednostkowe, refaktoryzacja DB itp.)

Ponieważ podoba mi się fakt, że narzędzia Red-Grate są tak łatwe do nauczenia, nadal patrzę na SQL Data Generator

Ian Ringrose
źródło
Tak, jest to mniej kosztowne, na zamówienie w tej samej cenie co narzędzie RedGate, ale dodatkowo musisz kwalifikować się jako ISV, a to oznacza kupowanie innych rzeczy. Mimo wszystko dzięki za link, bez wątpienia komuś się przyda. +1
Bill Karwin,
2

narzędziem, którego naprawdę nie powinno zabraknąć na liście, jest Generator danych firmy Datanamic, który bezpośrednio zapełnia bazy danych lub generuje skrypty wstawiania, ma dużą kolekcję wstępnie zainstalowanych generatorów (i obsługuje wiele baz danych ...

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

user2072139
źródło
Dzieki za sugestie. Należy zauważyć, że jest przeznaczony tylko dla platformy Windows i kosztuje 799 USD.
Bill Karwin,
1

Wiem, że nie szukasz prawdziwego tekstu lorem ipsum; ale na wypadek, gdyby ktoś inny szukał rzeczywistego generatora lorem ipsum i znalazł ten wątek: lipsum.com wykonuje świetną robotę.

Jenn D.
źródło
Dzięki za link, ale tak, to nie jest to, czego szukałem.
Bill Karwin,
Jest też wtyczka do Firefoksa o nazwie Dummy Lipsum, jest przydatna! Przepraszam, nie mogę pomóc Billowi :(
alex
1

Nie jest darmowy, ale Visual Studio 2008 Database Edition jest dobrą alternatywą i zapewnia dużo większą funkcjonalność (integracja z SCC, testy jednostkowe, refaktoryzacja bazy danych itp.)

bastos.sergio
źródło
Wydaje się być dostępny tylko w ramach subskrypcji MSDN, która kosztuje 5469 USD rocznie. Za te pieniądze mógłbym zatrudnić kilku studentów, aby stworzyli dane testowe i wpisali je.
Bill Karwin,
1

Używam narzędzia o nazwie Datatect :

  1. Generuje dane do plików płaskich lub dowolnej bazy danych zgodnej z ODBC.
  2. Rozszerzalny przez VBScript.
  3. Świadomy referencyjnie; zapełni klucze obce wartościami z tabeli nadrzędnej.
  4. Dane uwzględniają kontekst; miasto, województwo i numery telefonów dla podanych kodów pocztowych, imiona i tytuły wraz z płcią.
  5. Potrafi tworzyć niestandardowe, złożone typy danych.
  6. Wygeneruj ponad 2 miliardy nazw własnych, nazw firm, adresów, miast, stanów i kodów pocztowych.

Użyłem tego narzędzia do wygenerowania aż 40 000 000 wierszy danych do bazy danych SQLServer i 8 000 000 wierszy danych do bazy danych Oracle.

W żaden sposób nie jestem związany z Banner Systems, tylko zadowolony klient.

Patrick Cuff
źródło
To wygląda na obiecującą opcję. Dzięki za link. +1 Jednak nie rozwijam się na Windowsie jako mojej podstawowej platformie, przepraszam, że nie wskazałem tego w moim pytaniu.
Bill Karwin
1

W przypadku OS X dostępny jest Kreator danych (7 USD). Pobieranie jest bezpłatne do celów testowych. Możesz go użyć do oceny oprogramowania i jego funkcji.

Wymaga systemu OS X Lion lub kolejnego. Może generować wiele różnych typów pól i ma niestandardowy tryb eksportu oraz pewne ustawienia wstępne (TSV, CSV, tabela Html, strona internetowa z tabelą w środku).

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

tutaj w App Store:

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

RPT
źródło
1

Możesz użyć DbSchema, www.dbschema.com jest to narzędzie do zarządzania bazą danych i ma generator losowych danych do zapełniania bazy danych.

user2143407
źródło
0

Nie jest to bezpośrednia odpowiedź na Twoje pytanie, ale może być pomocna w przypadku niektórych rodzajów danych:

Generator fałszywych nazw może być przydatny - http://www.fakenamegenerator.com/ , nie do wszystkiego, ale do kont użytkowników i tym podobnych. AFAIK Zapewniają obsługę zamówienia zbiorczego.

dr. zło
źródło
Tak, przyjrzałem się, ale wydaje się, że nie oferuje elastyczności, której szukam. Mimo wszystko dzięki za link.
Bill Karwin
0

+1 dla Beneratora: Wypróbowałem 3 lub 4 inne oferowane narzędzia (w tym dbmonster), ale uznałem, że Benerator jest bardzo szybki, dostarcza realistyczne dane i jest elastyczny. Otrzymałem również bardzo szybką i pomocną informację zwrotną od twórcy narzędzia, kiedy pisałem na forum.

davek
źródło