数据生成器的SQL服务器?

我想收到有关SQL服务器可用的数据生成器的build议。 如果发布回复,请提供您认为重要的任何function。

我从来没有使用这样的应用程序,所以我正在寻求教育这个话题。 谢谢。

(我的目标是在每个表格中填入一个包含10,000个以上logging的数据库,以testing一个应用程序。)

我推出了自己的数据生成器,生成符合正则expression式的随机数据。 它变成了一个学习项目(正在开发中),并在github上提供 。

我曾经使用过数据生成器 。 可能值得一看。

第三方编辑

如果你不注册,你只能生成100行。 下面你可以find一个样本如何看待今天(2016年10月)

数据生成器的例子

这里有类似的问题: 在数据库中创buildtesting数据

红门SQL数据生成器在这个领域做的很好。 您可以自定义数据库的每个字段,并使用种子随机数据。 甚至使用正则expression式创build特定的模式。

为了生成示例数据,我使用简单的Python应用程序。

注意事项:

  1. 很容易修改和configuration。

  2. 一组可重复使用的数据,您可以进行性能testing并获得一致的结果。

  3. 遵循所有数据库参照完整性规则和约束。

  4. 现实的数据。

前两个表示您要生成将加载您的数据的脚本文件。 第三是更强硬。 有办法发现数据库元数据和约束。 一起看3和4,你不想要简单的逆向工程 – 你想要的东西,你可以控制产生现实的价值。

一般来说,你想build立一个你自己的实体模型,这样你就可以确定你的范围和关键关系是正确的。

你可以用三种方法做到这一点。

  1. 生成可以手动加载的数据的CSV文件。 好的可重复的testing数据。

  2. 生成可以运行的SQL脚本。 好的可重复的数据,也。

  3. 使用ODBC连接将数据直接生成到数据库中。 我其实不太喜欢这个,但是你可能会这么做。

这里是一个精简的单表格版本的数据生成器,它写入一个CSV文件。

 import csv import random class SomeEntity( list ): titles = ( 'attr1', 'attr2' ) # ... for all columns def __init__( self ): self.append( random.randrange( 1, 10 ) ) self.append( random.randrange( 100, 1000 ) ) # ... for all columns myData = [ SomeEntity() for i in range(10000) ] aFile= open( 'tmp.csv', 'wb' ) dest= csv.writer( aFile ) dest.writerow( SomeEntity.titles ) dest.writerows( myData ) aFile.close() 

对于多个实体,你必须计算出基数。 而不是生成随机密钥,你想从其他实体进行随机select。 因此,您可能会从ChildEntity中选取一个来自ParentEntity的随机元素,以确保FK-PK关系是正确的。

使用random.choice(someList)random.shuffle(someList)来保证参照完整性。

Visual Studio团队系统数据库版(又名数据老兄)这样做。

我还没有使用它的数据生成,但2个function听起来不错:

  1. 为随机数据生成器设置您自己的种子值。 这使您可以多次提取相同的随机数据。

  2. 将该向导指向一个“真实”的数据库,并让它产生一些看起来像真实数据的东西。

也许这些是别处的标准function?

我刚刚发现了那个: Spawner

这是免费的: http : //www.sqldog.com包含几个function,如:数据生成器,全文search,创build数据库文档,主动数据库连接

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

我喜欢这个工具的一些东西:

  1. 使用ODBC,以便您可以将数据生成到任何ODBC数据源。 我已经使用了Oracle,SQL和MS Access数据库,平面文件和Excel电子表格。
  2. 通过VBScript可扩展。 您可以在数据生成工作stream程的各个部分编写钩子以扩展该工具的function。
  3. 意识到。 在填充外键列时,从父表中抽取有效的键。

我以前用过这个

http://sqlmanager.net/en/products/mssql/datagenerator

它不是免费的。

Ref完整性检查是相当重要的,否则如果没有关联相关的数据,你的testing将会是不好的(在大多数情况下)