プロジェクトのデータ品質定義からデータ品質ルールを作成できます。
複数のデータ品質定義を 1 つの表に適用することも、単一のデータ品質ルールで同じ定義を同じ表の複数の列にバインドすることもできます。
少なくとも 1 つのデータ品質定義がプロジェクトに存在している必要があります。 データ品質定義の管理を参照してください。
データ品質定義からデータ品質ルールを作成するには、以下のようにします。
プロジェクトを開き、クリック新しい資産 > データ品質の測定と監視。
あるいは、データ品質定義から直接ルールを作成することもできます。
詳細を定義する:
データ品質ルールの名前を指定します。
オプション: 説明を提供します。
このデータ品質ルールが提供するデータ品質ディメンションを選択します。 データ品質ディメンションは、このアセット内のルール・ロジックのデータ品質メトリックを記述します。 選択したディメンションは、レポート・カテゴリー、フィルタリング、または選択したデータの視覚化に使用できます。
以下のいずれかのオプションを選択できます。
- すべての事前設定ディメンションを適用
- この規則は、使用されるデータ品質定義に設定されているすべてのディメンションのスコアに寄与します。 これはデフォルト設定です。
- このディメンションのみを適用
- 規則は、選択されたディメンションのスコアにのみ寄与します。 この規則で使用されるデータ品質定義のディメンション設定は無視されます。 このオプションを選択し、データ品質ディメンションを設定しない場合、ルールの個々のチェックのデータ品質スコアが 「なし」 ディメンションに取り込まれます。
オプション: 作成するルールのタイプを、SQL ベースのルールに変更します。 この場合は、 SQL ベースのルールの作成の手順に進みます。
少なくとも 1 つのデータ品質定義を追加してください。 データ品質定義から直接ルールを作成する場合、その定義は既に事前選択されています。 ただし、この事前選択されたデータ品質定義を削除して、別のデータ品質定義を選択することはできます。
データ品質定義を追加するには、 「追加」 をクリックし、同じルール内で複数のチェックを作成するために使用するすべてのデータ品質定義を選択します。 「追加」 ボタンは、データ品質定義が選択されていない場合にのみ使用できます。 少なくとも 1 つの定義を追加した後、プラス・アイコンを使用してさらに定義を追加できます。
「データ品質定義の選択」 ダイアログのすべてのデータ品質定義について、構成済みのルール式がサイド・パネルに表示され、目的に最も適した定義を選択するのに役立ちます。
同じ定義を表の別の列に適用する場合は、選択したデータ品質定義を必要に応じて何度でも複製できます。
出力構成に応じて、パスしたチェックまたは失敗したチェックごとに、出力テーブル内に別個のエントリーが作成されることに注意してください。
バインディングを構成します。
データ品質定義ごとに、ルール式内のすべての変数にデータをバインドします。 列データ、リテラル値、またはジョブ・パラメーターを変数にバインドできます。 構成されているバインディングによっては、次のステップで説明するように結合を作成しなければならない場合があります。
バインディングを完了するには、 「前へ」 矢印と 「次へ」 矢印またはドロップダウン・リストを使用して、データ品質定義間を移動します。 バインディング表には、すべての変数とそのデータ型が表示されます。 変数ごとに、変数をバインドするバインディング・タイプとデータを選択します。
列データをルール内の変数に直接バインドすると、サポートされている接続のいずれかから取得したプロジェクト内のすべてのデータ資産のデータを使用できます。 キュレーションおよびデータ品質のためにサポートされるコネクターを参照してください。 個人の資格情報を使用して作成された接続からデータをバインドする場合は、まず接続をアンロックする必要があります。 接続からのデータ資産に加えて、ローカル・ファイル・システムからアップロードされた CSV 形式のファイルからのデータ資産、またはデータ・ソースへのファイル・ベースの接続からのデータ資産を処理できます。
ただし、バインディングがデータの前処理を必要とする場合や、出力表に追加情報を組み込む必要がある場合があります。 この場合は、 「バインディングの外部管理」 オプションを有効にして、 DataStageをアクティブ化します。 既存のバインディングがすべて削除され、 DataStage フローが作成されます。 デフォルトでは、 DataStage フローの名前は
<rule_name>_DataStage_flow
ですが、この名前は変更します。 ルール構成の完了後に、 DataStage フローを構成します。 このような複雑なルールを作成し、バインディングを外部で管理すると、 DataStageでサポートされる接続からのすべてのデータ資産を処理できます。 DataStage コネクターを参照してください。外部バインディングを持つデータ品質ルールが資産または列のデータ品質スコアに寄与するようにするには、その資産または列を対応するルールに関連項目として追加します。 「データ品質の検証」 関係タイプを使用します。 この関係タイプにリンクされているすべての資産および列について、同じスコアと問題が報告されます。
ルール変数を単一のリテラル値または列にバインドすることに加えて、プロジェクト・レベルのジョブ・パラメーターを処理することができます。
「リテラルへのパラメーター」 オプションを使用すると、ルール変数を、中央で管理され、実行時に変更できるリテラル値にバインドできます。 このようなパラメーターは、通常、ファクトまたは特定のデータを表します。 ルールで実際の値の代わりにパラメーターを使用することにより、値が変更された場合に、ルールが常に最新の値を使用するようにすることができます。
ルール変数をジョブ・パラメーターにバインドする前に、再使用可能な DataStage パラメーター・セットを作成する必要があります。
- プロジェクトで、新しいアセット > 再利用可能なパラメータセットを定義する。
- デフォルト値または値セットを使用してパラメーターを定義します。 ルールで使用するために、日付、整数、ストリング、浮動小数点、時刻、またはタイム・スタンプのタイプのパラメーターを定義できます。 暗号化されたタイプ、リスト、およびパスはサポートされていません。 パラメーターおよびパラメーター・セットの作成と使用を参照してください。
値セットを使用する場合は、ジョブ実行ごとに変数値を変更できます。 ランタイム・パラメーター値を編集して、ジョブを再実行してください。
保守を容易にするために、バインディングで使用する列をプロジェクト・レベルのジョブ・パラメーターとして定義することもできます。 列パラメーターは、資産 ID と列名で構成され、 DataStage パラメーター・セットにも保管されます。 新しいパラメーター・セットを作成することも、既存のパラメーター・セットに列パラメーターを追加することもできます。 この場合、タイプ・ストリングのパラメーターを作成し、必要な資産 ID と列名をデフォルト値として手動で入力する必要があります。 より簡単な方法は、ルールの作成時にバインディング・ステップでそのようなパラメーターを追加することです。
- 「バインディング・タイプ」として、 「列からのパラメーター」を選択します。 次に、 「パラメーターの選択」をクリックします。
- 使用可能なすべてのパラメーター・セットがリストされます。 作業対象のものを展開します。
- パラメーターを追加するには、プラス・アイコンをクリックします。
- パラメーター名を指定します。 「プロンプト」 フィールドはスキップします。 列パラメーターには使用されません。
- データ資産と列を選択します。 この選択は、パラメーターのデフォルト値として設定されます。
値セットは列パラメーターでは使用できないことに注意してください。 また、実行時に列パラメーターを変更することもできません。
複数のルールで使用される列パラメーターを更新する場合は、これらの各データ品質ルールを開き、 「ルールの実行」をクリックして再実行する必要があります。
結合を作成します。 バインディングが結合を必要としない場合は、次のステップに移動できます。 ただし、出力表で複数の表のデータを使用する場合は、該当する表への結合を作成する必要があります。 バインディングを外部で管理する場合、ルール構成で結合を作成することはできません。 結合は、 DataStage フローでも定義する必要があります。
バインディングに結合が必要な場合は、表がリストされます。 結合をセットアップすると、 「結合完了」 列にチェック・マークが表示されます。 「結合キー」 表で、定義する結合ごとに以下のステップを実行します。
「鍵ペアの追加」をクリックします。
「キー 1」をクリックします。 次に、結合で使用する最初の項目を選択します。
「キー 2」 をクリックして、2 番目の項目を選択します。
結合のタイプを選択します。
- Inner Join (内部結合)
- 選択された列に等しい値が含まれているレコードは、出力データ・セットに転送されます。
- 左外部結合
- キー 1 に対して選択された列のすべてのレコードが出力表に転送されます。 キー 2 に対して選択された列のレコードは、値が一致する場合にのみ転送されます。
- Right Outer Join (右外部結合)
- キー 2 に対して選択された列のすべてのレコードが出力表に転送されます。 キー 1 に対して選択された列のレコードは、値が一致する場合にのみ転送されます。
- 全外部結合
- 両方の表のすべてのレコードが出力表に転送されます。
結合タイプはいつでも変更することができます。 ただし、キー 1 またはキー 2 の選択を変更する場合は、既存の鍵ペアを削除して、新しい鍵ペアを作成する必要があります。
オプション: サンプリングを構成します。
データ資産のすべての行を評価する必要がない場合、または評価する必要がない場合は、データ・サンプリングを有効にします。 したがって、一部のデータに基づいて結果を生成することができます。
通常の接続データ資産の場合、サンプリングはデータ・ソースで行われます。 ほとんどのデータベースでは、レコードの順序は確定的ではありません。 したがって、サンプルに含まれるレコードは実行ごとに異なる可能性があります。これは、結果と出力表の内容 (構成されている場合) も時間の経過とともに変化する可能性があることを意味します。
照会ベースの接続データ資産の場合、サンプリングはデータ・ソースではなく、ルールに関連付けられている DataStage フローのサンプル・ステージで行われます。
サンプルの最大サイズを設定します。 データ・サンプルに含めたいレコードの最大数を選択します。 デフォルト値は 1,000 レコードです。
サンプリング方法を選択してください:
- 順次
- このサンプルには、データ資産の最初の x 個のレコードが含まれています。 データ資産のサイズに応じて、数値 x は、最大許容サンプル・サイズとして指定した値までにすることができます。 例えば、1,000,000 個のレコードがあり、最大サンプル・サイズとして 2,000 を指定した場合、サンプルには最初の 2,000 個のレコードが含まれます。
- 間隔
- サンプルは、最大許容サンプル・サイズに達するまで、 n番目のレコードごとに組み込まれます。 例えば、1,000,000 個のレコードがある場合に、サンプル・サイズを 2,000、間隔を 10 と指定すると、最大 20,000 個のレコード (2,000*10) が読み取られ、サンプル・サイズが 2,000 になるまで 10 個ごとにレコードが選択されます。
- RANDOM
- サンプルには、許容される最大サンプル・サイズまで、ランダムに選択されたレコードが含まれます。 レコードの選択に使用される式は、(100/sample_percent)*sample_size*2です。 この数式では、有効なサイズのランダム・サンプルを得るために十分な数のレコードが読み取られるように、数値 2 が使用されています。 例えば、1,000,000 個のレコードがあり、サンプル・サイズとして 2,000、パーセントとして 5 を指定した場合、サンプルには 2,000 個のレコードが含まれます。 サンプルを作成するために、最大 80,000 レコード ((100/ 5) * 2,000 * 2 = 80,000) が読み取られます。
- 「パーセンテージ」 フィールドで、サンプルの作成に使用するパーセンテージを指定します。 0 より大きく 100 までの値を指定してください。
出力の設定と内容を構成します。
ルール出力を外部ロケーションに書き込むかどうかを選択します。 そうでない場合は、一部の統計情報のみがルールの実行履歴に提供されます。
ルール出力をデータベース表に書き込むことを選択できます。 バインディングが外部で管理されている場合は、最大 4 つの DataStage 出力リンクを作成するオプションもあります。
データベース表または出力リンクを生成するには、以下のようにします。
「外部出力」 オプションを有効にして、セクションを展開します。
生成する出力のタイプを選択します。
出力をデータベース表に書き込むには、以下のいずれかのオプションを選択します。
新規データベース・テーブルへの書き込み
接続を選択します。 選択した接続に応じて、スキーマを選択するか、カタログとスキーマを選択する。 次に、作成する出力テーブルの名前を入力する。
ルールを実行すると、この新しい出力表もデータ資産としてプロジェクトに追加されます。
既存のデータベース・テーブルへの書き込み
接続を選択します。 選択した接続に応じて、スキーマと既存のテーブルを選択するか、カタログ、スキーマ、既存のテーブルを選択する。 出力コンテンツセクションには、このテーブルのカラムが入力され、これらのカラムにコンテンツをマッピングすることができます。
対応するデータ資産がプロジェクトに存在しない場合は、ルールの実行時に作成されます。
サポートされるデータベース・タイプについては、 キュレーションおよびデータ品質のためにサポートされるコネクターを参照してください。 スキーマ名およびテーブル名は、以下の規則に従う必要があります。
- 名前の先頭文字は英字でなければなりません。
- 名前の残りの部分は、英字、数字、または下線で構成できます。
- 名前にスペースを含めることはできません。
ルール出力表に対応するデータ資産には、プロジェクトの 「資産」 ページまたはルールの 実行履歴からアクセスできます。
以下の設定を構成します。
出力レコード: すべてのレコードを出力に含めるか、ルール条件を満たさないレコードのみを出力に含めるか (デフォルト設定)、ルール条件を満たすレコードのみを出力に含めるかを選択します。
例外出力レコードの最大数: すべてのレコードを含めることも、最大数を設定することもできます。
更新方法: 新しい出力レコードを出力表の既存の内容に追加できます。 最新の実行の出力結果のみを保持する場合は、既存のレコードを上書きすることを選択します。
update メソッド Appendの場合、表スキーマは変更できません。つまり、列の名前変更、追加、または削除はできません。 データ品質ルールの出力内容を変更し、既存の出力表に書き込む場合は、必ず更新メソッド 「上書き」 を使用して、出力表の列を新しく定義した出力列に置き換えてください。
バインディングが DataStage フローで管理されている場合に出力リンクを作成するには、 「DataStage 出力リンク」を選択します。
最大 4 つの出力リンクを構成します。 特定のリンクにルーティングする出力 (すべてのレコード、ルール条件を満たさないレコードのみ、ルール条件を満たすレコードのみ、または違反したすべてのルール条件) を選択します。
また、リンクごとに書き込まれる出力レコードの最大数も定義します。
出力レコードの内容は、次のステップで構成する内容によって決まります。 違反しているルール条件の場合、ルール内のデータ品質定義の数に応じて、0 個以上の出力レコードが返されることがあります。 各出力レコードには、以下の情報があります。
- レコード ID。 このメトリックは、出力列として自動的に設定されます。
- 入力レコードが渡さなかった定義のうちの 1 つの定義の定義 ID
- 重複した定義の場合に、失敗した定義を一意的に識別する番号
定義 ID をプロジェクト内のデータ品質定義にマッピングするには、 IBM Knowledge Catalog API を使用します:
これらの出力リンクのターゲット・ノードは、 DataStage フローで構成する必要があります。
出力タイプはいつでも変更することができます。 新しい選択に応じて、構成された設定はリセットまたは上書きされます。
完了したら、セクションを省略し、出力内容の構成に進みます。
出力表の内容を構成します。
バインディングが外部で管理されている場合は、 DataStage 入力リンクを介して提供される追加の列を出力表に含めることができます。 このような列は、出力表構成にはリストされません。 ルール・バインディングで使用される変数を含めることはできません。
「出力内容の追加」 をクリックし、以下のいずれかのオプションを選択します。
- 「列」: 出力テーブルに表示する列を選択します。 このオプションは、バインディングが外部で管理されている場合は使用できません。
- 「統計および属性」: 出力表に含める追加の属性または統計を選択します。
アセットIDにバインド:ルールがバインドされているデータ資産の ID を一覧表示します。 このメトリックを選択すると、データ品質ルールの各データ資産に対して1つの出力レコードが書き込まれます。 したがって、個々の入力レコードに対して複数の出力レコードが書き込まれることがあります。 同じデータ品質ルールの異なるアセットに対する出力レコードの内容は、個々の入力レコードについ て、これらのメトリクスについてのみ異なる:データ品質定義、データ品質定義ID、資産IDへのバインド、および多分合格ルール、不合格ルール、合格ルール・パーセント、不合格ルール・パーセント
このメトリックは、外部管理バインディングを使用するルールでは使用できません。 また、このメトリックは、データ品質定義またはデータ品質定義IDメトリックと組み合わせてのみ使用できます。 ルールが複数のデータ品質定義に関連付けられている場合、メトリック曖昧性解消器が自動的に出力に含まれる。
列にバインド: バインドされている各列の名前をリストします。 このメトリックを選択すると、データ品質定義の列ごとに 1 つの出力レコードが書き込まれます。 したがって、個々の入力レコードに対して複数の出力レコードが書き込まれることがあります。 同じデータ品質定義の異なる列に対する出力レコードの内容は、個々の入力レコードについて、これらのメトリクスのみ異なる:データ品質定義、データ品質定義ID、列へのバインド、および多分合格ルール、不合格ルール、合格ルール・パーセント、不合格ルール・パーセント
このメトリックは、外部管理バインディングを使用するルールでは使用できません。 また、このメトリックは、データ品質定義またはデータ品質定義IDメトリックと組み合わせてのみ使用できます。 ルールが複数のデータ品質定義に関連付けられている場合、メトリック曖昧性解消器が自動的に出力に含まれる。
データ品質定義: 適用されたデータ品質定義の名前をリストします。 このメトリックを選択した場合、ルールに含まれるデータ品質定義の数に応じて、複数の出力レコードが書き込まれる可能性がある。
データ品質定義ID:適用されたデータ品質定義を識別する一意のキーを含む。 このメトリックを選択した場合、ルールに含まれるデータ品質定義の数に応じて、複数の出力レコードが書き込まれる可能性がある。
曖昧性解消子:データ品質定義が複数回使用される場合に、主にルールで使用されるデータ品質定義を曖昧にしないための番号が含まれる。 ナンバリングは0から始まる。
失敗したルール: レコードが満たさなかったルール条件の数を示します。
ジョブID:ルールのDataStageフローに関連付けられたジョブを識別する一意のキー。
ジョブランID:ルールのDataStageフローに関連付けられたジョブの個々の実行を識別する一意のキー。
合格ルール: レコードが満たすルール条件の数を示します。
合格率 (%) ルール: 満たされたルール条件のパーセンテージを示します。
失敗したルールの割合: 満たされなかったルール条件の割合を示します。
プロジェクトID:ルールが存在するプロジェクトを識別する一意のキー。
レコード ID: 出力内のレコードを識別する固有キーが含まれます。 このメトリックは、違反しているルール条件の出力リンクに自動的に組み込まれます。
ルールID:データ品質ルールを識別する一意のキーを含む。
ルール名: データ品質ルールの名前が含まれます。
システム日付: ルールが実行されたシステム日付を示します。 システム日付は、サーバーに設定されているタイム・ゾーンの日付です。
システム時間: ルールが実行されたシステム日時を表示します。 システム日時は、サーバーに設定されているタイム・ゾーンの日時です。
- 変数: ルール・ロジックから、出力テーブルに含める変数を選択します。
- 式: 出力列の内容を定義する式を追加します。 出力内容の概要では、この列に記述名を付けることができます。 ブロック・エレメントを使用して、式を構成することができます。 必要に応じて要素を選択して結合します。 ブロック・エレメントの使用について詳しくは、 データ品質定義の管理を参照してください。 あるいは、フリー・フォーム・エディターを使用して式を構成することもできます。 ルール・ロジックまたはルール出力のビルディング・ブロックを参照してください。
構成を確認してください。 ルールが正しく構成されていることを確認するために、実際にプロジェクトに保存する前にテストすることができます。 ルール・テストの出力が直接表示され、出力設定で構成した内容と一致します。
設定を変更するには、タイル上の編集アイコン「」をクリックし、設定を更新する。
レビューが完了したら、 「作成」をクリックします。 ルールとそれに関連する DataStage フローがプロジェクトに追加されます。 DataStage フローのデフォルト名は
DataStage flow of data rule <rulename>
です。 このようなフローは編集しないでください。ルールが外部管理バインディングを使用して構成されている場合、 「作成」をクリックすると、ルールと DataStage フローおよびそのサブフローがプロジェクトに追加されます。 しかし、ルールを実行する準備ができていません。 ルールを実行する前に、 DataStage フローを編集する必要があります。 「作成」&「編集」 DataStage フローを選択することもできます。 この場合、ルールと DataStage フローとそのサブフローもプロジェクトに追加されますが、 DataStage フロー構成に直接移動します。 このような DataStage フローの名前は、
<rule-name>_Datastage_flow
とDataStage subflow of data rule <rulename>
のパターンに従います。 フローの構成について詳しくは、 DataStage フローを参照してください。
情報が欠落していない状態でルールが正しく構成されている場合は、状況が 「作動可能」になります。 この状況は、ルールを実行できることを意味します。 ルール状況 「準備未完了」 は、一部の依存関係が変更されたためにルールを実行できないことを示します。 例えば、データ品質定義が更新されたか、ルールのバインディングで使用されている表が削除されました。 関連する DataStage フローが構成されていない場合、外部管理バインディングを持つルールについても、状況 「準備未完了」 が表示されます。 フローを構成した後、オーバーフロー・メニューから 「検証」 を選択してルールを検証できます。 検証が正常に完了すると、状況が 「準備完了」に設定され、ルールを実行できるようになります。
ルールが分析するデータ資産を変更した後、そのルールが無効になる可能性があります。 そのため、ルールを手動で実行する前に、どのような場合でもルール状況を検証することをお勧めします。
もっと見る
次のステップ
親トピック: データ品質ルールの管理