ヘッダーをスキップ
Oracle® Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド
11gリリース2 (11.2)
B61350-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

19 データ・ルールの設計と導出

この章では、Oracle Warehouse Builderのデータ・ルールとその用途について説明し、データ・ルールを設計し、データ・プロファイリング結果からデータ・ルールを導出する方法について説明します。

この章の内容は次のとおりです。

データ・ルールの概要

データ・ルールは、Oracle Warehouse Builderで作成できる有効なデータ値と関係の定義です。データ・ルールは表、ビュー、マテリアライズド・ビューおよび外部表に適用できます。データ・ルールによって、表(またはその他のオブジェクト)内の正当なデータまたは1つの表の異なる列または異なる表間の正当な関係が判断されます。

データ・ルールはOracle Warehouse Builderのデータ品質機能の中核です。

データ・ルールを作成するには次の2つの方法があります。

また、すべてのOracle Warehouse Builderワークスペースには、NULL以外の値のテスト、共通データ形式のテストなど一般的な状況で、ワークスペースのすべてのプロジェクトでアクセス可能な特定数の事前定義済のパブリック・データ・ルールがあります。

データ・ルールのメタデータは、ワークスペースに格納されます。データ・ルールを使用するには、データ・ルールをデータ・オブジェクトに適用します。たとえば、有効値が'M'と'F'であることを指定するgender_ruleというデータ・ルールを作成したとします。このデータ・ルールは、Employees表のemp_gender列に適用できます。データ・ルールを適用することによって、emp_gender列に格納される値が'M'または'F'のいずれかであることが保証されます。データ・ルール・バインディングの詳細は、Employees表の表エディタの「データ・ルール」タブで表示できます。

データ・ルールのタイプ

表19-1に、データ・ルールのタイプを示します。

表19-1 データ・ルールのタイプ

データ・ルールのタイプ 説明

ドメイン・リスト

属性に使用可能な値リストを定義します。

Gender属性には「M」または「F」を使用できます。

ドメイン・パターン・リスト

属性が準拠可能なパターンのリストを定義します。パターンの定義には、Oracle Databaseの正規表現構文を使用します。

電話番号のパターンを次に示します。

(^[[:space:]]*[0-9]{ 3 }[[:punct:]|:space:]]?[0-9]{ 4 }[[:space:]]*$)

ドメイン範囲

属性に使用可能な値の範囲を定義します。

Salary属性の値には100から10000を使用できます。

共通形式

属性が準拠可能な既知の共通形式を定義します。

このルール・タイプには、「電話番号」、「IPアドレス」、「SSN」、「URL」、「電子メール・アドレス」という多くのサブタイプがあります。タイプごとに、事前定義の形式がリストされます。このリストには形式を追加することもできます。

電子メール・アドレスは次の形式で指定する必要があります。

^(mailto:[-_a-z0-9.]+@[-_a-z0-9.]+$)

NULLなし

属性にはNULL値を使用できないことを指定します。

Employees表の従業員のdepartment_id列はNULLにできません。

関数従属性

データ・オブジェクト内のデータを正規化可能として定義します。

Dept_name属性は、Dept_no属性に依存します。

一意キー

特定のデータ・オブジェクトで属性または属性のグループが一意であるかどうかを定義します。

部門名は一意である必要があります。

参照

値間で使用する必要がある関係のタイプ(1:n)を定義します。

Departments表のdepartment_id列は、Employees表のDepartment_id列と1:nの関係を持つ必要があります。

名前とアドレス

「Name and Address」のサポートを使用して、属性グループを名前またはアドレスとして評価します。


カスタム

入力パラメータに指定するSQL式を適用します。

VALID_DATEというカスタム・ルールには、START_DATEおよびEND_DATEという2つの入力パラメータがあります。このルールの有効な式は、次のように定義されます。

THIS."END_DATE" > "THIS"."START_DATE"


オブジェクトとしてのデータ・ルールおよびデータ・ルールのバインディング

