sql >> データベース >  >> RDS >> Database

DBテストデータを生成する方法

    IRI RowGenユーザーは、1回の操作で、データベース全体の構造的および参照的に正しい合成テストデータを生成できます。テストデータは、データベースまたはETL操作で通常発生する本番環境の特性(値の範囲や頻度など)を反映していますが、実際のデータへのアクセスやマスキングは必要ありません。

    IRI Workbench GUI(Eclipse™上に構築)のRowGenのエンドユーザージョブウィザードは、テストデータの生成に役立ちます。最も便利なものの1つは、新しいRowGenデータベーステストデータジョブです。 ウィザード。RowGenプロジェクト全体を構築して、事前にソートされたキー値とカスタマイズの機会を使用して、複数のテーブルを一度に自動入力します。各テストテーブルの既存のメタデータに依存していますが、列値の生成をカスタマイズし、ルールを介して一般化することもできます。

    この記事では、IRI Workbenchを使用してOracleでターゲット表を作成し、それらのスキーマを図解してから、RowGenウィザードの1つを使用してテストデータを生成し、それらの表にロードする方法を示します。

    余談ですが、RowGenで、ランダムに選択された実際の値を、設定されたファイルデータから特定の列に挿入することも必要です。セットファイルは、1つ以上の行を含むテキストファイルであり、複数のタブ区切りの列を指定するか、別のワークベンチウィザードである[列からファイルを設定]で自動抽出することができます。ただし、私の場合は、セットファイルを手動で作成しました:emp.set、item.set、project.set、quantity.set、salary.set、department.set、category.set。

    これが私が実行した手順です。ターゲットテーブル情報があり、同じ情報が必要になることに注意してください。

    ステップ1。 空のターゲットテーブルを作成する

    1. IRI Workbenchのデータソースエクスプローラー(DSE)でJDBCを介してデータベース(この場合はOracle)接続を確立します
    2. Dept、Emp、Project、Category、Item、Item_Use、Saleを指定するには、DSEのSQLスクラップブックで編集された.sqlファイルにCREATETABLEステートメントとALTERTABLEステートメントを記述します
    3. プロジェクトフォルダに保存し、右クリックしてSQLファイルを実行してテーブルを作成します

    ステップ2。 ER図を作成して表示する

    1. ツールバーの上から[新規、IRIプロジェクト]を選択し、新しいフォルダを作成します
    2. そのフォルダをクリックしてから、DSEで上記の7つの新しいテーブルを強調表示します
    3. IRIを右クリックし、[新しいERダイアグラムモデル]を選択します
    4. これにより、プロジェクトフォルダに新しいスキーマモデルとファイルschema.sqlschemaが作成されます

    IRIのDSEとERダイアグラム作成ツールはどちらもDBに依存しないことに注意してください。

    ステップ3。 RowGenデータベーステストデータウィザードを使用してテストデータを生成する

    1. CTRLキーを押しながらクリックしてDSE内の7つのテーブルを再度選択します
    2. 右クリックして[IRI、新しいデータベーステストデータジョブ]を選択します
    3. 入力するテーブルを事前に選択しているため、ウィザードが開いたら[次へ]をクリックします。

  1. [次へ]をクリックし、[オプション]画面で、入力方法としてSQL*Loaderを選択します
  2. テーブルごとに1000の標準行数を指定します。この数も変更できることに注意してください:
    1. [次へ]をクリックして[ルールの構成]ダイアログに進みます。このダイアログでは、ルールセレクターのダイアログでグラフィカルに生成されたさまざまなフィールドレベルの生成ルールを追加または変更できます。

    これは、(設定ファイルから)ランダムに選択された実際のデータを条件付きで挿入する場所であるため、複数のテーブルにまたがる同様の列に、列名が指定したパターンに準拠する場合は常に生成を適用します。

    1. そのファイルの「item」を使用してセットデータのアプリケーションを開始しているので、パターンフィールドadd Item_Name *を追加し、[テスト]をクリックして、その列名が存在するかどうか(およびどこにあるか)を確認します
    2. 次に、[ルールオプション]メニューからフィールドを選択し、[ファイルの設定]を選択します。 item.setファイルを参照して、Item_Nameなどの名前の列での使用を指定します。
    3. これらの手順を繰り返して、Category_Name、Dept_Num、Emp_Name、Item_Nameという名前の列にセットファイルのデータを適用して、テストデータのリアリズムを強化します。

    1. [次へ]をクリックして、この職務概要画面を表示します:

    1. [完了]をクリックしてウィザードを完了します。

    RowGenウィザードは、各テーブルのテストデータの生成を指定するプレーンテキスト(.rcl)制御言語スクリプト、および依存セットファイル(参照整合性のため)、SQL * Loader制御ファイル、およびバッチファイルを自動的に作成しました。 IRIワークベンチの内外ですべてを一度に実行します。

    RowGenが生成したバッチファイルを実行すると、必要なすべてのテストデータがフラットファイルに作成され、プライマリを保持するために必要な順序で、ウィザードで(ODBCまたはDBロードユーティリティを介して)選択したデータがすべてのターゲットテーブルに入力されます。外部キーの関係。一括読み込みされたテーブルは、各テーブルのインデックスキーで事前に並べ替えられ、設定されたファイルの値がランダムに右側の列に挿入されました。

    このIRIWorkbenchのスクリーンショットは、RowGenジョブスクリプトの1つとターゲットテーブルを示しています。

    すべてのRowGenジョブスクリプトは、最初に選択したフォルダーに保存され、変更、再利用、チーム共有、バージョン管理などに使用できます。テストデータ生成用に作成されたワークフローモデルは、 ETLおよびその他のIRIデータ管理プロジェクトを備えたビジュアルワークフローエディタ。

    このウィザードの計画または使用についてサポートが必要な場合は、[email protected]にお問い合わせください。


    1. django ORMでpostgresqlウィンドウ関数を使用するクリーンな方法は?

    2. テーブルが存在する場合、それを削除するにはどうすればよいですか?

    3. Where句内のIfステートメント

    4. Postgresの\connectコマンドに対応するJDBCは何ですか?