生成模拟数据的工具?

生成模拟数据的工具?

问题描述:

我正在寻找一个好的免费工具来生成样本数据以便加载到测试数据库中。通过类推,为任何RDBMS生成“lorem ipsum”文本。我正在寻找的功能包括:生成模拟数据的工具?

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

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


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


这是我的结论是:

  • GenerateData:
    • PHP的Web应用程序界面,而不是命令行
    • 仅限于产生200个记录(或支付$ 20执照生成5000记录)
  • RedGate SQL Data Generator
    • 不是免费的,价格$ 295
    • 需要Windows,.NET,SQL服务器
  • Visual Studio 2008的数据库版
    • 需要Windows
    • 需要昂贵的MSDN或ISV订阅
  • Banner Datadect
    • 不是免费的,价格$ 595
    • 需要Windows(?)
    • 对MySQL不支持(?)
    • GUI,而不是命令行或脚本化
  • 红宝石法克尔宝石
    • 方式使用ActiveRecord为批量数据加载
  • 超级的Smack
    • 主要太慢负载测试工具,内置随机数据发生器
    • pr etty简单,但是利用总体
    • 一个良好亚军工具
  • Databene Benerator
      我需要
    • XML脚本,用DbUnit
    • 开源(GPL)兼容
    • 最佳解决方案Java代码
    • 命令行使用
    • 直接通过JDBC访问许多数据库
+0

这是类似的性质,并在它自己的光有趣:http://en.wikipedia.org/wiki/Fuzz_testing – grieve 2009-03-06 21:31:07

+0

GenerateData是PHP应用程序。你可以破解代码来生成任意数量的你想要的数据记录。为V2.x.我不知道3.x是否会更改许可证。 – 2013-02-18 06:13:34

+0

你也可以检查[数据构造](http://www.dataconstructor.com/) – 2013-12-18 16:59:28

看看databene benerator,看起来接近您的要求的测试数据生成器。

  • 它可以产生对现有的表的定义数据(或者甚至匿名生产数据)
  • 它可以生成设定拉尔数据(无限制尺寸)
  • 它支持各种输入(CSV,平面文件,DBUnit的)和输出格式(CSV,平面文件,DBUnit的,XML,Excel中,脚本)
  • 它可以在命令行上或通过一个行家插件使用
  • 它是开源和可定制

我会试试看。

顺便提一下,在databene benerator的网站上可以找到similar products的列表。

+0

任何人都有使用它的成功吗?我试过了,但benerator-wizard生成了无效的pom.xml文件(对于“填充数据库”选项)。此外,还有一个演示(hsqldb)和maven导致错误。对我来说,似乎这个工具不够好,因此不值得花时间。 – 2013-11-07 09:11:55

这看起来很有希望:generatedata.com。开源的,有很多内置的数据类型。

此处列出了其他几种:Test (Sample) Data Generators。我对他们中的任何人都没有经验,但是名单上的一些人看起来很不错。

我知道你不是在寻找实际的lorem ipsum文本;但如果其他人搜索实际lorem ipsum发电机,并发现此线程:lipsum.com做了很好的工作。

+0

感谢您的链接,但是,这不是我所期待的。 – 2009-03-02 19:22:06

+0

还有一个名为Dummy Lipsum的Firefox插件,非常有用!抱歉,我无法帮助比尔:( – alex 2009-03-04 05:31:37

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

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

其中一件好事就是命令行是高度可定制的。在High Performance MySQL这本书中也有一些相当不错的例子,它也是excerpted here

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

+0

看起来很有前途!说它支持PostgreSQL以及MySQL。感谢您的链接。 – 2009-03-04 21:52:52

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

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

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

而对于使用法克尔教程:http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE:灵活性以产生用于一个现有的表的定义数据。将Faker gem与其中一个可用的ORM结合在一起。 ActiveRecord可能是最简单的。

+0

您是否尝试过通过ActiveRecord一次执行大于一百万行的批量加载界面?我不看好完成时间。 – 2009-03-04 21:44:49

+0

此外,我今天在一些黄瓜特征步骤和它的S L O W中使用了Faker gem。所以,我的分数到目前为止:ActiveRecord -1; Faker -1 我没那么好。 :) – brendanjerwin 2009-03-05 02:37:16

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

假姓名发电机可能是有用的 - http://www.fakenamegenerator.com/,不是一切,但用户帐户或类似的东西。 AFAIK它们提供对批量订单的支持。

+0

是的,我看了一下,但它似乎并没有提供我正在寻找的灵活性。无论如何感谢链接。 – 2009-03-04 21:50:21

不是免费的,但Visual Studio 2008 Database Edition是一个很好的选择,它提供了更多的功能(集成SCC,单元测试,重构数据库等)

+0

似乎只能通过每年花费5469美元的MSDN订阅才可用。对于这笔钱,我可以聘请一些大学生来补考测试数据并输入。 – 2009-03-04 21:48:42

我知道你说你正在寻找一个免费工具,但这是一种情况,我会建议花费295美元可以快速节省您的时间。我去年一直在使用RedGate工具SQL Data Generator,简而言之,它是一款非常棒的工具。它允许设置列之间的依赖关系,为诸如电话号码,网址,名称等业务对象生成真实的数据。我可以诚实地声明,该工具一次又一次地为自己付出了代价。

+0

是的,我并不反对花295美元在开发时节省数百美元。感谢领先! – 2009-03-04 21:46:13

通常非常昂贵,但如果您是小型独立软件开发商,您可以非常便宜地获得Visual Studio 2008 Database Edition,请参阅empowerbizspark促销活动。它提供了更多的功能,然后只是生成测试数据(与SCC集成,单元​​测试,数据库重构等)

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

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

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

我已经使用这个工具来产生多达40,000,000行数据到SQLServer数据库和8,000,000行数据到Oracle数据库。

我与Banner Systems没有任何关系,只是一个满意的客户。

+1对于Benerator:我尝试了其他3种或4种工具(包括dbmonster),但发现Benerator非常快速,能够提供真实的数据并且灵活。当我发布在论坛上时,我也非常快速地从工具的创建者处获得了有用的反馈意见&。

这里是这样的工具(免费和商业)名单: http://c2.com/cgi/wiki?TestDataGenerator

尝试http://www.mockaroo.com

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

一个工具,它真的不应该从列表中缺少的是从Datanamic数据生成器直接填充数据库或生成插入脚本,收集了大量预装发电机(并支持多种数据库...

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

对于OS X有数据生成器(US $ 7)。下载是免费的,测试的目的,你可以用它来评估该软件及其功能。

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

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

在这里的应用程序商店:

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

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