プライマリ・コンテンツに移動
Oracle® Database Testingガイド
12cリリース1 (12.1)
B71349-07
目次へ移動
目次
索引へ移動
索引

前
次

18.1 データ・セブセット定義の作成

この項で説明する手順では、サブセット定義の作成後、そのプロパティを編集したりサブセット定義をエクスポートするなどのタスクを実行するサブセット・データベースを作成できます。

このインタフェースでは、サブセットの定義の作成時に、インラインまたはソースでマスキングを実行できます。

続行する前に、次の権限があることを確認します。

  • Enterprise Manager Cloud ControlユーザーのEM_ALL_OPERATOR

  • データベース・ユーザーのSELECT_CATALOG_ROLE

  • データベース・ユーザーのSELECT_ANY_DICTIONARY権限

  • また、インプレース削除操作を実行するには、DBAユーザーは、EXECUTE_ANY_TYPE権限が付与されている必要があります。

データ・サブセット定義を作成するには:

  1. 「エンタープライズ」メニューから「クオリティ管理」を選択し、次に「データ・サブセット定義」を選択します。

  2. 「データ・サブセット定義」ページで「アクション」メニューを開き、「作成」を選択するか、または「作成」アイコンをクリックします。

  3. データ・サブセット定義のプロパティを定義します。

    1. 表示された一般ポップアップで必要な情報を指定し、「続行」をクリックします。

      アプリケーション・データ・モデルと関連付けられているいずれかのソース・データベースを選択できます。

      サブセット定義内でマスキングを行う場合、マスク定義の作成時に使用した同じADMおよびターゲットを使用する必要があります。

    2. ジョブ名、資格証明を指定し、表示される「アプリケーション詳細コレクションのスケジュール」ポップアップでスケジュールを指定して、「発行」をクリックします。

      新しい資格証明を使用する場合は、「新規資格証明」オプションを使用します。それ以外の場合は、「優先資格証明」オプションまたは「名前付き資格証明」オプションを使用します。

    容量の見積りの収集ジョブが実行され、データ・サブセット定義ページが表示されます。表に定義が表示され、「最新のジョブ・ステータス」列に、選択されているスケジュール・オプション、およびジョブを完了するために必要な時間に応じて、「スケジュール済」、「実行中」または「成功」が示されます。

  4. 表内の定義を選択し、「アクション」メニューを開き、「編集」を選択します。

    「データベース・ログイン」ページが表示されます。

  5. 優先資格証明を設定していない場合は「名前付き資格証明」または「新規資格証明」を選択し、「ログイン」をクリックします。

  6. 「編集」ページの「アプリケーション」サブページで、アプリケーションを次のように「使用可能」リストから「選択済」リストへ移動します。

    • データのマスキングのみを行う(サブセット化は行わず)場合は、すべてのアプリケーションを選択します。

    • データのサブセット化のみを行う(マスキングは行わず)場合は、必要な適切なアプリケーションを選択します。

    • データのサブセット化およびマスキングを両方とも行う場合、マスキング定義で必要なアプリケーションを選択する必要があります。

    アプリケーション・スイート、アプリケーションまたはアプリケーション・モジュールの名前はアプリケーション・データ・モデル内に保持されています。

  7. 「表ルール」タブをクリックします。

    注意:

    マスキングのみを行う場合、「デフォルトの表ルール」オプションですべての行を選択するよう設定し、手順13に進みます。「列ルール」タブ、「ルール・パラメータ」タブおよび「表ルール」タブ上のその他の機能は、特にサブセッティングに関係します。

    ここでルールを追加し、サブセットに含めるデータを定義できます。

  8. 「アクション」を選択し、次に「作成」を選択して「表ルール」ポップアップを表示するか、または「作成」アイコンをクリックします。

    1. ルールを指定するアプリケーションを選択します。

      このルールをすべての表、特定の表または表のカテゴリに関連付けます。

    2. 「含める行」セクションで、本番データの代理サンプルのニーズに最も合うオプションを選択します。すべての行を含めない場合は、行の割合を指定することで一部の列を含めることができます。より細かいレベルで、region_id=6などのWhere句を指定できます。

      Where句の指定の詳細は、手順8.eを参照してください。

    3. 「関連行を含む」セクションで、次のいずれかを実行します。

      • 「祖先および子孫表」を選択します。

        このルールは、親列および子列に影響を与えますが、参照整合性が保持され、サブセットの一部として子列も選択されます。

      • 「祖先表のみ」を選択します。

        このルールは、親列にのみ影響し、参照整合性が保持されます。

      「関連行を含む」チェック・ボックスを無効にすると、参照整合性が保持されない場合があります。ただし、その後追加のルールを指定して、参照整合性をリストアすることもできます。Where句を指定するかどうかによって、このチェック・ボックスを無効にできます。

    4. Where句を指定する場合、次の手順に進みます。それ以外の場合は、手順9に進みます。

    5. 必要に応じて、句にパラメータを指定します。

      たとえば、従業員IDの値をemployee_id=:emp_idとして指定する場合、デフォルトの100に問合せ値を入力できます。

      • 「行」ボタンを選択して、employee_id=:emp_idを入力します。

      • 「OK」をクリックし、ルールを保存して「表ルール」タブに戻ります。

        これが新しいルールである場合、「バインド変数emp_idに対応するルール・パラメータは、サブセットを生成する前に作成する必要があります。」という警告が表示されます。

      • 表ルールを選択して、「ルール・パラメータ」タブをクリックしてから「作成」をクリックします。

        ルール・パラメータのプロパティ・ポップアップが表示されます。

      • 「名前」にemp_id、「値」に100を入力します。

        注意:

        emp_idの前にあるコロン(:)はWhere句内にのみ存在し、新規ルール・パラメータの作成時には必要ありません。

      • 「OK」をクリックしてプロパティを保存すると、「ルール・パラメータ」タブに表示されます。

      • 手順10にスキップします。

  9. 「OK」をクリックし、ルールを保存して「表ルール」タブに戻ります。

    リスト内に新規ルールが表示されます。その下の表には関連表が表示されます。表内の関連行はサブセットに含まれるため、サブセット・データベースの参照整合性が確保されます。

  10. 「表ルール」タブの「関連表」セクションで、サブセット内の祖先および子孫のレベルを制御することによって、サブセットのサイズを管理できます。表内の各ノードにはチェック・ボックスがあります。デフォルトでは、チェック・マークで示されたように、すべてのノードはサブセットに含まれます。サブセットからノードを除外するには、チェック・ボックスを選択解除します。選択解除オプションは親行には無効になります(右側の結合列は親行および子行を識別します)。また、サブレットのコンテンツに次のような他の絞込みを行うこともできます。

    • 親表の除外を許可をクリックします。これにより、グレー表示されていたチェック・マークが有効になります。チェック・ボックスを選択解除することによって、サブセットから親行を選択して除外できます。

    • 表内のノードを選択し、子孫の追加をクリックして、関連行を含めます。開いているダイアログで適切に選択して、「OK」をクリックします。

    これらの絞込みを行うと、右側の列は、サブセットの容量の見積りへの影響を反映します。「関連表」セクションは、各表を含めることの詳細な影響を含む、祖先表および子孫表の処理順序も示します。絞込みが終了したら、「容量の見積もり」タブに移動して、サブセットの全体のサイズへの影響の、より詳細な粒度を表示します。

  11. 「表ルール」タブの「デフォルトの表の行」セクションで、サブセットの定義済ルールによって影響されていない表を含めるかまたは除外するかを選択します。

    「すべての行を含む」オプションを選択する場合、表のすべての行がサブセットの一部として選択されます。

    これは、グローバル・ルールで、サブセット全体に適用されます。すべてのルールの有効範囲が「指定しない」の場合、「すべての行を含む」オプションのみを選択できます。「表ルール」ポップアップで、「関連行を含む」オプションの選択を解除すると、有効範囲「指定しない」が確立されます。

    注意:

    列ルールのあるサブセットの定義の場合(手順12を参照)、対応する表を含めるよう、表ルールを必ず使用するようにしてください。デフォルトの表ルールオプションを使用し、表ルールによって影響されていないすべての表を含めるか、必要に応じて選択します。

  12. オプション: サブセット定義の一部としてインライン・マスキングを実行するには、「列ルール」タブをクリックします。

    1. 「作成」をクリックし、スキーマ内の列をフィルタ処理するための検索基準を入力します。通常これらは、CLOBやBLOBなどの垂直列です。

      注意:

      マスキング定義(手順13を参照)のかわりに列ルールを使用する場合、特定の表で選択できるのは10列のみです。この制限は、エクスポート・メソッドに該当し、インプレース削除メソッドには該当しません。

      「OK」をクリックします。

    2. 列の検索結果で行を1つ以上選択し、「マスキング・フォーマットの管理」をクリックします。

    3. ポップアップ・ダイアログで、列に適用するマスキング・フォーマットと値を選択します。複数選択する場合は、1つのフォーマットがすべての列に対して適切であることが必要です。列を複数選択する場合は、選択する列のルール・フォーマットを選択された列に適用できることを確認してください。コンプライアンスに準拠するには、nullではなく一意の列(フラグ)を使用します。

      「OK」をクリックして、列にマスキング・フォーマットを適用します。

  13. オプション: サブセット化操作の一部にマスキング定義を含めたり、ソース・データのマスキングのみを実行する場合には、「データ・マスキング」タブをクリックします。

    1. 「追加」をクリックします。

    2. ポップアップ・ダイアログで、適切な定義を取得する検索基準を入力します。必要なラジオ・ボタン(「すべて」または「任意」)を必ず選択してください。インライン・マスキングでは、複合マスキングを除く、すべてのフォーマットがサポートされています。

      注意:

      エクスポート・メソッドを使用する場合、マスキング定義内のどの表のマスクされた列数も10を超えないようにする必要があります。この制限は、インプレース削除メソッドには該当しません。

      「OK」をクリックします。

    検索結果が「データ・マスキング」表に表示されます。

  14. 「容量の見積もり」タブをクリックします。

    • 「推定サブセット・サイズMB」列の値に注意してください。容量の見積りは、オプティマイザ統計に依存し、ヒストグラム統計が存在する場合は、実際のデータの配分のみが計算されます。

    • 新規ルールを追加する場合は常に、更新値の容量の見積りを再確認します。

    • 「容量の見積もり」サブページのデータは、一番大きなアプリケーションが一番上に表示されるようにソートされています。

    注意:

    データ・マスキングを使用している場合、その影響は考慮せずに容量は見積もられています。

    Where句とそれに続くルール・パラメータ・プロパティを指定すると、「ルール・パラメータ」タブに含まれる値で容量の見積もりサブページが更新されます。

  15. オプション: 「サブセット前/後スクリプト」タブをクリックします。

    • サブセット・データを選択する前にサブセット・データベースで実行するサブセット前スクリプトを指定できます。

    • サブセット・データをアセンブルした後にサブセット・データベースで実行するサブセット後スクリプトを指定できます。

    • どちらのスクリプト・タイプも、ソース・データベースで実行されます。

  16. 「戻る」をクリックします。

    定義が完了し、「データ・サブセット定義」表に表示されます。

これで、スクリプトの生成を続行できます。または、今後使用するために、スクリプトを保存することも可能です。どちらの場合でも、ダンプ・ファイルにデータをエクスポートするか、ターゲット・データベースからデータを削除するかを決定する必要があります。

ヒント:

たとえば、4TBの非常に大きなデータベースがあり、10%などの少量の行をエクスポートする場合、エクスポート・メソッドを使用すると利便性が高まります。インプレース削除メソッドを使用するには、3.6TBのデータが必要で、エクスポート・メソッドのように速くは行われません。

削除されるデータの量がデータ・サイズ全体の少量である場合は、インプレース削除メソッドをお薦めします。

インプレース削除をリモートで実行するか、それをスクリプト化する場合、EMCLI動詞があります。