web-dev-qa-db-fra.com

Générateurs de données pour SQL Server?

Je souhaite recevoir des suggestions sur les générateurs de données disponibles pour SQL Server. Si vous publiez une réponse, veuillez fournir toutes les fonctionnalités que vous jugez importantes.

Je n'ai jamais utilisé une application comme celle-ci, je cherche donc à être éduqué sur le sujet. Je vous remercie.

(Mon objectif est de remplir une base de données avec plus de 10 000 enregistrements dans chaque table, pour tester une application.)

41
Phobis

J'ai roulé mon propre générateur de données qui génère des données aléatoires conformes aux expressions régulières. Il s'est transformé en projet d'apprentissage (en cours de développement) et est disponible sur github .

11
Goran

J'ai utilisé le générateur de données dans le passé. Peut valoir le coup d'oeil.

Modification tierce

Si vous ne vous inscrivez pas, vous ne pouvez générer que 100 lignes. Ci-dessous, vous trouverez un exemple de l'apparence de l'interface aujourd'hui (octobre 2016)

Example of data generator

36
Galwegian

Quelque chose de similaire a été demandé ici: Création de données de test dans une base de données

Red Gate SQL Data Generator fait un excellent travail dans ce domaine. Vous pouvez personnaliser chaque champ de votre base de données et utiliser des données aléatoires avec des graines. Et même créer des modèles spécifiques en utilisant des expressions Regex.

16
Pascal Paradis

Pour générer des exemples de données, j'utilise de simples applications Python.

Considérations:

  1. Simple à modifier et à configurer.

  2. Un ensemble de données reproductibles que vous pouvez pour tester les performances et obtenir des résultats cohérents.

  3. Suivez toutes les règles et contraintes d'intégrité référentielle de la base de données.

  4. Des données réalistes.

Les deux premiers indiquent que vous souhaitez produire des fichiers de script qui chargeront vos données. Le troisième est plus difficile. Il existe des moyens de découvrir les métadonnées et les contraintes de la base de données. En regardant ensemble 3 et 4, vous ne voulez pas une simple ingénierie inverse - vous voulez quelque chose que vous pouvez contrôler pour produire des valeurs réalistes.

En règle générale, vous souhaitez créer votre propre modèle d'entité afin de vous assurer que les plages et les relations clés sont correctes.

Vous pouvez le faire de trois manières.

  1. Générez des fichiers CSV de données que vous pouvez charger manuellement. Belles données de test reproductibles.

  2. Générez des scripts SQL que vous pouvez exécuter. De belles données reproductibles également.

  3. Utilisez une connexion ODBC pour générer des données directement dans la base de données. En fait, je n'aime pas autant cela, mais vous pourriez.

Voici une version allégée à une seule table d'un générateur de données qui écrit un fichier 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()

Pour plusieurs entités, vous devez déterminer la cardinalité. Au lieu de générer des clés aléatoires, vous souhaitez effectuer une sélection aléatoire à partir des autres entités. Ainsi, vous pourriez avoir ChildEntity choisir un élément aléatoire de ParentEntity pour s'assurer que la relation FK-PK était correcte.

Utilisez random.choice(someList) et random.shuffle(someList) pour assurer l'intégrité référentielle.

7
S.Lott

Je viens de trouver à ce sujet: Spawner

3
Loki

Visual Studio Team System Database Edition (alias Data Dude) le fait.

Je ne l'ai pas encore utilisé pour la génération de données, mais 2 fonctionnalités sonnent bien:

  1. Définissez votre propre valeur de départ pour le générateur de données aléatoires. Cela vous permet de récupérer plusieurs fois les mêmes données aléatoires.

  2. Pointez l'assistant vers une base de données "réelle" et faites-la générer quelque chose qui ressemble à des données réelles.

Peut-être que ce sont des fonctionnalités standard ailleurs?

3
ScottStonehouse

J'ai utilisé un outil appelé Datatect pour cela.

Certaines des choses que j'aime dans cet outil:

  1. Utilise ODBC afin que vous puissiez générer des données dans n'importe quelle source de données ODBC. Je l'ai utilisé pour les bases de données Oracle, SQL et MS Access, les fichiers plats et Excel feuilles de calcul.
  2. Extensible via VBScript. Vous pouvez écrire des crochets à différentes parties du flux de travail de génération de données pour étendre les capacités de l'outil.
  3. Référentiellement conscient. Lors du remplissage des colonnes de clés étrangères, extrait les clés valides de la table parent.
1
Patrick Cuff

celui-ci est gratuit: http://www.sqldog.com contient plusieurs fonctions comme: générateur de données, recherche plein texte, création de documentation de base de données, connexions de base de données actives

1
MarkusRadius

Je l'ai déjà utilisé

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

Ce n'est pas gratuit cependant.

La vérification de l'intégrité des références est assez importante, ou vos tests ne seront pas bons sans corrélation des données connexes (dans la plupart des cas)

0
mattlant