データ・ルールは、各ワークスペース内のオブジェクトであり、ルールが適用される可能性のある個々のデータ要素から独立して存在します。たとえば、NULLなしというルールは、ルールの適用対象の特定の列に依存することなく存在し、電子メール・アドレスなどの共通形式ルールは、このルールの対象となる特定の表の特定の列に依存していません。

プロジェクト・ナビゲータで、プロジェクトの「データ・ルール」ノードには、1つ以上のデータ・ルールがグループ化された「データ・ルール」フォルダが含まれます。また、ワークスペース内のすべてのプロジェクト用に定義されたパブリック・データ・ルールもあります。

データ・ルールには、特定のインスタンスでのルールの適用先のオブジェクトを識別する入力パラメータがあります。データ・ルールをバインドするということは、1つまたは複数の表の1つ以上の列など、ルールが管理するデータ・ルールを特定のデータ・オブジェクトに関連付けるということです。1つの表または複数の表の中の複数の列に対して、1つのデータ・ルールを複数回バインドすることができます。

たとえば、値MおよびFに列を制限するgender_ruleドメイン・リスト・ルールは、1つの表内またはEMPLOYEES.emp_genderEMPLOYEES.manager_genderCHILDREN.child_genderなどの複数の異なる表内でさえも複数の異なる列に適用できます。このような場合、ルールが更新されると、ルールがバインドされているすべての場所が影響されます。次回、データ・ルールを使用してコードを生成しデプロイするときは、更新されたデータ・ルール定義が使用されます。たとえば、gender_ruleが不明な性別Xを受け入れるように変更した場合は、gender_ruleのバインド先であるオブジェクトのETLを再生成することでそのルールをすべての箇所に適用できます。

データ・ルールの使用

データ・プロファイリング結果に基づいてデータ・ルールを導出するのみでなく、独自のデータ・ルールを定義することも可能です。データ・ルールは、それが定義されているプロジェクト内の複数の表にバインドできます。1つのオブジェクトに必要な数のデータ・ルールを含めることができます。

デザイン・センターを使用して、データ・ルールを作成および編集します。データ・ルールを作成した後、そのルールを次のようなシナリオで使用できます。

データ・プロファイリングでのデータ・ルールの使用

データ・プロファイリングを使用して表を分析する際に、データ・ルールを使用して、指定のルールに対するデータの準拠レベルを分析して統計を収集できます。その結果から、新規のデータ・ルールを導出できます。データ・プロファイリングにより大多数のレコードで特定の列の値がred、whiteおよびblueであることが判明した場合は、カラー・ドメイン(red、whiteおよびblue)を定義する新規データ・ルールを導出できます。その後、このルールを再利用して他の表をプロファイルしたり、スキーマ修正、データの整備やデータの監査でのその他のルールのように使用できます。

スキーマ修正でのデータ・ルールの使用

データ・ルールを使用して、ソース・スキーマを、新規表の構造がデータ・ルールに厳密に準拠している新規ターゲット・スキーマに変換できます。新しいスキーマでは、表の列はデータ・ルールに一致するデータ型を持ち、ルールに基づく制約が生成され、表に適用されて、その制約が規定され、スキーマが正規化されます。

データ整備でのデータ・ルールの使用

データ・ルールを使用する第2の方法では、データ・ルールを修正マッピングに使用し、ソース表のデータをデータ・ルールと比較検証し、準拠レコードと非準拠レコードを判別します。分析されたデータ・セットは修正され(孤立レコードの削除、不正確なドメイン値の修正など)、整備されたデータ・セットが修正済ターゲット・スキーマにロードされます。

データ監査でのデータ・ルールの使用

データ・ルールは、データ監査にも使用されます。データ監査とは、データを一連のデータ・ルールと比較検証して準拠レコードと非準拠レコードを判別するプロセスです。データ監査により、ルールに対するシステム内のデータの準拠レベルを示す統計メトリックが収集され、欠陥データが監査表とエラー表にレポートされます。その点では、データ・ルール・ベースの修正マッピングに似ていますが、この種の修正マッピングには、データ・ルールに準拠しないデータ用のレポート専用オプションも用意されています。

フォルダのデータ・ルールの管理

