SQL服务器的数据生成器?

时间:2008-10-01 13:28:11

标签: sql-server generator data-generation

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

我从未使用过这样的应用程序,因此我希望接受有关该主题的教育。谢谢。

(我的目标是在每个表中填充10,000多条记录,以测试应用程序。)

9 个答案:

答案 0 :(得分:35)

我过去曾使用data generator。值得一看。

第三方编辑

如果您不注册,则只能生成100行。您可以在下面找到界面今天(2016年10月)的样子

Example of data generator

答案 1 :(得分:16)

这里有类似的问题:Creating test data in a database

Red Gate SQL Data Generator在该领域做得很好。您可以自定义数据库的每个字段,并使用带种子的随机数据。甚至使用Regex表达式创建特定模式。

答案 2 :(得分:12)

我已经推出了自己的数据生成器,可以生成符合正则表达式的随机数据。它变成了一个学习项目(正在开发中),可以在github获得。

答案 3 :(得分:7)

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

考虑:

  1. 易于修改和配置。

  2. 一组可重复的数据,可用于性能测试并获得一致的结果。

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

  4. 真实数据。

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

    通常,您希望构建自己的实体模型,以便确保范围和关键关系正确。

    你可以这三种方式。

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

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

    3. 使用ODBC连接直接在数据库中生成数据。我实际上并不喜欢这个,但你可能会这样。

    4. 这是一个精简的单表版本的数据生成器,可以写入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()
      

      对于多个实体,您必须计算基数。您想要从其他实体中随机选择,而不是生成随机密钥。因此,您可能让ChildEntity从ParentEntity中选择一个随机元素,以确保FK-PK关系正确。

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

答案 4 :(得分:3)

Visual Studio Team System数据库版(又名Data Dude)就是这样做的。

我还没有将它用于数据生成,但有2个功能听起来不错:

  1. 为随机数据生成器设置自己的种子值。这允许您不止一次地生成相同的随机数据。

  2. 将向导指向“真正的”数据库,并使其生成看起来像真实数据的内容。

  3. 也许这些是其他地方的标准功能?

答案 5 :(得分:3)

我刚刚发现了那个:Spawner

答案 6 :(得分:1)

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

我喜欢这个工具的一些事情:

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

答案 7 :(得分:1)

这是免费的:http://www.sqldog.com 包含几个函数,如:数据生成器,全文搜索,创建数据库文档,活动数据库连接

答案 8 :(得分:0)

我之前用过

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

虽然不是免费的。

参考完整性检查非常重要,或者如果不关联相关数据,您的测试将无效。(在大多数情况下)