データの品質が高いかどうかを判別するには、データがどの程度期待に合っているかを確認し、データの異常を特定します。 データの品質を評価することにより、 データの構造と内容を理解することができます。
データ品質ルールを実行して、定義された条件に基づいてデータを評価します。 ルールのタイプによって、データの取得元が決まります。
データ品質定義から作成されるルール
DataStageでサポートされている任意のコネクターからのデータ資産に対して、外部管理バインディングを使用して複雑なルールを実行できます。 DataStage コネクターを参照してください。
データを直接バインドする単純なルールでは、 サポートされるコネクター にリストされている接続がサポートされます。
さらに、ローカル・ファイル・システムからアップロードされた CSV 形式のファイルからのデータ資産、またはデータ・ソースへのファイル・ベースの接続からのデータ資産を処理できます。
SQL ベースのルール
サポートされるデータベース・タイプについては、 サポートされるコネクターを参照してください。
外部バインディングを持つデータ品質ルールまたは SQL ベースのデータ品質ルールをアセットまたは列のデータ品質スコアに寄与させるには、そのアセットまたは列を対応するルールの関連項目として追加します。 Validates data quality ofリレーションシップ・タイプを使用します。
- 必須のサービス
IBM Knowledge Catalog
DataStageまたはDataStage as a Service Anywhere'
DataStage,を使用すると、サポートされている地域でデータ品質ルールを実行できます。 DataStage as a Service Anywhereを使用すると、リモート・エンジンを使用してIBM Cloudの外部でデータ品質ルールを実行できます。 リモートエンジンの設定については、DataStage as a Service Anywhereのドキュメントを参照してください。- 必要な権限
データ品質ルールを実行するには、プロジェクト内で 管理者 役割または 編集者 役割を持っている必要があります。 さらに、 「データ品質ルールの実行」 ユーザー権限 も必要です。また、チェック対象のデータ資産のデータ・ソースへの接続にアクセスする権限が必要です。
ルールの実行履歴またはデータ品質ページからデータ品質の問題の原因となったデータ (出力テーブル) を表示するには、問題の詳細までドリルダウンする ユーザー権限が必要です。 しかし、出力テーブル用に作成されたプロジェクト内のデータ資産は、接続にアクセスできる人なら誰でもアクセスできる。 このデータ資産へのアクセスを制限するには、出力テーブルが保存されているデータ・ソースへの接続を個人認証情報で設定する必要があります。
ユーザー・インターフェースの代わりに API を使用して、以下のタスクを実行することもできます。 これらの API へのリンクは、 詳細情報 セクションにリストされています。
データ品質ルールの実行
データ品質ルールを実行するには、 DataStage フローと、その後の DataStage ジョブが必要です。 資産内から初めてルールを実行すると、デフォルトのジョブ設定を持つジョブが自動的に作成されます。 デフォルト名 DataStage flow of data rule <rulename>.DataStage job
の DataStage ジョブがプロジェクトに追加されます。
最初の実行後に、必要に応じてジョブ設定を変更して、スケジュールされた実行をセットアップすることができます。 あるいは、ジョブが終了する前に許容される警告の数 (デフォルトでは 100) を調整することもできます。 ジョブ設定を変更するには、ジョブの詳細ページに移動し、ツールバーの鉛筆アイコンをクリックします。 ルールの実行履歴またはプロジェクトの 「ジョブ」 ページでジョブ名をクリックすると、ジョブの詳細ページを表示できます。
また、プロジェクト内のルールのオーバーフロー・メニューから、または資産を開いたときに資産名の横にあるオーバーフロー・メニューから、ルール用の追加の DataStage ジョブを手動で作成することもできます。 データ品質ルールを実行するためのジョブの作成を参照してください。
ルールを手動で実行する前にルールがまだ有効であることを確認するには、オーバーフロー・メニューから 「検証」 を選択してルールの状況を確認します。
以下のいずれかの方法でルールを実行できます。
- データ品質ルールを開き、 「ルールの実行」をクリックします。 このオプションは、関連付けられた DataStage ジョブを作成するルールの初回実行に使用します。
- プロジェクトのルールオーバーフローメニューから実行を選択する。
- プロジェクトのジョブページに行き、ジョブの詳細を開き、アクションバーの実行アイコン'をクリックしてジョブを実行します。
また、ルールを実行するための繰り返しスケジュールを使用してジョブをセットアップすることにより、品質チェックを自動化することもできます。
ルールは IBM Cloud 資格情報を使用して実行されます。 通常、このような長時間実行操作を中断することなく実行するには、個人用の IBM Cloud API キーが使用されます。 ジョブの作成時に資格情報が使用できない場合は、API キーを作成するように求めるプロンプトが出されます。 その後、その API キーがタスク資格情報として保存されます。
グループ化ルール
特定のデータ品質ルールを 1 つの DataStage フローにグループ化して実行できます:
データ品質ルールはデータ品質定義から作成されなければならない。
ルール変数は、プロジェクト内の1つのデータ・アセットにバインドする必要があります:
- 以下のファイル・ストレージ・コネクタのいずれかからの単一ファイル:Amazon S3、Apache HDFS、AzureData Lake Storage、Google Cloud Storageのいずれか
- ローカルファイルシステムからアップロードされたファイル
- 単一のリレーショナル・データ資産
グループ化した個々のデータ品質ルールの構成によっては、ルールの実行に複数回のデータ通過が必要になる場合があります。
複数のデータ資産にバインドされているデータ品質ルールをグループ化することはできません。
以下のAPIコールを使用して、実行ルールをグループ化できます:
POST /data_quality/v3/projects/{project_id}/execute_rules
このAPIコールには以下のパラメータが必要である:
- project_id
ルールを含むプロジェクトのID
- 要求本文
以下の形式のペイロード:
{ "rules": [ { "id": "<rule1_id>" }, { "id": "<rule2_id>" } ] }
データ品質ルールにおける処理のプッシュダウン
データ品質ルール処理の特定の側面をデータ ソースにプッシュダウンして、ソースから転送されるデータの量を減らし、処理を高速化することができます。 列の選択、異なるデータ資産間の結合の作成、およびサンプリングは、リレーショナル データベース管理システム (RDBMS) を使用してデータ ソースにプッシュダウンされます。つまり、SQL クエリがサポートされます。 ファイルベースのデータ ソースの場合、処理はプッシュダウンされません。 SQL ベースのデータ品質ルールは常にデータ ソースで実行されます。
DataStage as a Service Anywhereを使用すると、リモート・エンジンを使用してIBM Cloudの外部でデータ品質ルールを実行できます。 リモートエンジンの設定については、DataStage as a Service Anywhereのドキュメントを参照してください。
列の選択
RDBMSデータソースの場合、次のようなSQL SELECT文がselect colA, colB from schema1.table1
データ ソース上で実行され、テーブルから必要な列のみを取得します。 このようなクエリは、ファイル ストレージ接続からのデータ資産に対して実行することはできません。 このようなファイルの場合、すべての列が取得され、DataStage変更ステージは列をフィルタリングするために使用されます。
結合
データ品質ルールに複数のデータ アセットにバインドされた 2 つ以上の変数がある場合、これらのデータ アセットは特定の列で結合する必要があります。
RDBMSデータソースの場合、次のようなJOIN句を含むSQL SELECT文SELECT col1, col2 FROM schema1.table1 INNER JOIN schema1.table2 ON table1.id = table2.id
データ ソース上で実行されます。 このクエリでは、データ資産の結合がデータ ソースで実行されます。 一部の RDBMS データ ソースでは、JOIN 処理がまったくサポートされていないか、特定の種類の JOIN 句のみがサポートされています。 例えば、 Google BigQueryJOIN 句をまったくサポートしていません。
結合を使用したデータ品質ルールの結果は、JOIN処理中にNULLや空文字列などの値がRDBMSデータソースによってどのように処理されるかにも依存する。
ファイルストレージ接続からのデータ資産の場合、各データ資産からすべてのレコードが取得され、DataStage結合ステージは、データ資産を結合するために使用されます。
サンプリング
RDBMS データ ソースの場合、データ ソースでランダム サンプリングとシーケンシャル サンプリングが実行されます。 順次サンプリングの場合、FETCH FIRST や LIMIT など、レコードを選択するための RDBMS 固有の句が SQL ステートメントに追加されます。
ファイルストレージ接続からのデータ資産の場合、すべてのレコードが取得され、DataStageサンプル ステージはサンプルを作成するために使用されます。
実行履歴の確認
データ・ルールを実行するたびに、実行レコードが作成されます。 これらの実行レコードはルールの実行履歴にリストされるため、実行ごとに結果がどのように変更されたかを確認できます。 実行レコードを表示するには、データ品質ルールを開き、 「実行履歴」 タブに移動します。 各実行レコードは、以下の情報を提供します。
- ハイパーリンクとして実行されるルールの開始時刻。 リンクをクリックして、ジョブ実行小売にアクセスします。
- ハイパーリンクとしての対応する DataStage ジョブの名前。 ジョブの詳細にアクセスするには、リンクをクリックします。
- 実行の状況。
- データ品質定義から作成されたルールの場合:
- テストされたレコードの数。
- レコードの数と、ルールを満たしたテスト済みレコードのパーセンテージ。
- ルールを満たしていないレコードの数と、テストされたレコードのパーセンテージ。
- SQL ベースの規則の場合:
- 「ルールが満たされていません (Rule not met)」 列内の select ステートメントによって返されたレコード数。
すべての実行レコードが保存され、削除するまで保管されます。 スペースを節約するために、定期的に実行履歴をクリーンアップすることを検討してください。 選択した実行レコードまたはすべての実行レコードを一度に削除できます。 実行レコードを削除すると、対応するジョブ実行の詳細も削除されます。
ルール出力表の確認
ルールに対して出力表が定義されている場合、ルール出力は、構成されたとおりにデータベース表に書き込まれます。 「 データ品質定義からのルールの作成 」または「 SQL ベースのルールの作成」の出力設定を構成するためのステップを参照してください。
出力表は、データ資産としてプロジェクトにも追加されます。 出力表には、以下のいずれかの方法でアクセスできます。
- ルールの実行履歴に移動し、 「出力表の表示」をクリックします。 ルール出力を CSV ファイルとしてダウンロードできます。例えば、多数のレコードを含む出力を検索またはフィルタリングする場合に、スプレッドシート・プログラムで使用できます。 出力ページには、プロジェクト内の対応するデータ資産へのリンクも表示されます。
- プロジェクトの出力表を開きます。 ルールで定義されている出力表と同じ名前のデータ資産を検索します。
- ネイティブ・データベース照会を使用して、データベース内の表にアクセスします。
もっと見る
- データ品質ルールを実行するためのジョブの作成
- データ品質定義からのルールの作成
- SQL ベースのルールの作成
- IBM Knowledge Catalog API:データ品質ルールの実行
- IBM Knowledge Catalog API:すべてのデータ品質ルールの実行結果またはそのサブセットの履歴を一覧表示する
- IBM Knowledge Catalog API:データ品質ルールの実行を取得する
親トピック: データ品質の管理