Data Quality を使用すると、データテーブルの品質モニタリングルールを設定できます。これらのルールを使用して、テーブル内のデータが要件を満たしているかを確認したり、問題のあるデータを生成するタスクを自動的にブロックしたり、ダーティデータが後続プロセスに伝播することを防止したりできます。これにより、出力データが期待通りの品質を維持します。本トピックでは、特定のテーブルに対して品質モニタリングルールを設定、実行、および管理する方法について説明します。
前提条件
品質ルールはエンジンのデータテーブルに対して設定されます。この操作を行うには、まずエンジンのメタデータを取得する必要があります。詳細については、「メタデータの取得」をご参照ください。
制限事項
データソースの制限:MaxCompute、E-MapReduce、Hologres、CDH Hive、AnalyticDB for PostgreSQL、AnalyticDB for MySQL、StarRocks、MySQL、SQL Server、DLF、Lindorm の各データソースに対してのみ、品質モニタリングルールを設定できます。
ネットワークの制限:ルールを設定した後、テーブルデータを生成するスケジューリングノードは、Data Quality ルールチェックをトリガーするために、確立済みのネットワーク接続を持つ リソースグループ を使用する必要があります。
ルールの有効性に関する制限:動的しきい値を使用するルールは、正しく機能するために少なくとも 21 日分のサンプルデータを必要とします。21 日未満のデータでは、ルールチェックが失敗したり、不正確な結果を返す可能性があります。21 日分のサンプルデータがない場合は、ルールを設定し、スケジューリングタスクに関連付けてから、バックフィル 機能を使用して必要なデータを生成できます。
品質モニタリングのコアコンポーネント
テーブルに対する品質モニタリングルールの設定は、データ品質検証ロジックを定義するコアプロセスです。このプロセスには、以下の 4 つの主要な構成要素があります:
モニタリング範囲:データ品質チェックの対象となるアセットを指定します。設定内容には以下が含まれます:
Monitored Object:データ品質チェックの対象として、1 つ以上の物理テーブルを選択します。パーティションテーブルおよび非パーティション化テーブルの両方がサポートされています。
データ範囲:パーティションテーブルの場合、各チェックでスキャンするパーティションを動的に定義するためにパーティションフィルター式を使用する必要があります。たとえば、データタイムスタンプの前日におけるパーティションデータをチェックするには、
$[yyyymmdd-1]を使用します。
Monitoring Rule:データが期待通りであるかどうかを判断するための具体的な検証ロジックおよび測定基準を定義します。
ルール定義:監視対象に対して 1 つ以上の品質ルールを追加できます。各ルールは、ルールテンプレートからインスタンス化されます。テンプレートの種類は以下のとおりです:
システムテンプレート:DataWorks が提供する組み込みテンプレートを使用します。システムテンプレートは、整合性、一意性、有効性など、複数のディメンションをカバーしています。例:「テーブル行数の変動」および「フィールドの一意値のカウント」。
カスタムテンプレート:カスタム SQL を使用して再利用可能な検証ロジックを作成します。
ルールのプロパティ:各ルールについて、しきい値(例:変動率が 30 % を超えない)および重要度(強制ルールまたは通常ルール)といった主要なプロパティを設定する必要があります。強制ルールのチェックが失敗した場合、関連付けられたスケジューリングタスクをブロックできます。
Trigger Method:品質モニタリングタスクの実行タイミングを定義します。
定期トリガー:品質モニタリングを上流の DataWorks スケジューリングノード(通常は監視対象テーブルを生成するノード)に関連付けます。スケジューリングノードが正常に実行されると、関連付けられた品質ルールが自動的に検証のためにトリガーされます。これは、自動化されたデータ品質保証のベストプラクティスです。
Triggered Manually:この検証プロセスはスケジューリングタスクに関連付けられておらず、UI から手動で開始する必要があります。この方法は、一時的かつ単発のデータ探索および検証に適しています。
アラートポリシー:データ品質課題が発生した際の通知戦略を設定します。
アラートサブスクリプション:「失敗」や「警告」などの特定のルールチェック結果に対してアラートを設定できます。システムは、メール、SMS、電話、DingTalk チャットボット、Lark チャットボット、Enterprise WeChat チャットボット、およびカスタム Webhook など、さまざまなチャネルを通じて通知を送信します。
これらの 4 つの構成要素を設定して保存すると、完全な品質モニタリング計画が作成されます。本番環境に展開する前に、テスト実行機能を使用して設定内容を検証することを推奨します。
操作手順
ステップ 1:テーブル品質詳細ページへのアクセス
Data Quality ページに移動します。
DataWorks コンソール にログインします。画面右上のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、Data Quality へ移動 をクリックします。
テーブル別設定ページに移動します。
左側のナビゲーションウィンドウで、 をクリックして、ルール設定ページに移動します。
左側の データソース リストから、ルールを設定するテーブルを含むデータベースを選択します。
データベースタイプ、データベース、テーブル名、その他の条件でテーブルをフィルター処理します。目的のテーブル名をクリックするか、Rule Management を Actions 列でクリックして、テーブルの品質詳細ページに移動します。
このページには、現在のテーブルに対して設定済みのすべての品質モニターおよびルールが表示されます。品質モニターに関連付けられているかどうかに基づいて、ルールをフィルター処理できます。また、品質モニターに関連付けられていないルールについては、実行設定を定義できます。

