Ferramentas para gerar dados simulados? [fechadas]

104

Estou procurando recomendações de uma ferramenta boa e gratuita para gerar dados de amostra com o objetivo de carregar em bancos de dados de teste. Por analogia, algo que produz texto " lorem ipsum " para qualquer RDBMS. Os recursos que procuro incluem:

  • Flexibilidade para gerar dados para uma definição de tabela existente.
  • Capacidade de gerar conjuntos de dados pequenos e grandes (> 1 milhão de linhas ou mais).
  • Gere no formato de script SQL ( INSERTinstruções) ou então em um formato de arquivo simples adequado para importação em massa (que geralmente é mais rápido).
  • Uma interface de linha de comando para facilitar a criação de scripts.
  • Extensível, código-fonte aberto, escrito em uma linguagem dinâmica (são requisitos agradáveis ​​de se ter, e não requisitos fortes).

PS: Eu pesquisei uma pergunta duplicada no StackOverflow, mas não encontrei uma. Se houver um, ficarei grato por uma indicação sobre ele.


Obrigado pelas ótimas respostas a todos! Devo corrigir meus requisitos para usar o Mac OS X como meu ambiente de desenvolvimento principal, não o Windows (embora eu tenha dito que a interface de linha de comando é desejável, e isso praticamente exclui o Windows). As sugestões específicas do Windows serão, sem dúvida, úteis para outros leitores desta questão, então, obrigado.


Aqui está minha conclusão:

  • GenerateData:
    • Interface de aplicativo da web PHP, não linha de comando
    • limitado a gerar 200 registros (ou pagar $ 20 pela licença para gerar 5.000 registros)
  • RedGate SQL Data Generator
    • não grátis, preço $ 295
    • requer Windows, .NET, SQL Server
  • Visual Studio 2008 Database Edition
    • requer Windows
    • requer assinatura de MSDN ou ISV cara
  • Banner Datadect
    • não grátis, preço $ 595
    • requer Windows (?)
    • sem suporte para MySQL (?)
    • GUI, não de linha de comando ou scriptável
  • Joia Ruby Faker
    • muito lento para usar ActiveRecord para carregamento de dados em massa
  • Super Smack
    • principalmente uma ferramenta de teste de carga, com um gerador de dados aleatórios integrado
    • muito simples de usar, no entanto
    • no geral, uma boa ferramenta de vice-campeão
  • Databene Benerator
    • melhor solução para minhas necessidades
    • Scripts XML, compatíveis com DbUnit
    • código Java de código aberto (GPL)
    • uso de linha de comando
    • acesse muitos bancos de dados diretamente via JDBC
Bill Karwin
fonte
Isso é semelhante em natureza e é interessante em sua própria luz: en.wikipedia.org/wiki/Fuzz_testing
grieve
GenerateData é um aplicativo php. você pode hackear o código para gerar qualquer quantidade de registros de dados que desejar. para V2.x. Não sei se 3.x altera a licença.
Han Zheng
Você também pode verificar o Construtor de Dados
Agnius Vasiliauskas

Respostas:

41

Dê uma olhada no databene benerator , um gerador de dados de teste que se aproxima de seus requisitos.

  • pode gerar dados para uma definição de tabela existente (ou até mesmo tornar anônimos os dados de produção)
  • pode gerar grandes conjuntos de dados (tamanho ilimitado)
  • ele suporta vários formatos de entrada (CSV, Flat Files, DBUnit) e de saída (CSV, Flat Files, DBUnit, XML, Excel, Scripts)
  • pode ser usado na linha de comando ou através de um plugin maven
  • é de código aberto e personalizável

Eu daria uma chance.

BTW, uma lista de produtos semelhantes está disponível no site do benerator databene.

Pascal Thivent
fonte
alguém teve sucesso com seu uso? Tentei, mas o benerator-wizard gera um arquivo pom.xml inválido (para a opção "Preencher banco de dados"). Além disso, ir para um dos demos (hsqldb) com maven resulta em erros também. Para mim parece que a ferramenta não está em bom estado, por isso não vale a pena perder tempo com ela.
Peter Butkovic
23

Isso parece bastante promissor: generatedata.com . Código aberto, possui muitos tipos de dados integrados.

Existem vários outros listados aqui: Geradores de dados de teste (amostra) . Não tenho experiência com nenhum deles, mas alguns naquela lista parecem ser bastante decentes.

Chad Birch
fonte
6

Experimente http://www.mockaroo.com

Esta é uma ferramenta que minha empresa criou para ajudar a testar nossos próprios aplicativos. Nós o tornamos gratuito para qualquer pessoa usar. É basicamente a gema do rubi do Forgery com um aplicativo da web ao redor dela. Você pode gerar dados nos formatos CSV, txt ou SQL. Espero que isto ajude.

mockaroodev
fonte
Obrigado pela dica, vou dar uma olhada!
Bill Karwin
5

Eu sei que você disse que estava procurando uma ferramenta gratuita, mas este é um caso em que eu sugeriria que gastar US $ 295 vai pagar você rapidamente com o tempo economizado. Há um ano que uso a ferramenta RedGate SQL Data Generator e é, para resumir, uma ferramenta incrível. Ele permite definir dependências entre colunas, gera dados realistas para objetos de negócios, como números de telefone, urls, nomes, etc. Posso afirmar honestamente que esta ferramenta se pagou várias vezes.

KevDog
fonte
Sim, não me oponho a gastar US $ 295 para economizar muitas centenas em tempo de desenvolvimento. Obrigado pela liderança!
Bill Karwin,
2

Se você está procurando ou quer usar algo específico do MySQL, pode dar uma olhada no Super Smack . Atualmente é mantido por Tony Bourke.

