Strumenti per la generazione di dati fittizi? [chiuso]


104

Sto cercando consigli su uno strumento valido e gratuito per la generazione di dati di esempio allo scopo di caricarli nei database di test. Per analogia, qualcosa che produce testo " lorem ipsum " per qualsiasi RDBMS. Le caratteristiche che cerco includono:

  • Flessibilità per generare dati per una definizione di tabella esistente.
  • Capacità di generare set di dati piccoli e grandi (> 1 milione di righe o più).
  • Genera in formato script SQL (INSERT istruzioni) oppure in un formato file flat adatto all'importazione in blocco (che di solito è più veloce).
  • Un'interfaccia della riga di comando per un facile scripting.
  • Estensibile, open source, scritto in un linguaggio dinamico (questi sono requisiti piacevoli, non forti).

PS: ho cercato una domanda duplicata su StackOverflow, ma non ne ho trovata una. Se ce n'è uno, sarò grato di avere un suggerimento.


Grazie per le ottime risposte a tutti! Dovrei modificare i miei requisiti per utilizzare Mac OS X come ambiente di sviluppo principale, non Windows (anche se ho detto che l'interfaccia della riga di comando è desiderabile e questo praticamente esclude Windows). I suggerimenti specifici per Windows saranno senza dubbio utili ad altri lettori di questa domanda, quindi grazie.


Ecco la mia conclusione:

  • GenerateData:
    • Interfaccia dell'app Web PHP, non riga di comando
    • limitato alla generazione di 200 record (o pagare $ 20 per la licenza per generare 5.000 record)
  • RedGate SQL Data Generator
    • non gratuito, prezzo $ 295
    • richiede Windows, .NET, SQL Server
  • Visual Studio 2008 Database Edition
    • richiede Windows
    • richiede un costoso abbonamento a MSDN o ISV
  • Banner Datadect
    • non gratuito, prezzo $ 595
    • richiede Windows (?)
    • nessun supporto per MySQL (?)
    • GUI, non riga di comando o script
  • Gemma di Ruby Faker
    • troppo lento per utilizzare ActiveRecord per il caricamento di dati di massa
  • Super Smack
    • principalmente uno strumento di test del carico, con un generatore di dati casuali integrato
    • comunque abbastanza semplice da usare
    • nel complesso un buon secondo classificato
  • Databene Benerator
    • la migliore soluzione per le mie esigenze
    • Script XML, compatibili con DbUnit
    • codice Java open source (GPL)
    • utilizzo della riga di comando
    • accedere a molti database direttamente tramite JDBC

Questo è di natura simile ed è interessante sotto la sua luce: en.wikipedia.org/wiki/Fuzz_testing
grieve

GenerateData è un'applicazione php. puoi hackerare il codice per generare qualsiasi quantità di record di dati che desideri. per V2.x. Non so se 3.x cambia la licenza.
Han Zheng

Inoltre puoi controllare Data Constructor
Agnius Vasiliauskas

Risposte:


41

Dai un'occhiata a databene benerator , un generatore di dati di test che si avvicina alle tue esigenze.

  • può generare dati per una definizione di tabella esistente (o persino rendere anonimi i dati di produzione)
  • può generare un set di dati di grandi dimensioni (dimensione illimitata)
  • supporta vari formati di input (CSV, Flat Files, DBUnit) e di output (CSV, Flat Files, DBUnit, XML, Excel, Scripts)
  • può essere utilizzato dalla riga di comando o tramite un plugin Maven
  • è open source e personalizzabile

Ci proverò.

A proposito, un elenco di prodotti simili è disponibile sul sito web di databene benerator.


qualcuno ha avuto successo con il suo utilizzo? L'ho provato, ma benerator-wizard genera un file pom.xml non valido (per l'opzione "Populate database"). Inoltre, la scelta di uno dei demo (hsqldb) con Maven genera anche errori. A me sembra che lo strumento non sia in buone condizioni, quindi non vale la pena perdere tempo con esso.
Peter Butkovic

23

Questo sembra abbastanza promettente: generatedata.com . Open source, ha molti tipi di dati incorporati.

Ce ne sono molti altri elencati qui: Test (Sample) Data Generators . Non ho esperienza con nessuno di loro, ma alcuni in quella lista sembrano che potrebbero essere abbastanza decenti.


6

Prova http://www.mockaroo.com

Questo è uno strumento creato dalla mia azienda per testare le nostre applicazioni. Lo abbiamo reso gratuito per chiunque. È fondamentalmente la gemma rubino contraffatta con un'app Web avvolta attorno ad essa. Puoi generare dati nei formati CSV, txt o SQL. Spero che questo ti aiuti.


Grazie per il suggerimento, lo controllerò!
Bill Karwin

5

So che hai detto che stavi cercando uno strumento gratuito, ma questo è un caso in cui suggerirei che spendere $ 295 ti ripagherà rapidamente nel tempo risparmiato. Sto usando lo strumento RedGate SQL Data Generator nell'ultimo anno ed è, in breve, uno strumento fantastico. Consente di impostare le dipendenze tra le colonne, genera dati realistici per oggetti di business come numeri di telefono, URL, nomi, ecc. Posso onestamente affermare che questo strumento si è ripagato più e più volte.


Sì, non sono contrario a spendere $ 295 per risparmiare molte centinaia di tempo di sviluppo. Grazie per il vantaggio!
Bill Karwin

2

Se stai cercando o desideri utilizzare qualcosa di specifico per MySQL, potresti dare un'occhiata a Super Smack . Attualmente è mantenuto da Tony Bourke.

Super Smack ti consente di generare dati casuali da inserire nelle tabelle del tuo database. È personalizzabile e consente di utilizzare il file words.dat in pacchetto o qualsiasi dato di prova di propria scelta.