ステップ 2:品質モニターの作成
品質モニターを作成します。
品質モニターは、以下の 2 つの方法のいずれかで作成できます:
ルール管理タブ
Table Quality Details ページで、Rule Management タブをクリックします。Monitor Perspective の横にある
アイコンをクリックして、新しい品質モニターを作成します。
品質モニタリングタブ
Table Quality Details ページで、品質モニタリングタブに切り替えます。モニターの作成 をクリックします。

品質モニターのパラメーターを設定します。
セクション
パラメーター
説明
Basic Configurations
Monitor Name
品質モニターのカスタム名を入力します。
Quality Monitoring Owner
この品質モニターのオーナーを指定します。アラートサブスクリプションを設定する際に、Email、Email and SMS、または Telephone の通知方法を使用して、オーナーをアラート受信者として指定できます。
Monitored Object
データ品質チェックの対象となるオブジェクトです。デフォルトでは、現在のテーブルが設定されます。
データ範囲
パーティションフィルター式を使用して、品質ルールがチェックするテーブルのパーティションを定義します。
非パーティション化テーブルの場合は、このパラメーターを設定する必要はありません。デフォルト値は Full Table です。
パーティションテーブルの場合は、式の形式は
partition_name=partition_valueです。パーティション値には、固定値または 組み込みパーティションフィルター式 を指定できます。
説明カスタムテンプレートまたはカスタム SQL を使用してルールを設定する場合、この設定は適用されません。カスタムテンプレートまたはカスタム SQL を使用して設定された品質ルールでは、カスタム SQL がチェック対象のパーティションを決定します。
品質ルールの選択
品質ルールの選択
品質モニターに関連付ける品質ルールを選択します。これらのルールは、指定された範囲内のデータが期待通りであるかどうかをチェックします。
説明異なるパーティションに対して複数の品質モニターを作成し、それぞれに異なる品質ルールを関連付けることで、異なるパーティションに異なる検証ルールを適用できます。
品質ルールを作成していない場合は、このステップをスキップできます。まず品質モニターを作成し、その後でルールを追加することもできます。品質ルールの作成方法については、「ステップ 3:データ品質ルールの設定」をご参照ください。
Running Settings
Trigger Method
品質モニターのトリガー方法です。
Triggered by Node Scheduling in Production Environment:品質モニターを DataWorks オペレーションセンター内の特定の定期タスクに関連付けます。タスクが正常に実行されると、この品質モニター内の品質ルールが自動的にトリガーされます。ドライランタスクは品質ルールチェックをトリガーしません。
Triggered Manually:現在の品質モニターに関連付けられた品質モニタリングルールを手動でトリガーできます。
重要監視対象のテーブルが MaxCompute テーブルでない場合、Trigger Method を Triggered by Node Scheduling in Production Environment に設定すると、選択した定期タスクは パブリックスケジューリングリソースグループを使用できません。それ以外の場合、品質モニターの実行時にエラーが報告されます。
スケジューリングノードの関連付け
Trigger Method を Triggered by Node Scheduling in Production Environment に設定した場合、このパラメーターを設定して関連付けられるスケジューリングノードを指定できます。指定されたスケジューリングノードが正常に実行されると、品質モニタリングルールが自動的にトリガーされます。
実行リソースの選択
品質ルールチェックを実行するために必要なコンピューティングリソースを指定します。デフォルトでは、監視対象テーブルのデータソースのリソースが選択されます。別のデータソースを選択する場合は、そのリソースがテーブルにアクセス可能であることを確認してください。
Handling Policies
Quality Issue Handling Policies
システムがデータ品質課題を検出した場合に使用するブロッキングまたはアラートポリシーを設定します。
Alert:データ品質課題が検出されると、システムは品質モニターのサブスクライブ済みチャネルにアラートを送信します。
デフォルトの条件は
強制ルール・重大アノマリー、強制ルール・警告アノマリー、強制ルール・チェック失敗、通常ルール・重大アノマリー、通常ルール・警告アノマリー、および通常ルール・チェック失敗です。Blocks:データ品質課題が検出されると、システムはテーブル品質チェックをトリガーした本番スケジューリングノードを特定し、そのノードを「失敗」として設定して、後続ノードの実行を防止します。このプロセスにより、問題のあるデータがパイプライン全体に拡散することを防ぎます。
デフォルトの条件は
強制ルール・重大アノマリーです。重要ポリシーを Blocks に設定した場合、品質ルールの条件が満たされると、システムはアラートも同時にトリガーします。
Alert Method Configuration
Email、Email and SMS、DingTalk Chatbot、DingTalk Chatbot @ALL、Lark Group Chatbot、Enterprise WeChat Chatbot、Custom Webhook、または Telephone を使用してアラート通知を送信できます。
説明チャットボットを使用するには、DingTalk、Lark、または WeCom のチャットボットを追加し、その Webhook URL を取得して、アラートサブスクリプションに貼り付けます。
Custom Webhook の通知方法は、DataWorks Enterprise Edition のみでサポートされています。Custom Webhook を使用したアラート通知のメッセージフォーマットについては、「付録:Webhook メッセージフォーマット」をご参照ください。
メール、メールおよび SMS、または 電話 を通知方法として選択した場合、受信者 を Data Quality Monitoring Owner、Shift Schedule、または Scheduling Task Owner に設定できます。
Data Quality Monitoring Owner:アラート通知は、現在の品質モニターの Basic Configurations セクションで指定された Quality Monitoring Owner に送信されます。
Shift Schedule:品質モニターに関連付けられたスケジューリングノードによって品質ルールチェックのアラートがトリガーされた場合、システムは 勤怠表における当日の当直ユーザー にアラート通知を送信します。
Scheduling Task Owner:アラート通知は、品質モニターに関連付けられたスケジューリングノードの オーナー に送信されます。
Save をクリックして品質モニターを作成します。
ステップ 3:データ品質ルールの設定
組み込みのテーブルレベルおよびフィールドレベルの監視テンプレートに基づいて品質ルールを設定できます。組み込みルールテンプレートの詳細については、「組み込みルールテンプレートの表示」をご参照ください。
Table Quality Details ページの Rule Management タブで、作成した品質モニターを選択し、Create Rule をクリックして、ルール設定ページに移動します。
データ品質ルールを作成します。
Data Quality では、品質モニタリングルールを設定するための複数の方法が提供されています。ビジネス要件に最も適した方法を選択してください。
方法 1:システムテンプレート
Data Quality では、数十種類の組み込み 品質ルールテンプレート が提供されています。左側のペインで、テンプレートの横にある + 使用 をクリックすると、品質モニタリングルールをすばやく作成できます。複数のルールを同時に追加できます。
+ システムテンプレートルール を上部でクリックし、Template パラメーターを変更することで、ルールテンプレートを変更できます。
方法 2:カスタムテンプレート
説明カスタムテンプレートを使用してルールを作成する前に、 に移動して、カスタムルールテンプレートを作成する必要があります。詳細については、「カスタムルールテンプレートの作成および管理」をご参照ください。
カスタムテンプレートを使用する場合、システムは自動的に基本設定(FLAG parameter および検証用の SQL など)を表示します。カスタムの Rule Name を指定し、ルールの種類に応じてモニタリングしきい値を設定できます。たとえば、数値型ルールでは通常しきい値および重大しきい値を指定する必要がありますが、変動型ルールでは警告しきい値も指定する必要があります。
方法 3:カスタム SQL
この方法では、テーブルのデータ品質検証ロジックをカスタマイズできます。
方法 4:カスタムスクリプト
カスタムスクリプトルールは、時間単位および分単位のデータ検証をサポートします。スクリプトルールの記述方法については、「システムルールテンプレートの使用」をご参照ください。例:
- assertion: change 30 minutes ago for max(id) = 15 name: id フィールドの max 値の 30 分前の差分は 15
(任意)設定したルールを品質モニターに追加します。品質モニターの詳細については、「ステップ 2:品質モニターの作成」をご参照ください。
説明品質ルールは、品質モニターに追加した後にのみトリガーされます。既存の品質モニターを選択するか、品質モニターを設定する際の 品質ルールの選択 ステップでこの品質ルールを選択できます。

