生成模拟数据的工具?

我正在寻找一个好的免费工具来生成样本数据的build议,以加载到testing数据库中。 通过类比,为任何RDBMS生成“ lorem ipsum ”文本。 我正在寻找的function包括:

  • 为现有的表格定义生成数据的灵活性。
  • 能够生成小型和大型数据集(> 100万行或更多)。
  • 以SQL脚本格式( INSERT语句)生成,或者以适合批量导入(通常更快)的平面文件格式生成。
  • 一个简单脚本的命令行界面。
  • 可扩展的,开源的,用dynamic语言编写的(这些都是很好的,但不是很强的要求)。

PS:我没有在StackOverflow上search一个重复的问题,但我没有find一个。 如果有的话,我会很感激得到一个指针。


感谢大家的好评! 我应该修改我的要求,我使用Mac OS X作为我的主要开发环境,而不是Windows(尽pipe我确实说过命令行界面是可取的,而且实际上排除了Windows)。 不过,对于这个问题的其他读者来说,Windows特有的build议无疑是有用的,但是,谢谢。


这是我的结论:

  • GenerateData:
    • PHP的Web应用程序界面,而不是命令行
    • 限于产生200条logging(或支付20美元的许可证来产生5,000条logging)
  • RedGate SQL数据生成器
    • 不免费,价格295美元
    • 需要Windows,.NET,SQL Server
  • Visual Studio 2008数据库版本
    • 需要Windows
    • 需要昂贵的MSDN或ISV订阅
  • 横幅Datadect
    • 不免费,价格595美元
    • 需要Windows(?)
    • 不支持MySQL(?)
    • GUI,而不是命令行或脚本
  • rubyFakergem
    • 对于批量数据加载使用ActiveRecord太慢
  • 超级摔跤
    • 主要是一个负载testing工具,内置一个随机数据生成器
    • 不过很简单
    • 总体而言是一个很好的亚军工具
  • Databene Benerator
    • 我的需求最好的解决scheme
    • XML脚本,与DbUnit兼容
    • 开源(GPL)Java代码
    • 命令行使用
    • 通过JDBC直接访问许多数据库

看看databene benerator ,一个看起来接近你的需求的testing数据生成器。

  • 它可以为现有的表定义生成数据(甚至可以匿名生产数据)
  • 它可以生成大数据集(无限大小)
  • 它支持各种input(CSV,平面文件,DBUnit)和输出格式(CSV,平面文件,DBUnit,XML,Excel,脚本)
  • 它可以在命令行或通过Maven插件使用
  • 它是开源的和可定制的

我会试一试。

顺便说一句, 类似产品的列表可以在databene benerator的网站上find。

这看起来很有前途: generatedata.com 。 开源的,有很多内置的数据types。

还有其他几个在这里列出: testing(示例)数据发生器 。 我没有任何经验,但是列表中的一些人看起来很不错。

试试http://www.mockaroo.com

这是我公司用来帮助testing我们自己的应用程序的工具。 我们已经免费为任何人使用。 它基本上是伪造的rubygem与一个networking应用程序包裹在它周围。 您可以使用CSV,txt或SQL格式生成数据。 希望这可以帮助。

我知道你说过你正在寻找一个免费的工具,但是这是一个我build议花295美元的时间就可以很快地偿还你的时间。 我去年一直在使用RedGate工具SQL数据生成器 ,简而言之,它是一个很棒的工具。 它允许设置列之间的依赖关系,为诸如电话号码,url,名称等业务对象生成真实的数据。我可以诚实地说,这个工具已经一次又一次地付出了代价。

如果你正在寻找或者愿意使用一些特定于MySQL的东西,你可以看看Super Smack 。 目前由Tony Bourke维护。

Super Smack允许您生成随机数据以插入到数据库表中。 它是可定制的,允许您使用打包的words.dat文件或您select的任何testing数据。

其中一件好事就是命令行是高度可定制的。 “ 高性能MySQL ”一书中有一些相当不错的使用例子, 这里也摘录了这个例子。

不知道这是否符合你的要求,而只是一个想法。

有一个可用的假数据生成器的Ruby脚本应该可以做到。

http://faker.rubyforge.org/是一个这样的gem。; 不幸的是,这并不能满足您的所有要求。

这里是另一个: http : //random-data.rubyforge.org/

以及使用Faker的教程: http ://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE:灵活地为现有的表格定义生成数据。 把Faker的gem和其中一个可用的ORM结合起来。 ActiveRecord可能是最简单的。

通常非常昂贵,但如果你是一个小的独立软件开发商,你可以非常便宜地获得Visual Studio 2008数据库版本 ,看看授权和bizspark促销活动。 它提供了更多的function,然后生成testing数据(与SCC集成,单元​​testing,数据库重构等)

因为我喜欢Red-Grate工具很容易学习的事实,所以我仍然会看看SQL Data Generator

一个真正不应该从列表中丢失的工具是来自Datanamic的数据生成器,它直接填充数据库或生成插入脚本,有大量的预先安装的生成器(并支持多个数据库…

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

我知道你不是在寻找实际的文字。 但如果其他人search一个真正的lorem ipsum生成器,并find这个线程: lipsum.com做了很好的工作。

不是免费的,但Visual Studio 2008数据库版是一个很好的select,它提供了更多的function(与SCC集成,单元​​testing,DB重构等)

我使用了一个名为Datatect的工具:

  1. 生成数据到平面文件或任何ODBC兼容的数据库。
  2. 通过VBScript可扩展。
  3. 清醒地意识到; 将使用来自父表的值填充外键。
  4. 数据是上下文感知的; 城市,州和电话号码给定的邮政编码,名字和性别的标题。
  5. 可以创build自定义的复杂数据types。
  6. 生成超过20亿个专有名称,商业名称,街道地址,城市,州和邮政编码。

我已经使用这个工具生成了多达40,000,000行数据到SQLServer数据库,并且有800万行数据到Oracle数据库。

我不隶属于Banner Systems,只是一个满意的客户。

以下是这些工具(免费和商业)的列表: http : //c2.com/cgi/wiki?TestDataGenerator

对于OS X,有Data Creator(US $ 7)。 下载是免费的testing目的。 您可以使用它来评估软件及其function。

它需要OS X Lion或连续的。 它可以生成很多不同的字段types,并有一个自定义的导出模式加上一些预先设置(TSV,CSV,Html表格,网页内的表)。

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

在App Store上:

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

你可以使用DbSchema,www.dbschema.com这是一个数据库pipe理工具,它有一个随机数据生成器来填充你的数据库。

不直接回答你的问题,但这对于某些types的数据可能有帮助:

假名发生器可以是有用的 – http://www.fakenamegenerator.com/ ,不是一切,而是用户帐户或类似的东西。 AFAIK他们提供大宗订单的支持。

为Benerator +1:我尝试了3或4其他工具(包括dbmonster),但发现Benerator是非常快速,提供现实的数据和灵活。 当我发布在论坛上时,我也从工具的创build者那里得到了非常快速和有用的反馈。