各データ・ルールは、関連するデータ・ルールを分類するコンテナ・オブジェクトであるデータ・ルール・フォルダに属しています。データ・ルールを作成するには、まず、少なくとも1つのデータ・ルール・フォルダを作成する必要があります。

データ・ルール・フォルダを作成するには、ナビゲーション・ツリーで「データ・ルール」を右クリックして新規データ・ルール・フォルダを選択します。「データ・ルール・フォルダの作成」ダイアログ・ボックスが表示されます。新しいデータ・ルール・フォルダの名前を入力して、「OK」をクリックします。

データ・プロファイリング結果からのデータ・ルールの導出

データ・プロファイリング結果に基づいて、データの整備に使用するデータ・ルールを導出します。データ・ルールを作成し、それをデータ・プロファイルに手動で適用できますが、データ・プロファイリング結果に基づくデータ・ルールの導出により、生産性を強化し、自分のルールを基礎となるデータに反映させることができます。

データ・ルールは、データ・オブジェクト内に格納できる正当なデータのセットを判別する式です。データ・ルールは、データ・ルールに準拠する値のみをデータ・オブジェクト内で使用可能にする場合に使用します。データ・ルールは、データを整備する場合にデータの修正または削除の基準となります。また、データ・ルールを使用して、ルールに準拠していないデータをレポートすることもできます。

たとえば、Employeesという表にEmployee_NumberGenderEmployee_Nameの各列が含まれているとします。プロファイリング結果は、Employee_Number列の値の90%が一意であり、一意キーの主要な候補であることを示しています。また、Gender列の値の85%が「M」または「F」であり、ドメインに適した候補でもあることを示しています。そこで、これらのルールを「プロファイル結果キャンバス」から直接導出できます。

データ・ルールの導出の実行ステップ

  1. ナビゲーション・ツリーでデータ・プロファイルを選択し、右クリックして「開く」を選択します。

    プロファイリング結果を示すデータ・プロファイル・エディタが表示されます。

  2. プロファイリング結果を確認し、データ・ルールに導出する検出内容を決定します。

    データ・ルールを保証する結果のタイプは様々です。一般にデータ・ルールに導出される結果によっては、検出されたドメイン、2つの属性間の関数従属性または一意キーが含まれることがあります。

  3. データ・ルールの導出元として使用する結果が表示されるタブをクリックします。

    たとえば、「EMPLOYEE_NUMBER」列に対して一意キー・ルールを施行するデータ・ルールを作成するには、「一意キー」タブにナビゲートします。

  4. データ・ルールの導出元として使用する結果を含むタブをクリックします。

    青い矢印アイコンを含むセルに対してデータ・ルールを定義できます。セルに緑の矢印アイコンが含まれる場合、データ・ルールはそのセルで表される列に対して定義されています。

  5. 「プロファイル」メニューから「データ・ルールの導出」を選択します。または、「データ・ルールの導出」ボタンをクリックします。

    たとえば、EMPLOYEE_NUMBER列に一意キー・ルールを作成するには、この列を選択して「データ・ルールの導出」をクリックします。

    データ・ルールの導出ウィザードが表示されます。

  6. ようこそページで「次へ」をクリックします。

  7. 名前と説明ページで、「名前」フィールドにデータ・ルールのデフォルト名が表示されます。新しい名前を指定するには、名前を選択し、新しい名前を入力し、「次へ」をクリックします。

  8. ルールの定義ページで、データ・ルールのパラメータに関する詳細を入力し、「次へ」をクリックします。

    「タイプ」フィールドには、導出するデータのタイプに応じて自動的に値が移入されます。このデータ・ルールのタイプは編集できません。

    このページの下部にある他のフィールドでは、データ・ルールのパラメータを定義します。一部のフィールドには、データ・プロファイリング結果に基づいて値が移入されます。フィールドの数とタイプは、データ・ルールのタイプに応じて異なります。

  9. サマリー・ページで、ウィザードで設定したオプションを確認します。選択した値のいずれかを変更するには「戻る」をクリックします。データ・ルールを作成するには、「終了」をクリックします。

    データ・ルールが作成され、データ・プロファイル・エディタの「データ・ルール」パネルに表示されます。導出されたデータ・ルールは、プロジェクト・ナビゲータの「データ・ルール」ノードの下にある「Derived_Data_Rules」ノードにも追加されます。このデータ・ルールを他のデータ・オブジェクトにアタッチして再利用できます。

