プロジェクト内のデータの品質を評価するための SQL ベースのデータ品質ルールを作成できます。 特定の品質基準への準拠性を評価するのではなく、エラーを測定するためにこのようなルールを使用します。
SQL ベースのデータ品質ルールを資産または列のデータ品質スコアに反映させるには、その資産または列を対応するルールに関連項目として追加します。 「データ品質の検証」 関係タイプを使用します。 この関係タイプにリンクされているすべての資産および列について、同じスコアと問題が報告されます。
SQL ベースのデータ品質ルールを作成するには、以下のようにします。
プロジェクトを開き、クリック新しい資産 > データ品質の測定と監視。
詳細を定義する:
データ品質ルールの名前を指定します。
オプション: 説明を提供します。
オプション: データ品質ディメンションを選択して、この資産のルール・ロジックの 1 次データ品質メトリックを記述します。 選択したディメンションは、レポート・カテゴリー、フィルタリング、または選択したデータの視覚化に使用できます。
データ品質定義からルールを作成するときに、データ品質ディメンションが既に設定されている場合があります。 保持するか、ディメンション設定を削除するか、別のディメンションを選択することができます。
「SQL ステートメントの使用」 オプションを有効にします。
既存の接続を選択するか、新規接続を作成することにより、検査するデータのソースを指定します。 サポートされるデータ・ソースについては、 キュレーションおよびデータ品質のためにサポートされるデータ・ソースを参照してください。
既存の接続を選択し、この接続が個人資格情報を使用して作成された場合は、接続をアンロックする必要があります。
SQL ステートメントを入力します。
照会を作成するときは、SELECT ステートメントが以下の条件を満たしていることを確認してください。
- このステートメントは、固有の名前を持つ列のみを返します。 重複する名前を持つ列があると、検証エラーが発生します。
- このステートメントは、データ品質条件を満たさないレコードの数を返します。 SQL ベースのルールは、データ品質定義から作成されたルールとは異なる方法で機能します。 これらは、SELECT ステートメントが
failed
またはNot met
として返すレコードを報告します。 さらに、報告されるレコードの総数は、検査されたレコードの数ではなく、返されたレコードの数と等しくなります。
例えば、表
db2admin.credit_card
に 31 行があり、表内にカード・タイプ AMEX のレコードがいくつあるかを確認するとします。違いは以下のとおりです。データ品質定義からのデータ品質ルール
カード・タイプが AMEX であるレコードを確認します。
データ品質定義内の式:Col = 'AMEX'
データ品質ルール内のバインドされた式:credit_card.card_type = 'AMEX'
サンプル結果:Total: 31 | Met: 4 (12.9%) Not met: 27 (87.1%)
SQL ベースのデータ品質ルール
カード・タイプが AMEX ではないレコードをチェックします。
SELECT ステートメント:select card_type from db2admin.credit_card where card_type <> 'AMEX'
結果の例:Total: 27 | Met: 0 (0%) Not met: 27 (100%)
また、 データ品質ルールのサンプル SQL ステートメントのセットも確認してください。 これらのサンプルは、品質基準を満たさないレコードを返す SQL ルールを作成する方法を示しています。 提供されたステートメントを独自のデータ品質ルールにコピーし、必要に応じて調整することができます。
SELECT ステートメントで列、表、およびスキーマの名前を指定する際には、以下の規則を考慮してください。
- PostgreSQL データ・ソースの表およびスキーマの名前では、大/小文字が区別されます。 次の例のように、名前を二重引用符で囲む必要がある場合があります: "schema". "table_name"
SELECT *
照会を避けるようにしてください。 このような照会では、列名の変更時に検証エラーが発生する可能性があります。 列選択を絞り込みます。- 列名が英字で始まっていない場合、または列名に英字、数字、または下線以外の文字が含まれている場合は、列名に別名を使用します。
SQL ステートメントは、いつでもテストすることができます。 テストでは、照会によって選択された列の名前のみが返されることに注意してください。 実際の処理は行われません。 「次へ」をクリックすると、妥当性検査が行われます。 照会がこの検査に合格しない限り、続行できません。
出力の設定と内容を構成します。
ルール出力をデータベースに書き込むかどうかを選択します。 そうでない場合は、一部の統計情報のみがルールの実行履歴に提供されます。
データベース表を生成するには:
「外部出力」 オプションを有効にして、セクションを展開します。
以下のいずれかのオプションを選択します。
新規データベース・テーブルへの書き込み
接続を選択します。 選択した接続に応じて、スキーマを選択するか、カタログとスキーマを選択する。 次に、作成する出力テーブルの名前を入力する。
ルールを実行すると、この新しい出力表もデータ資産としてプロジェクトに追加されます。
既存のデータベース・テーブルへの書き込み
接続を選択します。 選択した接続に応じて、スキーマと既存のテーブルを選択するか、カタログ、スキーマ、既存のテーブルを選択する。 出力コンテンツセクションには、このテーブルのカラムが入力され、これらのカラムにコンテンツをマッピングすることができます。
対応するデータ資産がプロジェクトに存在しない場合は、ルールの実行時に作成されます。
サポートされるデータベース・タイプについては、 キュレーションおよびデータ品質のためにサポートされるデータ・ソースを参照してください。 スキーマ名およびテーブル名は、以下の規則に従う必要があります。
- 名前の先頭文字は英字でなければなりません。
- 名前の残りの部分は、英字、数字、または下線で構成できます。
- 名前にスペースを含めることはできません。
ルール出力表に対応するデータ資産には、プロジェクトの 「資産」 ページまたはルールの 実行履歴からアクセスできます。
SQL 照会は、どのレコードを出力表に書き込むかを決定しますが、以下の設定を構成することができます。
例外出力レコードの最大数: すべてのレコードを含めることも、最大数を設定することもできます。
更新メソッド: 新しい出力レコードを出力表の既存の内容に追加できます。 最新の実行の出力結果のみを保持する場合は、既存のレコードを上書きすることを選択します。
update メソッド Appendでは、表スキーマを変更できません。つまり、列の名前変更、追加、削除はできません。 データ品質ルールの出力内容を変更し、既存の出力表に書き込む場合は、更新メソッド 「上書き」 を使用して、出力表の列を新しく定義された出力列で置き換えるようにしてください。
出力タイプはいつでも変更することができます。 新しく選択した内容に応じて、構成されている設定がリセットまたは上書きされます。
出力表の内容を構成します。 デフォルトでは、SQL 照会によって選択されたすべての列が出力表に組み込まれます。 選択した列またはすべての列を削除したり、他のコンテンツを追加したりすることができます。 「出力内容の追加」 をクリックし、以下のいずれかのオプションを選択します。
「列」: 出力テーブルに表示する列を選択します。 SQL 照会が返すすべての列から選択できます。
「統計および属性」: 出力表に含める追加の属性または統計を選択します。
- レコード ID: 出力内のレコードを識別する固有キーが含まれます。
- ルール名: データ品質ルールの名前が含まれます。
- システム日付: ルールが実行されたシステム日付を示します。 システム日付は、サーバーに設定されているタイム・ゾーンの日付です。
- システム時間: ルールが実行されたシステム日時を表示します。 システム日時は、サーバーに設定されているタイム・ゾーンの日時です。
- 合格ルール: レコードが満たすルール条件の数を示します。
- 失敗したルール: レコードが満たさなかったルール条件の数を示します。
- 合格率 (%) ルール: 満たされたルール条件のパーセンテージを示します。
- 失敗したルールの割合: 満たされなかったルール条件の割合を示します。
構成を確認してください。 ルールが正しく構成されていることを確認するために、実際にプロジェクトに保存する前にテストすることができます。 ルール・テストの出力が直接表示され、出力設定で構成した内容と一致します。
設定を変更するには、タイル上の編集アイコンをクリックし、設定を更新します。 レビューが完了したら、作成をクリックします。 ルールとそれに関連するDataStageフローがプロジェクトに追加されます。 DataStage フローのデフォルト名は
DataStage flow of data rule <rulename>
です。
情報が欠落していない状態でルールが正しく構成されている場合は、状況が 「作動可能」になります。 この状況は、ルールを実行できることを意味します。 ルール状況 「準備未完了」 は、SQL 構文エラー、変更された依存関係、またはその他のルール定義の問題が原因でルールを実行できないことを示します。 例えば、データ・ソースにアクセスするためのパスワードが変更されました。 このステータスは、 IBM Knowledge Catalog API:データ品質ルールの作成 を使用して作成されたデータ品質ルールに見られやすい。 API を使用してデータ品質ルールを作成する場合は、ルールのテストと検証も必ず行ってください。
ルールを手動で実行する前にルールがまだ有効であることを確認するには、オーバーフロー・メニューから 「検証」 を選択してルールの状況を確認します。
もっと見る
次のステップ
親トピック: データ品質ルールの管理