Una delle cose belle è che la riga di comando è altamente personalizzabile. Ci sono alcuni esempi di utilizzo abbastanza decenti nel libro High Performance MySQL che è anche estratto qui .

Non sono sicuro che sia sulla falsariga di ciò che stai cercando, ma è solo un pensiero.


Sembra promettente! Dice che supporta PostgreSQL e MySQL. Grazie per il collegamento.
Bill Karwin

2

Uno script Ruby con uno dei generatori di dati falsi disponibili dovrebbe andare bene.

http://faker.rubyforge.org/ è una di queste gemme. Sfortunatamente, questo non soddisfa tutte le tue esigenze.

Eccone un altro: http://random-data.rubyforge.org/

E un tutorial per l'utilizzo di Faker: http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE: flessibilità per generare dati per una definizione di tabella esistente. Combina la gemma Faker con uno degli ORM disponibili. ActiveRecord sarebbe probabilmente il più semplice.


Hai provato a eseguire un caricamento di massa di> 1 milione di righe, una riga alla volta tramite un'interfaccia ActiveRecord? Non sono ottimista sul tempo per il completamento.
Bill Karwin

Inoltre, oggi ho usato la gemma Faker in alcuni passaggi della funzione Cucumber e il suo SLO W. Quindi, il mio punteggio finora: ActiveRecord -1; Faker -1 Non sto andando così bene. :)
brendanjerwin

2

Normalmente molto costoso, ma se sei un piccolo ISV puoi ottenere Visual Studio 2008 Database Edition molto a buon mercato, vedi le promozioni empower e bizspark . Fornisce molte più funzionalità rispetto alla semplice generazione di dati di test (integrazione con SCC, Unit Testing, DB Refactoring, ecc.)

Poiché mi piace il fatto che gli strumenti Red-Grate siano così facili da imparare, guarderei comunque SQL Data Generator


Sì, è meno costoso, dell'ordine dello stesso prezzo dello strumento di RedGate, ma in più devi qualificarti come ISV e questo significa acquistare altre cose. Grazie comunque per il link, senza dubbio sarà utile per qualcuno. +1
Bill Karwin

2

uno strumento che davvero non dovrebbe mancare nella lista è il Data Generator di Datanamic che popola direttamente i database o genera script di inserimento, ha una vasta collezione di generatori preinstallati (e supporta più database ...

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


Grazie per il suggerimento. Va notato che è solo per la piattaforma Windows e costa $ 799.
Bill Karwin

1

So che non stai cercando il testo del lorem ipsum; ma nel caso in cui qualcun altro cerchi un vero generatore di lorem ipsum e trovi questo thread: lipsum.com fa un ottimo lavoro.


Grazie per il collegamento, ma sì, non è quello che stavo cercando.
Bill Karwin

C'è anche un plugin per Firefox chiamato Dummy Lipsum, è utile! Mi dispiace non posso aiutare Bill :(
alex

1

Non è gratuito, ma Visual Studio 2008 Database Edition è una buona alternativa e fornisce molte più funzionalità (Integrazione con SCC, Unit Testing, DB Refactoring, ecc ...)


Sembra essere disponibile solo tramite un abbonamento MSDN che costa $ 5469 all'anno. Per quella somma di denaro, potrei assumere alcuni studenti universitari per recuperare i dati dei test e digitarli.
Bill Karwin

1

Utilizzo uno strumento chiamato Datatect :

  1. Genera dati in file flat o in qualsiasi database compatibile con ODBC.
  2. Estendibile tramite VBScript.
  3. Referenzialmente consapevole; popolerà le chiavi esterne con i valori della tabella genitore.
  4. I dati sono consapevoli del contesto; città, stato e numeri di telefono per determinati codici postali, nomi e titoli con sesso.
  5. Può creare tipi di dati complessi e personalizzati.
  6. Genera oltre 2 miliardi di nomi propri, nomi di attività commerciali, indirizzi stradali, città, stati e codici postali.

Ho utilizzato questo strumento per generare fino a 40.000.000 di righe di dati in un database SQLServer e 8.000.000 di righe di dati in un database Oracle.

Non sono in alcun modo affiliato a Banner Systems, ma solo un cliente soddisfatto.


Sembra un'opzione promettente. Grazie per il collegamento. +1 Tuttavia, non sviluppo su Windows come piattaforma principale, mi dispiace non averlo specificato nella mia domanda.
Bill Karwin


1

Per OS X c'è Data Creator (US $ 7). Il download è gratuito a scopo di prova. Puoi usarlo per valutare il software e le sue caratteristiche.

Richiede OS X Lion o successivo. Può generare molti tipi di campi diversi e ha una modalità di esportazione personalizzata più alcune preimpostazioni (TSV, CSV, tabella Html, pagina web con tabella all'interno).

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

qui nell'App Store:

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


1

Puoi usare DbSchema, www.dbschema.com è uno strumento di gestione del database e ha un generatore di dati casuali per popolare il tuo database.


0

Risposta non diretta alla tua domanda, ma può essere utile per determinati tipi di dati:

Fake Name Generator può essere utile - http://www.fakenamegenerator.com/ , non per tutto tranne che per gli account utente o cose del genere. AFAIK Forniscono supporto per ordini all'ingrosso.


Sì, ho dato un'occhiata ma non sembra offrire la flessibilità che sto cercando. Grazie comunque per il link.
Bill Karwin

0

+1 per Benerator: ho provato 3 o 4 degli altri strumenti offerti (incluso dbmonster) ma ho trovato Benerator molto veloce, nel fornire dati realistici e flessibile. Ho anche ricevuto un feedback molto rapido e utile dal creatore dello strumento quando ho pubblicato sul forum.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.