44

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

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

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

4

9 に答える 9

37

過去にデータジェネレーターを使用しました。一見の価値があるかもしれません。

サードパーティ編集

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

データジェネレーターの例

于 2008-10-01T13:32:40.250 に答える
18

同様のことがここで尋ねられました:データベースにテストデータを作成する

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

于 2008-10-01T13:40:04.287 に答える
11

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

于 2008-10-24T22:16:34.333 に答える
7

サンプル データの生成には、単純な 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()

複数のエンティティの場合、カーディナリティを計算する必要があります。ランダムなキーを生成する代わりに、他のエンティティからランダムに選択する必要があります。したがって、FK-PK 関係が正しいことを保証するために、ChildEntity に ParentEntity からランダムな要素を選択させることができます。

random.choice(someList)およびを使用して、random.shuffle(someList)参照整合性を保証します。

于 2008-10-01T13:51:34.853 に答える
3

私はそれについて見つけました:Spawner

于 2008-12-03T15:09:01.713 に答える
3

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

データ生成にはまだ使用していませんが、次の 2 つの機能が優れています。

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

  2. ウィザードを「実際の」データベースに向けて、実際のデータのように見えるものを生成させます。

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

于 2008-10-01T13:50:09.240 に答える
1

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

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

  1. ODBCを使用するため、任意のODBCデータソースにデータを生成できます。これは、Oracle、SQL、MS Accessデータベース、フラットファイル、Excelスプレッドシートに使用しました。
  2. VBScriptを介して拡張可能。データ生成ワークフローのさまざまな部分でフックを記述して、ツールの機能を拡張できます。
  3. 参照を認識します。外部キー列にデータを入力するとき、親テーブルから有効なキーをプルします。
于 2008-10-01T14:22:29.367 に答える
1

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

于 2010-11-15T19:35:21.670 に答える
0

私はこれを以前に使用したことがあります

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

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

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

于 2008-10-01T13:39:07.287 に答える