生成模拟数据的工具?
我正在寻找一个好的免费工具来生成样本数据的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(示例)数据发生器 。 我没有任何经验,但是列表中的一些人看起来很不错。
这是我公司用来帮助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的数据生成器,它直接填充数据库或生成插入脚本,有大量的预先安装的生成器(并支持多个数据库…
我知道你不是在寻找实际的文字。 但如果其他人search一个真正的lorem ipsum生成器,并find这个线程: lipsum.com做了很好的工作。
不是免费的,但Visual Studio 2008数据库版是一个很好的select,它提供了更多的function(与SCC集成,单元testing,DB重构等)
我使用了一个名为Datatect的工具:
- 生成数据到平面文件或任何ODBC兼容的数据库。
- 通过VBScript可扩展。
- 清醒地意识到; 将使用来自父表的值填充外键。
- 数据是上下文感知的; 城市,州和电话号码给定的邮政编码,名字和性别的标题。
- 可以创build自定义的复杂数据types。
- 生成超过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者那里得到了非常快速和有用的反馈。