web-dev-qa-db-ja.com

SQLサーバー用のデータジェネレーター?

SQLサーバーで利用可能なデータジェネレーターに関する提案を受け取りたいです。回答を投稿する場合は、重要だと思われる機能を提供してください。

私はこのようなアプリケーションを使用したことがないので、このトピックに関する教育を受けたいと思っています。ありがとうございました。

(私の目標は、データベースを各テーブルに10,000以上のレコードで埋めて、アプリケーションをテストすることです。)

41
Phobis

正規表現に準拠したランダムデータを生成する独自のデータジェネレーターを展開しました。これは学習プロジェクトになり(開発中)、 github で入手できます。

11
Goran

過去に data generator を使用しました。一見の価値があるかもしれません。

サードパーティ編集

登録しないと、100行しか生成できません。以下は、今日のインターフェースの外観のサンプルです(2016年10月)

Example of data generator

36
Galwegian

同様のことがここで尋ねられています: データベースでのテストデータの作成

Red Gate SQL Data Generator は、そのドメインで素晴らしい仕事をします。データベースのすべてのフィールドをカスタマイズし、シードでランダムデータを使用できます。正規表現を使用して特定のパターンを作成することもできます。

16
Pascal Paradis

サンプルデータを生成するために、単純なPythonアプリケーションを使用します。

考慮事項:

  1. 変更と構成が簡単です。

  2. パフォーマンステストのために、一貫した結果を得ることができる、繰り返し可能なデータのセット。

  3. すべてのDB参照整合性ルールと制約に従います。

  4. 現実的なデータ。

最初の2つは、データをロードするスクリプトファイルを作成することを示しています。 3番目はより厳しいです。データベースのメタデータと制約を発見する方法があります。 3と4を一緒に見ると、単純なリバースエンジニアリングは必要ありません。現実的な値を生成するために制御できるものが必要です。

一般に、範囲とキーの関係が正しいことを確認できるように、独自のエンティティモデルを構築する必要があります。

これには3つの方法があります。

  1. 手動でロードできるデータのCSVファイルを生成します。繰り返し可能なテストデータ。

  2. 実行可能なSQLスクリプトを生成します。素敵な再現可能なデータも。

  3. ODBC接続を使用して、データベースに直接データを生成します。実際、これはあまり好きではありませんが、そうするかもしれません。

これは、CSVファイルを書き込む、データジェネレーターの簡略化された1つのテーブルのみのバージョンです。

_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)を使用して、参照整合性を確保します。

7
S.Lott

私はちょうどそれについて見つけました: Spawner

3
Loki

Visual Studio Team System Database Edition(別名Data Dude)がこれを行います。

私はまだデータ生成に使用していませんが、2つの機能がいい感じです:

  1. ランダムデータジェネレーターに独自のシード値を設定します。これにより、同じランダムデータを複数回生成できます。

  2. ウィザードで「実際の」データベースを指定し、実際のデータのように見えるものを生成します。

たぶん、これらは他の場所の標準機能ですか?

3
ScottStonehouse

これには Datatect というツールを使用しました。

このツールについて私が気に入っていることのいくつか:

  1. ODBC=を使用して、任意のODBC=データソースにデータを生成できます。これをOracle、SQLおよびMS Accessデータベース、フラットファイル、Excelに使用しましたスプレッドシート。
  2. VBScriptを介して拡張可能。データ生成ワークフローのさまざまな部分でフックを作成して、ツールの機能を拡張できます。
  3. 参照を認識します。外部キー列にデータを入力するときに、親テーブルから有効なキーを取得します。
1
Patrick Cuff

これは無料です。 http://www.sqldog.com には、データジェネレータ、全文検索、データベースドキュメントの作成、アクティブなデータベース接続などの機能が含まれています。

1
MarkusRadius

私は前にこれを使用しました

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

ただし、無料ではありません。

参照整合性チェックは非常に重要です。そうでない場合、関連データを相関させないとテストは役に立たなくなります。(ほとんどの場合)

0
mattlant