DataWorks の品質監視ノードを使用すると、ルールを設定してデータソース内のテーブルのデータ品質を監視し、ダーティデータを検出できます。また、スケジューリングポリシーをカスタマイズして、データ検証タスクを定期的に実行することもできます。このトピックでは、品質監視ノードを使用してデータ品質を監視する方法について説明します。
背景情報
DataWorks の Data Quality 機能は、ソースデータの変更を検出し、ETL (Extract, Transformation, and Load) プロセス中に生成されたダーティデータを特定するのに役立ちます。問題のあるタスクを自動的にインターセプトして、ダーティデータが下流に伝播するのを防ぎます。これにより、予期しないデータがビジネス運用を妨げたり、ビジネス上の意思決定に影響を与えたりすることを防ぎます。また、タスクの再実行を防ぐことで、トラブルシューティング時間を大幅に短縮し、リソースを節約します。詳細については、「Data Quality」をご参照ください。
制限事項
-
サポートされているテーブルタイプ:MaxCompute、E-MapReduce、Hologres、CDH Hive、AnalyticDB for PostgreSQL、AnalyticDB for MySQL、および StarRocks。
-
サポートされているテーブルの範囲:
-
監視できるのは、品質監視ノードが配置されているワークスペースにバインドされているデータソース内のテーブルのみです。
-
各ノードは 1 つのテーブルしか監視できませんが、複数の監視ルールを設定できます。監視範囲はテーブルタイプによって異なります:
-
非パーティション化テーブルの場合、デフォルトでテーブル全体が監視されます。
-
パーティションテーブルの場合、パーティションフィルター式を使用して監視するパーティションを指定する必要があります。
説明複数のテーブルを監視するには、複数のノードを作成してください。
-
-
-
操作上の制限:
-
Data Studio で作成された品質監視ルールは、Data Studio 内でのみ実行、変更、デプロイが可能です。これらのルールは Data Quality モジュールで表示できますが、そこからスケジュールに基づいてトリガーしたり、管理したりすることはできません。
-
品質監視ノードの監視ルールを変更してノードをデプロイすると、以前に生成された監視ルールは置き換えられます。
-
前提条件
-
計算エンジンがワークスペースにバインドされており、監視したいテーブルがその中に作成されていること。
データ品質監視タスクを実行する前に、監視ノードがチェックするテーブルを作成する必要があります。詳細については、「計算エンジンのバインド」および「ノードの開発」をご参照ください。
-
リソースグループが作成されていること。
品質監視ノードは、サーバーレスリソースグループでのみ実行できます。詳細については、「リソースグループの管理」をご参照ください。
-
(オプション、RAM ユーザー向け) タスク開発用の RAM ユーザーが対応するワークスペースに追加され、Development または スペース管理者 のロールが付与されていること。ワークスペース管理者ロールは広範な権限を持つため、慎重に付与する必要があります。メンバーの追加と権限付与の詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
ステップ 1:品質監視ノードの作成
-
DataWorks コンソールの [ワークスペース] ページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[操作] 列で を選択します。
-
左側のナビゲーションウィンドウで、
をクリックしてデータ開発に移動します。Project Directory の横にある
をクリックし、 を選択します。画面の指示に従って、ノードのパスと名前を入力して作成します。
ステップ 2:品質監視ルールの設定
1. 監視対象テーブルの選択
品質監視ノードのエディターページで、Add Table をクリックします。Add Table ダイアログボックスで、監視するテーブルを選択します。More フィルターを使用すると、テーブルをより速く見つけることができます。
テーブルがリストにない場合は、データマップの [マイデータ] に移動してください。
2. 監視データ範囲の設定
-
非パーティション化テーブル:デフォルトでテーブル全体が監視されます。このステップはスキップできます。
-
パーティションテーブル:監視するパーティションデータを選択する必要があります。スケジューリングパラメーターを使用できます。Preview をクリックして、パーティションフィルター式が正しく解決されることを確認します。
3. データ品質監視ルールの設定
新しいルールを作成するか、既存のルールをインポートできます。設定されたルールはデフォルトで有効になります。
-
品質監視ノードでルールを作成する際、[DataWorks Copilot ルール推奨] 機能を使用して、テーブル情報に基づいて品質ルールをインテリジェントに生成できます。その後、必要に応じて提案を受け入れるか拒否することができます。
-
DataWorks Copilot は一部のリージョンでパブリックプレビュー中です。ご利用のワークスペースがあるリージョンで利用できない場合は、このトピックで説明されているように、手動でルールを作成またはインポートできます。
-
新規ルールの作成
Create Rule をクリックして、テンプレートまたはカスタム SQL に基づいて品質監視ルールを作成します。以下のセクションでは、これらの方法について説明します。
組み込みテンプレート
以下の手順に従って、ルールテンプレートから品質監視ルールを迅速に作成できます。
説明左側の組み込みテンプレートリストで必要なルールテンプレートを見つけ、[+ 使用] をクリックして作成することもできます。
ダイアログボックスの右側にある [+ 組み込みテンプレートルール] タブをクリックします。左側の [組み込みテンプレート] パネルで、[テーブル行数] などのテンプレートカテゴリを展開し、対象のテンプレートを見つけて [+ 使用] をクリックします。右側のフォームでルールパラメーターを設定し、[OK] をクリックします。
カスタムテンプレート
この方法を使用する前に、まず でカスタムルールテンプレートを作成する必要があります。その後、そのテンプレートから品質監視ルールを作成できます。詳細については、「カスタムルールテンプレートの作成と管理」をご参照ください。
以下の手順は、カスタムテンプレートからデータ品質ルールを作成する方法を示しています。
説明左側のカスタムテンプレートリストで必要なルールテンプレートを見つけ、[+ 使用] をクリックして作成することもできます。
[ルールの作成] ダイアログボックスで、[+ カスタムテンプレートルール] タブをクリックします。[ルール名]、[ルールテンプレート]、[品質ディメンション]、[FLAG パラメーター]、[SQL]、[比較方法]、および [監視しきい値] (正常しきい値と重大しきい値を含む) を設定し、[OK] をクリックします。
カスタム SQL
この方法では、テーブルのカスタムデータ品質検証ロジックを定義できます。
上部の [+ カスタム SQL] タブをクリックします。右側のフォームで、[ルール名]、[ルールテンプレート] (カスタム SQL を選択)、[品質ディメンション]、[FLAG パラメーター]、[SQL]、[比較方法] ([手動設定] または [インテリジェント動的しきい値] を選択)、および [監視しきい値] を設定し、[OK] をクリックします。
-
既存ルールのインポート
対象テーブルの監視ルールが Data Quality モジュールに既に存在する場合、それらをインポートしてルールを迅速にクローンできます。ルールが存在しない場合は、まず Data Quality に移動して作成してください。詳細については、「ルールの設定:テーブル別 (単一テーブル)」をご参照ください。
説明この方法は、複数のルールの一括インポートをサポートし、テーブルフィールドレベルでの監視ルールの設定を可能にします。
Import Rule をクリックします。ルール ID または名前、ルールテンプレート、または関連する範囲 (テーブル全体または特定のフィールド) でインポートするルールを検索して選択できます。
ルールを選択した後、[OK] をクリックしてインポートを完了します。
品質監視ノードがデプロイされると、それに含まれるルールは Data Quality モジュールで表示できますが、変更や削除などの管理操作はそこでは許可されません。
4. ランタイムリソースの設定
品質ルールチェックのランタイムリソースを選択します。この選択により、品質監視タスクが実行されるデータソースが決まります。デフォルトでは、これは監視対象テーブルが配置されているデータソースです。
別のデータソースを選択した場合は、そのデータソースがテーブルへのアクセス権限を持っていることを確認してください。
ステップ 3:処理ポリシーの設定
ノードエディターページの Handling Policy セクションで、品質監視ルールが検出した例外に対する処理ポリシーと通知サブスクリプションを設定できます。
例外カテゴリ
|
例外カテゴリ |
説明 |
|
強制ルール:チェック失敗 |
|
|
強制ルール:重大な例外 |
|
|
強制ルール:警告の例外 |
|
|
非強制ルール:チェック失敗 |
|
|
非強制ルール:重大な例外 |
|
|
非強制ルール:警告の例外 |
例外処理ポリシー
ルールチェックによって生成された例外に対する処理ポリシーを設定できます:
-
無視しない:特定の例外カテゴリが検出された場合 (例えば、強制ルールが重大な例外をトリガーした場合)、システムが現在のノードを停止し、そのステータスを「失敗」に設定するように構成できます。
説明-
現在のノードが失敗すると、下流のノードは実行されません。これにより、本番パイプラインがブロックされ、問題のあるデータの拡散が防がれます。
-
チェックする例外カテゴリを複数追加できます。
-
このポリシーは通常、例外が大きな影響を与え、下流のタスクをブロックする必要がある場合に使用されます。
-
-
無視:例外を無視し、下流のノードの実行を続行します。
例外通知方法
例外の通知を受け取る方法 (例えば、メール) を設定できます。例外が発生すると、プラットフォームは指定された方法で通知を送信し、迅速に例外を処理できるようにします。
プラットフォームは複数の通知方法をサポートしており、UI によって異なる場合があります。以下にご注意ください:
-
メール、メールと SMS、および電話による通知は、現在のアカウント下のユーザーにのみ送信できます。受信者のメールアドレスと電話番号が正しく設定されていることを確認してください。詳細については、「アラート連絡先の表示と設定」をご参照ください。
-
その他の方法については、通知を受信するための Webhook URL を入力する必要があります。この URL の取得方法については、「Webhook URL の取得」をご参照ください。
ステップ 4:スケジューリングの設定
ノードタスクを定期的に実行するには、ノードエディターページの右側にある Scheduling Settings をクリックし、ビジネス要件に基づいてスケジューリングプロパティを設定します。詳細については、「ノードのスケジューリング設定」をご参照ください。
ステップ 5:タスクのデバッグ
タスクが期待どおりに実行されるかを確認するために、必要に応じて以下のデバッグ操作を実行します。
-
(オプション) ランタイムリソースグループを選択し、カスタムパラメーターに値を割り当てます。
-
品質監視ノードの右側で、Run Configuration をクリックし、デバッグ実行に使用する Resource Group for Scheduling を設定します。
-
タスクがスケジューリングパラメーターを使用している場合、デバッグのために Script Parameters セクションで変数に値を割り当てることができます。パラメーターの割り当てロジックの詳細については、「タスクのデバッグ」をご参照ください。
-
-
タスクを保存して実行します。
上部のツールバーにある
アイコンをクリックしてタスクを保存します。
アイコンをクリックしてタスクを実行します。タスクが完了したら、ノードエディターページの下部で実行結果を表示できます。実行が失敗した場合は、エラーメッセージに基づいて問題をトラブルシューティングします。
ステップ 6:タスクのデプロイ
ノードタスクが設定された後、それをデプロイする必要があります。デプロイ後、ノードはスケジューリング設定に従って定期的に実行されます。
品質監視ノードをデプロイすると、その中に設定されている品質ルールもデプロイされます。
-
上部のツールバーで、
アイコンをクリックしてノードを保存します。 -
上部のツールバーで、
アイコンをクリックしてノードをデプロイします。
ノードのデプロイ方法の詳細については、「ノードとワークフローのデプロイ」をご参照ください。
次のステップ
-
タスク O&M:タスクがデプロイされると、スケジューリング設定に基づいて定期的に実行されます。ノードエディターページの右上隅にある O&M をクリックしてオペレーションセンターに移動し、ノードの実行ステータスやトリガーされたルールの詳細など、タスクのスケジューリングと実行の詳細を表示できます。詳細については、「定期タスクの管理」をご参照ください。
-
Data Quality:品質監視ルールがデプロイされた後、Data Quality モジュールに移動してルールの詳細を表示できます。ただし、そこではルールの変更や削除などの管理操作は実行できません。詳細については、「Data Quality」をご参照ください。