SQLサーバーで利用可能なデータジェネレーターに関する提案を受け取りたいと思います。回答を投稿する場合は、重要だと思われる機能を提供してください。
私はこのようなアプリケーションを使ったことがないので、このトピックについての教育を受けたいと思っています。ありがとうございました。
(私の目標は、アプリケーションをテストするために、各テーブルに10,000以上のレコードをデータベースに入力することです。)
SQLサーバーで利用可能なデータジェネレーターに関する提案を受け取りたいと思います。回答を投稿する場合は、重要だと思われる機能を提供してください。
私はこのようなアプリケーションを使ったことがないので、このトピックについての教育を受けたいと思っています。ありがとうございました。
(私の目標は、アプリケーションをテストするために、各テーブルに10,000以上のレコードをデータベースに入力することです。)
過去にデータジェネレーターを使用しました。一見の価値があるかもしれません。
登録しない場合は、100 行しか生成できません。以下に、現在のインターフェイスの外観のサンプルを示します (2016 年 10 月)。
同様のことがここで尋ねられました:データベースにテストデータを作成する
Red Gate SQL Data Generatorは、その分野で素晴らしい仕事をします。データベースのすべてのフィールドをカスタマイズし、シードのあるランダム データを使用できます。さらに、正規表現を使用して特定のパターンを作成することもできます。
正規表現に準拠したランダム データを生成する独自のデータ ジェネレーターを作成しました。これは学習プロジェクト (開発中) になり、githubで入手できます。
サンプル データの生成には、単純な Python アプリケーションを使用します。
考慮事項:
変更と構成が簡単です。
パフォーマンス テストに使用でき、一貫した結果を得ることができる反復可能なデータ セット。
すべての DB 参照整合性のルールと制約に従ってください。
現実的なデータ。
最初の 2 つは、データをロードするスクリプト ファイルを作成することを示しています。3番目はより厳しいです。データベースのメタデータと制約を検出する方法はいくつかあります。3 と 4 を一緒に見ると、単純なリバース エンジニアリングではなく、現実的な値を生成するために制御できるものが必要になります。
通常、範囲とキーの関係が正しいことを確認できるように、独自のエンティティ モデルを構築します。
これには 3 つの方法があります。
手動でロードできるデータの CSV ファイルを生成します。再現性のある優れたテスト データ。
実行できる SQL スクリプトを生成します。再現性のあるデータも素晴らしいです。
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()
複数のエンティティの場合、カーディナリティを計算する必要があります。ランダムなキーを生成する代わりに、他のエンティティからランダムに選択する必要があります。したがって、FK-PK 関係が正しいことを保証するために、ChildEntity に ParentEntity からランダムな要素を選択させることができます。
random.choice(someList)
およびを使用して、random.shuffle(someList)
参照整合性を保証します。
私はそれについて見つけました:Spawner
Visual Studio Team System Database Edition (別名 Data Dude) がこれを行います。
データ生成にはまだ使用していませんが、次の 2 つの機能が優れています。
ランダム データ ジェネレーターに独自のシード値を設定します。これにより、同じ乱数データを複数回生成できます。
ウィザードを「実際の」データベースに向けて、実際のデータのように見えるものを生成させます。
たぶん、これらは他の場所の標準機能ですか?
これには、 Datatectというツールを使用しました。
このツールについて私が気に入っている点のいくつか:
これは無料です:http : //www.sqldog.comには、データジェネレータ、全文検索、データベースドキュメントの作成、アクティブなデータベース接続などのいくつかの機能が含まれています
私はこれを以前に使用したことがあります
http://sqlmanager.net/en/products/mssql/datagenerator
ただし、無料ではありません。
参照整合性チェックは非常に重要です。そうしないと、関連するデータを相関させないとテストがうまくいきません (ほとんどの場合)。