データ・ルールの作成ウィザードを使用したデータ・ルールの作成

プロジェクト・ナビゲータの「データ・ルール」フォルダに、データ・ルールが含まれています。すべてのデータ・ルールは、データ・ルール・フォルダに属している必要があります。各プロジェクトのサブフォルダ「DERIVED_DATA_RULES」には、データ・プロファイリングによって導出されたデータ・ルールが含まれています。追加のデータ・ルール・フォルダを作成して、作成したデータ・ルールを格納できます。

データ・ルールを作成する手順は、次のとおりです。

  1. データ・ルールの作成先の「データ・ルール」フォルダを右クリックし、新規データ・ルール・フォルダを選択します。

    データ・ルールの作成ウィザードのようこそページが表示されます。

  2. ようこそページで「次へ」をクリックします。

  3. 名前と説明ページに、データ・ルールの名前と説明(オプション)を入力します。「次へ」をクリックします。

  4. ルールの定義ページで、作成するデータ・ルールのタイプを指定します。また、データ・ルールの作成に必要な追加情報も指定します。「次へ」をクリックします。

    たとえば、ドメイン範囲ルールを作成する場合、有効なドメイン値を表す値を指定する必要があります。

    データ・ルールの詳細は、「データ・ルールの定義」を参照してください。

  5. サマリー・ページで、ウィザードでの選択項目を確認します。「戻る」をクリックして、選択した値を変更します。データ・ルールを作成するには、「終了」をクリックします。

    データ・ルールは、作成先の「データ・ルール」フォルダに追加されます。

データ・ルールの定義

ルールの定義ページまたは「ルールの定義」タブを使用して、データ・ルールの詳細を指定します。このページの上部には、データ・ルールのタイプを示す「タイプ」リストが表示されます。データ・ルールを作成する場合は、「タイプ」フィールドを展開してデータ・ルールのタイプを表示し、作成するタイプを選択します。データ・ルールを編集する際、作成したデータ・ルールのタイプは変更できないため、「タイプ」フィールドは無効になります。データ・ルールのタイプの詳細は、「データ・ルールのタイプ」を参照してください。


注意:

データ・ルールを導出する際、「タイプ」フィールドには自動的に値が移入されますが、この値は編集できません。

このページの下のセクションで、データ・ルールに関する詳細を追加指定します。このセクションに表示されるフィールドの数と名前は、作成したデータ・ルールのタイプによって異なります。

たとえば、タイプとしてカスタムを選択した場合は、「属性」セクションを使用して、ルールに必要な属性を定義します。「式」フィールドの省略記号ボタンを使用して、「属性」セクションで定義した属性を含んだカスタム式を定義します。

データ・ルールのタイプとして「ドメイン範囲」を選択すると、ページ下部には、範囲のデータ型、最小値および最大値を指定するためのフィールドが表示されます。データ・ルールを導出する場合、これらのフィールドの一部はルールを導出するプロファイリング結果に基づいて移入されます。これらの値は編集可能です。

データ・ルールの編集

データ・ルールの作成後に、その定義を編集できます。データ・ルール名を変更し、説明を編集できます。データ・ルールのタイプは変更できません。ただし、データ・ルールに対して指定した他のパラメータは変更できます。たとえば、「ドメイン範囲」タイプのデータ・ルールの場合、範囲のデータ型、最小値および最大値を編集できます。

データ・ルールを編集する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、データ・ルールを右クリックして「開く」を選択します。

    「データ・ルールの編集」ダイアログ・ボックスが表示されます。

  2. 「名前」タブで、次のタスクを実行できます。

    • データ・ルールの名前を変更するには、名前を選択して新しい名前を入力します。

    • データ・ルールの説明を編集するには、説明を選択して新しい説明を入力します。

  3. 「定義」タブで、データ・ルールのプロパティを編集します。


    注意:

    データ・ルールのタイプは変更できません。変更できるのは、ドメインの境界、ドメイン・リスト、一意キー内の属性数などのデータ・ルールのタイプに関するプロパティのみです。