OK をクリックします。
ステップ 4:ルール実行のテスト
品質モニター内のルールを以下の方法でテストできます。
ルール管理タブから
Rule Management タブで、Monitor Perspective の下で作成した品質モニターを見つけ、Test Run をクリックします。

Test Run ダイアログボックスで、データ範囲 や スケジューリング時間 などのパラメーターを確認し、Test Run をクリックします。Started が表示されたら、View Details をクリックして、テスト実行の詳細結果を表示できます。

品質モニタリングタブから
Monitor タブで、作成した品質モニターを見つけ、Actions 列の Test をクリックします。

Test Run ダイアログボックスで、データ範囲 や スケジューリング時間 などのパラメーターを確認し、Test Run をクリックします。Started が表示されたら、View Details をクリックして、テスト実行の詳細結果を表示できます。

ステップ 5:アラートサブスクリプションの変更
「ステップ 2:品質モニターの作成」でアラートサブスクリプションを設定しました。ルールがトリガーされると、システムは指定されたアラート受信者に通知を送信します。他のユーザーに通知するようにアラートサブスクリプションを変更したい場合は、以下の方法で設定できます。
ルール管理タブから
Rule Management タブで、Monitor Perspective の下で作成した品質モニターを見つけ、次の図に示すようにアラートサブスクリプションページを開きます。

