I would like to receive suggestions on the data generators that are available, for SQL server. If posting a response, please provide any features that you think are important.
I have never used a application like this, so I am looking to be educated on the topic. Thank you.
(My goal is to fill a database with 10,000+ records in each table, to test an application.)
For generating sample data, I use simple Python applications.
Considerations:
Simple to modify and configure.
A repeatable set of data that you can for performance testing and get consistent results.
Follow all of the DB referential integrity rules and constraints.
Realistic data.
The first two indicate that you want to produce script files that will load your data. The third is tougher. There are ways to discover the database metadata and constraints. Looking at 3 and 4 together, you don't want simple reverse engineering -- you want something you can control to produce realistic values.
Generally, you want to build an entity model of your own so that you can be sure you have ranges and key relationships correct.
You can do this three ways.
Generate CSV files of data which you can load manually. Nice repeatable test data.
Generate SQL scripts which you can run. Nice repeatable data, also.
Use an ODBC connection to generate data directly into the database. I actually don't like this as much, but you might.
Here's a stripped-down one-table-only version of a data generator that writes a CSV file.
For multiple entities, you have to work out the cardinality. Instead of generating random keys, you want to make a random selection from the other entities. So you might have ChildEntity picking a random element from ParentEntity to assure that the FK-PK relationship was correct.
Use
random.choice(someList)
andrandom.shuffle(someList)
to assure referential integrity.Visual Studio Team System Database Edition (aka Data Dude) does this.
I have not used it for data generation yet, but 2 features sound nice:
Set your own seed value for the random data generator. This allows you to prodcue the same random data more than once.
Point the wizard at a 'real' database and have it generate something that looks like real data.
Maybe these are standard features elsewhere?
I've used a tool called Datatect for this.
Some of the things I like about this tool:
Something similar has been asked here : Creating test data in a database
Red Gate SQL Data Generator does a great job in that domain. You can customize every field of your database and using random data with seeds. And even create specific patterns using Regex expressions.
this one is for free: http://www.sqldog.com contains several functions like: data generator, fulltext search, create database documentation, active database connections
I just found about that one: Spawner