条件
条件とは、ルール文によって1つまたは複数の入力データ値に指定されるデータ操作です。すべてのルール文には、少なくとも1つの条件が含まれます。
条件が入力データ値を検証する際に、ルール仕様はルール文内のアクションを実行します。このアクションはルールセットの潜在的な出力を表します。条件が入力データ値を検証できない場合、ルール仕様はアクションを実行しません。
条件を設定して以下の分析の種類のうちいずれかを実行します。
- 入力データ値を単一値と比較する
- ルール文は入力カラム内の値と入力された値を比較します。
- 入力データ値を別の入力の値と比較する
- ルール文により、入力カラムの値が、指定した別の入力カラムの同じ行のデータと比較されます。
- 入力データ値を現在の日付と時刻と比較する
- ルール文は入力カラム内の値と現在の日付と時刻を比較します。
- NULL値を検索する
- ルール文はNULL値または空の文字列の入力カラムを検索します。
- 入力データ値を値の範囲と比較する
- ルール文により、入力カラム内の値が、入力した値の範囲と比較されます。
- 入力データ値をディクショナリ内の値と比較する
- ルール文により、入力カラムの値がディクショナリ内の値と比較されます。ルール文により、ディクショナリの値または入力した値が返されます。
- 入力データ値を別のルール仕様の出力と比較する
- ルール文により、入力カラム内の値が選択したルール仕様の出力と比較されます。ルール仕様は、ルール文ロジック内で実行されます。
- ルール仕様の入力を少なくとも1つ指定します。現在の条件入力を含めて、現在のルール仕様で使用可能な任意の入力を選択するか、ルール仕様入力として値を入力できます。また、条件が読み取るフィールドをルール仕様の出力として選択します。
- 入力データ値をマップレットからの出力と比較する
- ルール文により、入力カラム内の値が選択したマップレットの出力と比較されます。マップレットは、ルール文ロジック内で実行されます。
- マップレットには少なくとも1つの入力を指定します。現在の条件入力を含めて、現在のルール仕様で使用可能な任意の入力を選択するか、マップレット入力として値を入力できます。また、条件がマップレット出力として読み取るフィールドを選択します。
注: ルール仕様は、受動的トランスフォーメーションを含んだマップレットを読み取ることができます。
- 入力データ値に関数式を適用する
- ルール文により、選択した関数式が、1つまたは複数の入力カラムの値に適用されます。
- 入力データ値にカスタム式を適用する
- ルール文により、定義したカスタム式が、1つまたは複数の入力カラムの値に適用されます。
条件およびアクションにおけるマップレットのルールとガイドライン
必要に応じて、ルール文、条件、またはアクションの関数にマップレットを追加できます。マップレットを追加すると、マップレット内の任意のアセットまたはトランスフォーメーションのロジックが条件またはアクションに追加されます。
マップレットには、パッシブデータ品質トランスフォーメーションを含めることができ、さらにパッシブJavaトランスフォーメーションと式トランスフォーメーションを含めることができます。
マップレットを条件またはアクションに追加するときは、次のルールとガイドラインを考慮してください。:
パッシブトランスフォーメーション
条件またはアクションに追加するマップレットでは、次のトランスフォーメーションを使用できます。
- •解析トランスフォーメーション
- •クレンジングトランスフォーメーション
- •ラベラトランスフォーメーション
- •ルール仕様トランスフォーメーション
- •ベリファイヤトランスフォーメーション
- •式トランスフォーメーション
- •パッシブモードでのJavaトランスフォーメーション
注: 条件またはアクションに追加するマップレットには、in-outパラメータを定義しないでください。Javaトランスフォーメーションを含むマップレットを条件またはアクションに追加する場合は、その前に、データ統合でトランスフォーメーションをコンパイルしてください。
マップレットで外部Javaパッケージを使用するJavaトランスフォーメーションの使用方法については、Knowledge Baseの記事
KB 000227229を参照してください。
ネストされたマップレット
最大4つのネストされたマップレットとルール仕様アセットを交互に使用して、条件またはアクションを設定できます。
次の例をご覧ください。
- •条件でマップレット関数を選択します。
- •RuleSpec1という名前のルール仕様トランスフォーメーションを含んだマップレットを読み取るように条件を設定します。
- •ルール仕様トランスフォーメーションは、マップレット関数を指定する条件を持つルール仕様アセットを読み取ります。
- •この条件で指定するマップレットには、追加のルール仕様アセットを読み取るRuleSpec2という名前のルール仕様トランスフォーメーションが含まれています。
このようにして、条件またはアクションの下に4つのレベルのマップレットとルール仕様を作成できます。
条件内の関数の設定
条件内のデータ操作を関数式として設定できます。ルール仕様の式のリストから関数式を選択することもできます。条件内で関数オプションを使用して、式を設定または選択します。
関数オプションは、ルール文でワークスペースに表示されるインライン条件オプションの代わりに使用できます。複数の入力を読み込むように関数を設定できます。また、関数オプションを使用すると、ディクショナリまたは他のルール仕様を条件に追加することもできます。
関数式を設定または選択するには、[条件の定義]ダイアログボックスを使用します。このダイアログボックスを開くには、ルール文の条件タイプとして[関数]を選択します。使用可能な関数式は、選択した演算子によって異なります。
次の図に、さまざまな演算子を使用する[条件の定義]ダイアログボックスのオプションを示します。
ダイアログボックスには次のオプションがあります。
- 1入力
[入力]のオプションでは、次のように入力データ値と他のデータ値を比較できます。
- - ルール文の入力と、同じ行の別のカラムからの入力を比較する。
- - ルール文の入力と、ユーザーが入力した値を比較する。
- - ルール文の入力と、ユーザーが入力した値の範囲を比較する。
次の演算子を使用して入力オプションを選択します。is、is not、is greater than、is greater than or equal to、is less than、is less than or equal to、is within、およびis not within。
- 2ディクショナリ
[ディクショナリ]のオプションを使用して、入力データ値とディクショナリ内の値を比較できます。
次の演算子を使用して[ディクショナリ]オプションを選択します。is withinおよびis not within。
- 3関数
[関数]のオプションを使用して、式を入力データに適用します。ダイアログボックスのリストから式を選択します。
次の演算子を使用して[関数]オプションを選択します。is、is not、is greater than、is greater than or equal to、is less than、is less than or equal to。
- 4ルール
[ルール]のオプションでは、入力データ値と別のルール仕様の出力を比較できます。選択したルール仕様が、実行時にルール文の一部として実行されます。
次の演算子を使用して[ルール]オプションを選択します。is、is not、is greater than、is greater than or equal to、is less than、is less than or equal to。
- 5マップレット
[ルール]のオプションを使用して、入力データ値とマップレットからの出力を比較できます。マップレットが、実行時にルール文の一部として実行されます。
次のような演算子を使用して[マップレット]オプションを選択します: is、is not、is greater than、is greater than or equal to、is less than、is less than or equal to。
マップレットの設定の詳細については、「
マップレット設定のオプション」を参照してください。
- 6式
[式]オプションを使用して、カスタム式を定義し、入力データに適用します。式をテキストとして入力するか、さまざまな組み込み式の中から選択することができます。
次のような演算子を使用して[式]オプションを選択します: is、is not、is greater than、is greater than or equal to、is less than、is less than or equal to。
- 7検索
[検索]のオプションでは、別の入力カラムの入力データ値を検索できます。ルール文により、カラムの値がすべて検索され、現在のルール文の入力値がないか確認されます。
contains演算子を使用して[検索]オプションを選択します。