アラートサブスクリプション ダイアログボックスで、Notification Method および Recipient を追加し、Actions 列の Save をクリックします。設定を保存した後、別のサブスクリプションを追加できます。
サポートされる通知方法には、Email、Email and SMS、DingTalk Chatbot、DingTalk Chatbot @ALL、Lark Group Chatbot、Enterprise WeChat Chatbot、Custom Webhook、および Telephone があります。
説明チャットボットを使用するには、DingTalk、Lark、または WeCom のチャットボットを追加し、その Webhook URL を取得して、アラートサブスクリプションに貼り付けます。
Custom Webhook の通知方法は、DataWorks Enterprise Edition のみでサポートされています。Custom Webhook を使用したアラート通知のメッセージフォーマットについては、「付録:Webhook メッセージフォーマット」をご参照ください。
メール、メールおよび SMS、または 電話 を通知方法として選択した場合、受信者 を Data Quality Monitoring Owner、Shift Schedule、または Scheduling Task Owner に設定できます。
Data Quality Monitoring Owner:アラート通知は、現在の品質モニターの Basic Configurations セクションで指定された Quality Monitoring Owner に送信されます。
Shift Schedule:品質モニターに関連付けられたスケジューリングノードによって品質ルールチェックのアラートがトリガーされた場合、システムは 勤怠表における当日の当直ユーザー にアラート通知を送信します。
Scheduling Task Owner:アラート通知は、品質モニターに関連付けられたスケジューリングノードの オーナー に送信されます。
品質モニタリングタブから
Monitor タブで、作成した品質モニターを見つけ、Actions 列の をクリックします。