データ・ルールのオブジェクトへの適用

オブジェクトにデータ・ルールを適用すると、データ・ルールの定義がオブジェクトにバインドされます。たとえば、ルールをDept表にバインドすると、表に指定されている属性に対してルールが確実に実装されます。データ・ルールを適用するにはオブジェクト・エディタを使用します。データ・プロファイル・エディタの「データ・ルール」パネルから導出したデータ・ルールも適用できます。

データ・ルールの適用ウィザードを使用して、データ・オブジェクトにデータ・ルールを適用できます。事前に作成したデータ・ルールまたはデータ・オブジェクトに作成したデータ・ルールを適用できます。データ・ルールの適用先として可能なデータ・オブジェクトのタイプは表、ビュー、マテリアライズド・ビューおよび外部表です。

データ・ルールをデータ・オブジェクトに適用する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、データ・ルールを適用するオブジェクトを右クリックして「開く」を選択します。

    データ・オブジェクトのエディタが表示されます。

  2. 「データ・ルール」タブで、データ・オブジェクトにバインドされているデータ・ルールが表示されます。「ルールの適用」をクリックして、新しいデータ・ルールを適用します。

    データ・ルールの適用ウィザードが表示されます。

  3. ようこそページで「次へ」をクリックします。

  4. ルールの選択ページで、データ・オブジェクトに適用するデータ・ルールを選択して、「次へ」をクリックします。

    BUILT_INノード、DERIVED_DATA_RULESノードおよび作成する任意の他のデータ・ルール・フォルダの下にデータ・ルールがまとめられます。

    BUILT_INノードには、ワークスペースで定義されたデフォルトのデータ・ルールが含まれています。たとえば、外部キー、一意キー、NOT NULLなどです。

    DERIVED_DATA_RULESノードには、データ・プロファイリングによって導出されたすべてのデータ・ルールが表示されます。

  5. 名前と説明ページに、データ・ルールの名前と説明(オプション)を入力して、「次へ」をクリックします。

  6. ルール・パラメータのバインド・ページで、「バインド」リストを使用して、データ・ルールを適用する必要のあるデータ・ルールの列を選択して、「次へ」をクリックします。

  7. サマリー・ページで、前のウィザード・ページでの選択を確認します。「戻る」をクリックして、選択した値を変更します。データ・ルールを適用するには、「終了」をクリックします。

    データ・ルールはデータ・オブジェクトにバインドされ、「データ・ルール」タブにリストされます。

ETLマッピング内のデータ・ルールの手動での適用

データ・オブジェクトを使用する場合は、マッピング内でデータ・ルールを適用するかどうかを決定できます。

ETLマッピングにデータ・ルールを適用する手順は、次のとおりです。

  1. 「マッピングを使用して抽出、変換、ロード(ETL)を実行する手順」にある手順を使用してETLマッピングを定義します。

  2. マッピング・エディタで、データ・ルールが定義されているデータ・オブジェクトを選択します。

    プロパティ・インスペクタ」にマッピング・プロパティが表示されます。

  3. 「データ・ルール」ノードで、「データ・ルール」フィールドの右にある省略記号ボタンをクリックします。

    「データ・ルール」ダイアログ・ボックスが表示されます。左側に、選択したデータ・オブジェクトに定義されたデータ・ルールが示されます。

  4. アクションを指定するデータ・ルールを選択します。

    右側のデータ・ルール情報」セクションに選択したデータ・ルールの詳細が表示されます。

  5. ルール・アクション列で、次のオプションの1つを選択して、ソース・レコードが選択したデータ・ルールに違反する場合に実行する必要のあるアクションを示します。

    • 無視: データ・ルール違反は無視され、レコードはETLマッピングのロジックの一部として処理されます。

    • エラーへの移動: データ・ルールに違反する行がエラー表に移動されます。

    • レポート: 選択したデータ・ルールに違反する行がレポートに追加されます。