Super Smack permite que você gere dados aleatórios para inserir em suas tabelas de banco de dados. É personalizável, permitindo que você use o arquivo words.dat empacotado ou quaisquer dados de teste de sua escolha.

Uma das coisas boas sobre ele é que a linha de comando é altamente personalizável. Existem alguns exemplos razoavelmente decentes de uso no livro High Performance MySQL, que também é extraído aqui .

Não tenho certeza se isso está de acordo com o que você está procurando, mas apenas uma ideia.

Jonstjohn
fonte
Parece promissor! Diz que suporta PostgreSQL, bem como MySQL. Obrigado pelo link.
Bill Karwin,
2

Um script Ruby com um dos geradores de dados falsos disponíveis deve servir para você.

http://faker.rubyforge.org/ é uma dessas joias. Infelizmente, isso não atende a todos os seus requisitos.

Aqui está outro: http://random-data.rubyforge.org/

E um tutorial para usar o Faker: http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE: flexibilidade para gerar dados para uma definição de tabela existente. Combine a gema Faker com um dos ORMs disponíveis. ActiveRecord provavelmente seria o mais fácil.

Brendanjerwin
fonte
Você tentou fazer um carregamento em massa de> 1 milhão de linhas, uma linha por vez, por meio de uma interface ActiveRecord? Não estou otimista quanto ao tempo para a conclusão.
Bill Karwin
Além disso, usei a gema Faker hoje em algumas etapas do Cucumber Feature e seu SLO W. Então, minha pontuação até agora: ActiveRecord -1; Faker -1 Não estou indo muito bem. :)
brendanjerwin
2

Normalmente muito caro, mas se você for um pequeno ISV, poderá obter o Visual Studio 2008 Database Edition por um custo muito baixo, consulte as promoções de empowerment e bizspark . Ele fornece muito mais funcionalidade do que apenas gerar dados de teste (integração com SCC, teste de unidade, refatoração de banco de dados, etc.)

Como gosto do fato de que as ferramentas do Red-Grate são tão fáceis de aprender, eu ainda olharia para SQL Data Generator

Ian Ringrose
fonte
Sim, é mais barato, na ordem do mesmo preço da ferramenta do RedGate, mas além disso você tem que se qualificar como um ISV ​​e isso significa comprar outras coisas. Obrigado pelo link de qualquer forma, sem dúvida será útil para alguém. +1
Bill Karwin,
2

uma ferramenta que realmente não deveria faltar na lista é o Data Generator da Datanamic que preenche bancos de dados diretamente ou gera scripts de inserção, tem uma grande coleção de geradores pré-instalados (e suporta vários bancos de dados ...

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

user2072139
fonte
Obrigado pela sugestão. Deve-se notar que é apenas para a plataforma Windows e custa $ 799.
Bill Karwin de
1

Eu sei que você não está procurando um texto lorem ipsum real; mas no caso de alguém procurar por um gerador lorem ipsum real e encontrar este tópico: lipsum.com faz um ótimo trabalho.

Jenn D.
fonte
Obrigado pelo link, mas sim, não era isso que eu estava procurando.
Bill Karwin,
Existe também um plugin para o Firefox chamado Dummy Lipsum, é útil! Desculpe, não posso ajudar Bill :(
alex
1

Não é gratuito, mas o Visual Studio 2008 Database Edition é uma boa alternativa e fornece muito mais funcionalidades (integração com SCC, teste de unidade, refatoração de banco de dados, etc ...)

bastos.sergio
fonte
Parece estar disponível apenas por meio de uma assinatura MSDN que custa US $ 5.469 por ano. Com essa quantia, eu poderia contratar alguns estudantes universitários para criar os dados do teste e digitá-los.
Bill Karwin,
1

Eu uso uma ferramenta chamada Datatect :

  1. Gera dados para arquivos simples ou qualquer banco de dados compatível com ODBC.
  2. Extensível via VBScript.
  3. Referencialmente ciente; irá preencher as chaves estrangeiras com valores da tabela pai.
  4. Os dados reconhecem o contexto; cidade, estado e números de telefone para determinados CEPs, nomes e títulos com gênero.
  5. Pode criar tipos de dados complexos e personalizados.
  6. Gere mais de 2 bilhões de nomes próprios, nomes comerciais, endereços, cidades, estados e códigos postais.

Usei essa ferramenta para gerar até 40.000.000 de linhas de dados para um banco de dados SQLServer e 8.000.000 de linhas de dados para um banco de dados Oracle.

Não sou afiliado de forma alguma à Banner Systems, apenas um cliente satisfeito.

Patrick Cuff
fonte
Parece uma opção promissora. Obrigado pelo link. +1 No entanto, eu não desenvolvo no Windows como minha plataforma principal, desculpe não especificar isso na minha pergunta.
Bill Karwin,
1

Você pode usar DbSchema, www.dbschema.com, é uma ferramenta de gerenciamento de banco de dados e tem um Gerador de Dados Aleatórios para preencher seu banco de dados.

user2143407
fonte
0

Não é uma resposta direta à sua pergunta, mas pode ser útil para certos tipos de dados:

O Fake Name Generator pode ser útil - http://www.fakenamegenerator.com/ , não para tudo, exceto contas de usuário ou coisas assim. AFAIK Eles fornecem suporte para pedidos em massa.

dr. mal
fonte
Sim, eu dei uma olhada, mas não parece oferecer a flexibilidade que estou procurando. De qualquer forma, obrigado pelo link.
Bill Karwin,
0

+1 para o Benerator: tentei 3 ou 4 das outras ferramentas disponíveis (incluindo dbmonster), mas descobri que o Benerator é muito rápido, fornece dados realistas e é flexível. Também recebi um feedback muito rápido e útil do criador da ferramenta quando postei no fórum.

Davek
fonte