アラートサブスクリプション ダイアログボックスで、Notification Method および Recipient を追加し、Actions 列の Save をクリックします。設定を保存した後、別のサブスクリプションを追加できます。
サポートされる通知方法には、Email、Email and SMS、DingTalk Chatbot、DingTalk Chatbot @ALL、Lark Group Chatbot、Enterprise WeChat Chatbot、Custom Webhook、および Telephone があります。
説明チャットボットを使用するには、DingTalk、Lark、または WeCom のチャットボットを追加し、その Webhook URL を取得して、アラートサブスクリプションに貼り付けます。
Custom Webhook の通知方法は、DataWorks Enterprise Edition のみでサポートされています。Custom Webhook を使用したアラート通知のメッセージフォーマットについては、「付録:Webhook メッセージフォーマット」をご参照ください。
メール、メールおよび SMS、または 電話 を通知方法として選択した場合、受信者 を Data Quality Monitoring Owner、Shift Schedule、または Scheduling Task Owner に設定できます。
Data Quality Monitoring Owner:アラート通知は、現在の品質モニターの Basic Configurations セクションで指定された Quality Monitoring Owner に送信されます。
Shift Schedule:品質モニターに関連付けられたスケジューリングノードによって品質ルールチェックのアラートがトリガーされた場合、システムは 勤怠表における当日の当直ユーザー にアラート通知を送信します。
Scheduling Task Owner:アラート通知は、品質モニターに関連付けられたスケジューリングノードの オーナー に送信されます。
次のステップ
品質モニターが実行された後、左側のナビゲーションウィンドウで Quality O&M をクリックし、Monitor および Running Records をクリックして、テーブルの品質チェックステータスおよび品質ルールチェックの完全な記録を表示できます。
付録
付録 1:変動率および分散の計算式
変動率の計算式:
変動率 = (サンプル値 - ベースライン値) / ベースライン値サンプル値:当日に収集されたサンプルの値です。たとえば、SQL タスクにおけるテーブル行数の 1 日変動チェックの場合、サンプルは当日のパーティションの行数です。
ベースライン値:過去のサンプルから得られる比較値です。
説明ルールが SQL タスクにおける
テーブル行数、1 日変動率のチェックである場合、ベースライン値は前日のパーティションの行数です。ルールが SQL タスクにおける
テーブル行数、7 日平均変動率のチェックである場合、ベースライン値は過去 7 日間の平均行数です。
分散変動の計算式:
(現在のサンプル - 過去 N 日間の平均) / 標準偏差説明分散は、BIGINT や DOUBLE などの数値型でのみ使用できます。
付録 2:組み込みパーティションフィルター式
以下の例では、次のシナリオを想定しています:
データタイムスタンプ(bizdate)は
20240524スケジューリング時間は
10:30:00
パーティションフィルター式 | 説明 | 例 |
| 現在のデータタイムスタンプのパーティションデータをチェックします。 |
|
| データタイムスタンプの前日のパーティションデータをチェックします。 |
|
| データタイムスタンプの 7 日前(1 週間前)のパーティションデータをチェックします。 |
|
| データタイムスタンプと同じ日にちの前月のパーティションデータをチェックします。 |
|
| 現在のデータタイムスタンプのパーティションを、現在のスケジューリング時間の秒単位でチェックします。 |
|
| 現在のデータタイムスタンプの深夜0時に、第2レベルのパーティションデータをチェックします。 |
|
| 現在のデータタイムスタンプにおけるスケジューリング時刻の 1 時間前の第2レベルのパーティションデータをチェックします。 |
|
| (時間単位のパーティションの場合)スケジューリング時間の 1 時間前のパーティションをチェックします。フォーマットは通常 |
|
| (分単位のパーティションの場合)スケジューリング時間の 30 分前のパーティションをチェックします。フォーマットは通常 |
|
| (2 レベルのパーティションの場合)データタイムスタンプの前日のすべての時間単位のパーティションデータをチェックします。 |
|