生成模拟数据的工具?[关闭]


104

我正在寻找一个好的免费工具的建议,该工具可以生成示例数据以加载到测试数据库中。以此类推,可以为任何RDBMS 生成“ lorem ipsum ”文本。我要寻找的功能包括:

  • 灵活地为现有表定义生成数据。
  • 生成小型和大型数据集(>一百万行或更多)的能力。
  • 以SQL脚本格式(INSERT语句)生成,或者以适合批量导入的平面文件格式生成(通常更快)。
  • 易于编写脚本的命令行界面。
  • 可扩展的开放源代码,以动态语言编写(这些功能很不错,不是很严格的要求)。

PS:我确实在StackOverflow上搜索了一个重复的问题,但没有找到一个问题。如果有的话,我将不胜感激。


感谢大家的好评!我应该修改我将Mac OS X用作主要开发环境而不是Windows的要求(尽管我确实说希望使用命令行界面,并且实际上排除了Windows)。但是,Windows特定的建议无疑将对该问题的其他读者有用。因此,谢谢。


这是我的结论:

  • GenerateData:
    • PHP Web应用程序界面,而非命令行
    • 限于生成200条记录(或为生成5,000条记录支付$ 20的许可费用)
  • RedGate SQL数据生成器
    • 不免费,价格$ 295
    • 需要Windows,.NET,SQL Server
  • Visual Studio 2008数据库版
    • 需要Windows
    • 需要昂贵的MSDN或ISV订阅
  • 横幅数据检测
    • 不免费,价格$ 595
    • 需要Windows(?)
    • 不支持MySQL(?)
    • GUI,不是命令行或脚本
  • Ruby Faker宝石
    • 使用ActiveRecord进行批量数据加载的速度太慢
  • 超级打击
    • 主要是负载测试工具,内置有随机数据生成器
    • 仍然非常简单易用
    • 总体来说是一个不错的亚军工具
  • Databene Benerator
    • 满足我需求的最佳解决方案
    • XML脚本,与DbUnit兼容
    • 开源(GPL)Java代码
    • 命令行用法
    • 通过JDBC直接访问许多数据库

这本质上是相似的,并且从其自身的角度来看
悲伤

GenerateData是php应用程序。您可以修改代码以生成所需的任意数量的数据记录。对于V2.x。我不知道3.x是否更改了许可证。
韩正

Answers:


41

看一下databene benerator,它是看起来很接近您需求的测试数据生成器。

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

我会尝试的。

顺便说一句,databene benerator的网站上提供了类似产品的列表。


有人成功使用了它吗?我尝试了它,但是benerator-wizard生成了无效的pom.xml文件(用于“填充数据库”选项)。此外,使用maven进行演示之一(hsqldb)也会导致错误。在我看来,该工具似乎状态不佳,因此不值得浪费时间。
Peter Butkovic


6

尝试http://www.mockaroo.com

这是我公司用来帮助测试我们自己的应用程序的工具。我们已经免费提供给任何人使用。基本上,它是伪造的红宝石宝石,周围包裹着一个Web应用程序。您可以生成CSV,txt或SQL格式的数据。希望这可以帮助。


谢谢你的提示,我来看看!
Bill Karwin

5

我知道您说过您正在寻找一种免费工具,但是在这种情况下,我建议您花费295美元即可迅速节省您的时间。去年,我一直在使用RedGate工具SQL数据生成器,简而言之,它是一个了不起的工具。它允许设置列之间的依赖关系,为业务对象生成现实的数据,例如电话号码,URL,名称等。我可以坦白地说,该工具一次又一次为自己付出了代价。


是的,我不愿意花费295美元来节省数百个开发时间。感谢您的带头!
Bill Karwin 09年

2

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

Super Smack允许您生成随机数据以插入数据库表中。它是可自定义的,允许您使用打包的word.dat文件或您选择的任何测试数据。

它的优点之一是它是可高度自定义的命令行。在“ 高性能MySQL ”一书中有一些相当不错的使用例子,也在这里摘录

不知道这是否符合您要寻找的内容,只是一个想法。


看起来很有前途!说它支持PostgreSQL以及MySQL。感谢您的链接。
Bill Karwin 09年

2

带有一个可用的伪造数据生成器的Ruby脚本应该就可以了。

http://faker.rubyforge.org/就是这样的瑰宝。不幸的是,这不能满足您的所有要求。

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

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


RE:灵活地为现有表定义生成数据。将Faker宝石与可用的ORM之一组合。ActiveRecord可能是最简单的。


您是否尝试过通过ActiveRecord界面一次进行超过一百万行的批量加载?我对完成时间并不乐观。
Bill Karwin 09年

另外,我今天在一些Cucumber Feature步骤及其SLO W中使用了Faker gem。因此,到目前为止,我的成绩是:ActiveRecord -1;Faker -1我做得并不好。:)
brendanjerwin 2009年

2

通常,这非常昂贵,但是如果您是小的ISV,则可以非常便宜地获得Visual Studio 2008 Database Edition,请参阅功能授权bizspark促销。它提供了更多功能,而不仅仅是生成测试数据(与SCC集成,单元​​测试,数据库重构等)。

我喜欢Red-Grate工具非常易于学习的事实,所以我仍然会看一下SQL Data Generator


是的,它的成本更低,价格与RedGate工具的价格相同,但除此之外,您还必须具有ISV资格,这意味着要购买其他产品。无论如何,感谢您的链接,毫无疑问它将对某人有用。+1
比尔·卡文


1

我知道您不是要查找实际的lorem ipsum文本;但是如果其他人搜索了一个真正的lorem ipsum生成器并找到了这个线程:lipsum.com可以做得很好。


感谢您的链接,但是,那不是我想要的。
比尔·卡温

Firefox还有一个名为Dummy Lipsum的插件,非常有用!抱歉,我不能帮比尔:(
亚历克斯


1

我使用一个称为Datatect的工具:

  1. 生成数据到平面文件或任何符合ODBC的数据库。
  2. 可通过VBScript扩展。
  3. 具有参考意义;将使用父表中的值填充外键。
  4. 数据是上下文感知的;给定邮政编码的城市,州和电话号码,名字和性别。
  5. 可以创建自定义的复杂数据类型。
  6. 生成超过20亿个专有名称,公司名称,街道地址,城市,州和邮政编码。

我已经使用此工具为SQLServer数据库生成多达40,000,000行数据,而向Oracle数据库生成了8,000,000行数据。

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


这看起来是一个有前途的选择。感谢您的链接。+1但是,我没有在Windows上作为主要平台开发,很抱歉,我没有在问题中指定。
比尔·卡温



1

您可以使用DbSchema,www.dbschema.com,它是一种数据库管理工具,并且具有随机数据生成器来填充您的数据库。


0

不是直接回答您的问题,但这对于某些类型的数据可能会有所帮助:

假名生成器可能非常有用-http: //www.fakenamegenerator.com/,除了用户帐户或类似内容外,不用于所有其他内容。AFAIK他们为批量订购提供支持。


是的,我看了一下,但似乎没有提供我想要的灵活性。无论如何,谢谢您的链接。
比尔·卡文

0

+1为Benerator:我尝试了3或4个其他提供的工具(包括dbmonster),但发现Benerator很快,可以提供逼真的数据并且非常灵活。当我在论坛上发布时,我还从该工具的创建者那里获得了非常有用的反馈。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.