Data Quality では、あらかじめ定義されたテーブルレベルおよびフィールドレベルのモニタリングルールテンプレートを提供しています。ルールをゼロから作成する代わりに、テンプレートを選択して複数のテーブルまたはフィールドに一度に適用できます。これは、大規模なデータウェアハウスにおいて多数のテーブルで一貫した品質チェックを実施する場合に有効です。
対応データソース
テンプレートは、以下のデータソースに対するモニタリングルールをサポートしています:MaxCompute、E-MapReduce (EMR)、Hologres、CDH Hive、AnalyticDB for PostgreSQL、AnalyticDB for MySQL、StarRocks、MySQL、Lindorm、SQL Server、Data Lake Formation (DLF)。
開始前の準備:手順の選択
開始前に、下記の表を参照して、適切な設定方法を選択してください。
| 判断事項 | オプション A | オプション B |
|---|---|---|
| 何をチェックしますか? | テーブル全体(行数、NULL 率、重複) | 特定のフィールド(値の分布、一意性、フォーマット) |
| 選択するテンプレートの種類 | テーブルレベル | フィールドレベル |
| 期待されるデータ範囲が明確ですか? | はい — 手動でしきい値を設定 | いいえ — システムが既存データから学習 |
| 使用する比較方法 | 手動設定 | インテリジェント動的しきい値 |
インテリジェント動的しきい値は、カスタム SQL ステートメント、カスタム範囲、または動的しきい値に基づくルールでのみ利用可能です。
仕組み
テンプレートからモニタリングルールを設定するには、以下の 3 段階があります:
-
テンプレートの選択とルールパラメーターの設定 — テーブルレベルまたはフィールドレベルの組み込みテンプレートを選択し、「良好なデータ」とは何かを定義する比較方法およびしきい値を設定します。
-
テーブルまたはフィールドの一括追加 — ルールを適用するすべてのテーブルまたはフィールドを選択します。
-
品質モニターとの関連付け — 品質モニターは、データ範囲(例:パーティション化テーブルの特定パーティションなど)を定義し、自動的にチェックをトリガーするスケジューリングノードとルールを関連付けます。
ステップ 1:テンプレートによる設定ページを開く
-
DataWorks コンソールにログインします。上部ナビゲーションバーで対象リージョンを選択します。左側ナビゲーションウィンドウで、データガバナンス > Data Quality を選択します。ドロップダウンリストから対象ワークスペースを選択し、Data Quality へ移動 をクリックします。
-
左側ナビゲーションウィンドウで、ルールの設定 > テンプレートによる設定 を選択します。Data Quality が組み込みの テーブルレベル および フィールドレベル のルールテンプレートを表示します。使用するテンプレートの横にある モニタリングルールの設定 をクリックします。

ステップ 2:ルールのプロパティを設定
モニタリングルールの一括追加 ページで、以下の設定を行います。
基本属性
| パラメーター | 説明 |
|---|---|
| データソースタイプ | このルールが対象とするテーブルのデータソースタイプです。対応データソースの完全な一覧については、「対応データソース」をご参照ください。 |
| ルールのソース | 「組み込みテンプレート」と選択したテンプレート名が表示されます。読み取り専用です。利用可能なテンプレートの完全な一覧については、「組み込みルールテンプレートの表示」をご参照ください。 |
| テンプレート | 選択したテンプレートです。 |
| ルール名 | 自動生成されます。必要に応じて名前の接尾辞を調整できます。 |
高度なプロパティ
比較方法の選択
| 方法 | 使用するタイミング | しきい値の動作 |
|---|---|---|
| 手動設定 | 期待されるデータ範囲または変動限界値が明確である場合 | 数値結果の場合、比較演算子を使用して固定の期待値と比較します。通常しきい値(期待範囲)および赤色しきい値(重大な逸脱)を設定します。変動ベースのチェックの場合、比較方法として「絶対値」「増加」「減少」のいずれかを選択し、通常しきい値を設定します。 |
| インテリジェント動的しきい値 | どのしきい値を設定すべきか不明な場合 | システムがインテリジェントアルゴリズムに基づいて合理的なしきい値を自動的に決定します。手動でのしきい値設定は不要です。異常なデータが検出されると、即座にアラートが発行されたり、タスクがブロックされたりします。非重大な異常結果の範囲を定義するために、オレンジ色しきい値を設定します。 |
インテリジェント動的しきい値は、カスタム SQL ステートメント、カスタム範囲、または動的しきい値に基づくルールでのみ利用可能です。
重要度の設定
| 値 | 赤色しきい値を超えた場合の影響 |
|---|---|
| 強制ルール | 関連するスケジューリングノードはデフォルトでブロックされ、後続タスクの実行が防止されます。 |
| 弱ルール | 関連するスケジューリングノードはブロックされません。アラートが送信されますが、後続タスクは継続して実行されます。 |
モニタリングしきい値の設定
-
比較方法 を 手動設定 に設定した場合:
-
通常しきい値:データ品質チェックの結果が指定条件を満たす場合、つまりデータ出力が期待通りであることを意味します。
-
赤色しきい値:データ品質チェックの結果が指定条件を満たす場合、つまりデータ出力が期待通りでないことを意味します。
-
数値結果の場合、以下のような比較演算子を使用して固定値と比較します:「より大きい」「以上」「等しい」「等しくない」「より小さい」「以下」。
-
変動ベースのチェックの場合、比較方法として 絶対値、増加、減少 のいずれかを選択します。
-
-
比較方法 を インテリジェント動的しきい値 に設定した場合:
-
オレンジ色しきい値:データ品質チェックの結果が指定条件を満たす場合、つまりデータは異常ですが業務に影響を与えないことを意味します。
-
ステータス:本番環境でルールを実行可能にするには、有効 に設定します。無効 に設定すると、テストモードでの実行やスケジューリングノードによるトリガーができなくなります。
ルールを無効にすると、テスト環境および本番環境の両方で実行できなくなります。
次へ をクリックして、モニタリングルールの生成 ページに進みます。
ステップ 3:テーブルまたはフィールドの追加
選択したテンプレートの種類に応じて、チェック対象のテーブルまたはフィールドを追加します。
テーブルの追加(テーブルレベルルールテンプレート)
-
テーブルの追加 をクリックします。一括作成 ページで、追加するテーブルを選択します。
一覧には、前ステップで設定した データソースタイプ に一致するすべてのテーブルが表示されます。必要に応じて テーブル名 でフィルター処理できます。
-
確認 をクリックして、選択したテーブルを ルールを設定するテーブル の一覧に追加します。
フィールドの追加(フィールドレベルルールテンプレート)
-
フィールドの追加 をクリックします。フィールドの選択 ダイアログボックスで、対象フィールドを含むテーブルを選択します。
選択対象のテーブル エリアには、前ステップで設定した データソースタイプ に基づくテーブルが一覧表示されます。
-
テーブルを選択した後、フィールドの選択 セクションにそのテーブルのすべてのフィールドが表示されます。必要に応じて フィールド名 または フィールドの説明 でフィルター処理できます。

-
フィールドを選択し、作成 をクリックします。フィールドが ルールを設定するフィールド の一覧に表示されます。
ステップ 4:品質モニターとの関連付け
品質モニターは、データ範囲(例:特定のパーティションなど)および品質チェックのトリガー設定を定義します。各テーブルまたはフィールドを品質モニターと関連付けます。
一括設定
-
1 つ以上のテーブルまたはフィールドを選択し、モニターの設定 をクリックします。

-
以下のいずれかの一括操作を選択します:
-
自動関連付け:選択したテーブルまたはフィールドを既存の品質モニターに自動的に関連付けます。
-
関連付け解除:選択したテーブルまたはフィールドの品質モニター関連付けを解除します。
-
一括追加:選択したテーブルに対して新しい品質モニター設定を作成します。以下の項目を設定します:
設定項目 説明 データ範囲 チェックするパーティションまたはデータの範囲。非パーティション化テーブルの場合、WHERE 句を使用して範囲を制限します (すべてのデータをチェックする場合は空白のままにします)。パーティションテーブルの場合、 Partition key=Partition valueのフォーマットを使用します。パーティション値には、定数または 組み込みパーティションフィルター式 を指定できます。トリガー方法 本番環境でのノードスケジューリングによってトリガー:オペレーションセンターで関連するスケジューリングノードが完了した後に、チェックが自動的に実行されます。ダミーランノードはチェックをトリガーしません。手動でトリガー:手動でトリガーした場合のみチェックが実行されます。 関連付けられたスケジューリングノード トリガー方法 を 本番環境でのノードスケジューリングによってトリガー に設定した場合に利用可能です。モニターに関連付けるスケジューリングノードを選択します。 実行リソース ルール実行時に使用される計算リソースです。デフォルトでは、現在のワークスペース内の監視対象テーブルのデータソースになります。異なるデータソースを選択する場合は、監視対象テーブルへのアクセスが可能であることを確認してください。
重要本番環境でのノードスケジューリングによってトリガー を選択した非 MaxCompute テーブルの場合、共有リソースグループ for スケジューリング上で実行されるスケジューリングノードを関連付けないでください。そうしないと、モニター実行時にエラーが発生する可能性があります。
-
単一テーブルの設定
-
対象テーブルまたはフィールドの横にある 品質モニタリング 列で、既存の品質モニターを選択するか、新規品質モニタリング をクリックして新規作成します。

-
モニターが存在しない場合は、モニターの作成 をクリックし、以下の項目を設定します:
基本設定
パラメーター 説明 モニター名 モニターの名称です。 品質モニタリング所有者 モニターの所有者です。アラートサブスクリプションを設定する際には、メール、メールおよび SMS、電話 のいずれかの通知チャネルで所有者を受信者として指定します。 監視対象オブジェクト チェック対象のテーブルです。デフォルトでは現在のテーブルになります。 データ範囲 チェック対象のパーティションまたはデータ範囲です。非パーティション化テーブルの場合、デフォルトで全データがチェックされます。パーティションテーブルの場合、 パーティションキー=パーティション値の形式を使用します。パーティション値には定数または組み込みパーティションフィルター式を指定できます。>説明カスタムテンプレートまたはカスタム SQL ステートメントに基づくルールの場合、データ範囲は効果がありません。パーティションはルール内の SQL ステートメントによって決定されます。
モニタリングルール このモニターに関連付けるモニタリングルールです。まだルールが存在しない場合は、この項目をスキップし、モニター作成後にルールを追加してください。 実行設定
パラメーター 説明 トリガー方法 一括設定と同じです。 関連付けられたスケジューリングノード 一括設定と同じです。 実行リソース 一括設定と同じです。 処置ポリシー
パラメーター 説明 品質問題処置ポリシー ブロック:データ品質問題が検出された場合、テーブルを生成するスケジューリングノードのステータスが「失敗」に設定され、後続ノードがブロックされます。デフォルト: 強制ルール・赤色アノマリー。アラート:問題が検出された際にアラート通知を送信します。デフォルト:強制ルール・赤色アノマリー、強制ルール・オレンジ色例外、強制ルール・チェック失敗、弱ルール・赤色アノマリー、弱ルール・オレンジ色例外、弱ルール・チェック失敗。アラート方法の設定 通知チャネル: メール、メールおよび SMS、DingTalk チャットボット、DingTalk チャットボット @ALL、Lark グループチャットボット、企業版 WeChat ロボット、カスタム Webhook、電話。DingTalk、Lark、WeChat のチャットボットを利用する場合は、ボットを追加し、Webhook URL を受信者欄にコピーしてください。カスタム Webhook は DataWorks Enterprise Edition のみで利用可能です。「付録:Webhook メッセージフォーマット」でメッセージフォーマットをご確認ください。 メール、メールおよび SMS、電話 を使用する場合、受信者は Data Quality モニタリング所有者(基本設定で設定した所有者)、勤怠表(勤怠表に登録された当直者)、スケジューリングタスク所有者(関連付けられたスケジューリングノードの所有者)のいずれかに設定します。 -
モニターを作成した後、一括モニタリングルールページに戻り、更新 をクリックします。その後、品質モニタリング 列で先ほど作成したモニターを選択します。

ステップ 5:テストおよび確定
モニタリングルールの生成 をクリックして、モニタリングルールの検証 ページを開きます。このページから以下の操作が可能です:
-
テスト実行:1 つ以上のルールを選択し、テスト実行 をクリックします。ダイアログボックスで データタイムスタンプ(シミュレートされたトリガー時刻)を選択します。システムは指定された時刻および データ範囲 に基づいてパーティション値を計算し、データが設定されたルールを満たすかどうかをチェックします。テスト実行が完了したら、操作 列の 実行記録 をクリックして結果を表示します。

-
サブスクリプション:アラート受信者および通知チャネルを設定します。「ステップ 4」のアラート方法のオプションをご参照ください。
-
関連付けられたスケジューリング:ルールをスケジューリングノードに関連付けます。推奨実行モードを使用 を選択すると、データリネージに基づいてシステムが推奨ノードに自動的にルールを関連付けます。手動で実行モードを指定 を選択すると、特定のノードに手動でルールを関連付けることができます。
重要ルールが自動的にトリガーされるには、スケジューリングノードとの関連付けが必要です。

-
ルール詳細の表示: 操作 列の ルール詳細の表示 をクリックすると、ルールの詳細ページが開き、ルールの編集、開始、停止、削除、およびログの表示が可能です。
-
削除:選択した 1 つ以上のルールを削除します。
テスト実行が成功し、スケジューリングの関連付けが完了したら、チェックの完了 をクリックします。
次のステップ
モニターが実行された後、左側ナビゲーションウィンドウで 品質 O&M を選択し、モニター > 実行記録 をクリックして、監視対象テーブルの品質チェック状況および完了済みルールチェック履歴を表示します。
付録:Webhook メッセージフォーマット
このセクションでは、カスタム Webhook を使用して送信されるアラート通知のメッセージフォーマットおよびパラメーターについて説明します。
サンプルメッセージ
{
"detailUrl": "https://dqc-cn-zhangjiakou.data.aliyun.com/?defaultProjectId=3058#/jobDetail?envType=ODPS&projectName=yongxunQA_zhangbei_standard&tableName=sx_up_001&entityId=10878&taskId=16876941111958fa4ce0e0b5746379cd9bc67999d05f8&bizDate=1687536000000&executeTime=1687694111000",
"datasourceName": "emr_test_01",
"engineTypeName": "EMR",
"projectName": "プロジェクト名",
"dqcEntityQuality": {
"entityName": "tb_auto_test",
"actualExpression": "ds=20230625",
"strongRuleAlarmNum": 1,
"weakRuleAlarmNum": 0
},
"ruleChecks": [
{
"blockType": 0,
"warningThreshold": 0.1,
"property": "id",
"tableName": "tb_auto_test",
"comment": "モニタリングルールのテスト",
"checkResultStatus": 2,
"templateName": "予期値と比較した一意なフィールド値の数",
"checkerName": "fulx",
"ruleId": 123421,
"fixedCheck": false,
"op": "",
"upperValue": 22200,
"actualExpression": "ds=20230625",
"externalId": "123112232",
"timeCost": "10",
"trend": "up",
"externalType": "CWF2",
"bizDate": 1600704000000,
"checkResult": 2,
"matchExpression": "ds=$[yyyymmdd]",
"checkerType": 0,
"projectName": "auto_test",
"beginTime": 1600704000000,
"dateType": "YMD",
"criticalThreshold": "0.6",
"isPrediction": false,
"ruleName": "ルール名",
"checkerId": 7,
"discreteCheck": true,
"endTime": 1600704000000,
"MethodName": "max",
"lowerValue": 2344,
"entityId": 12142421,
"whereCondition": "type!='type2'",
"expectValue": 90,
"templateId": 5,
"taskId": "16008552981681a0d6",
"id": 234241453,
"open": true,
"referenceValue": [
{
"discreteProperty": "type1",
"value": 20,
"bizDate": "1600704000000",
"singleCheckResult": 2,
"threshold": 0.2
}
],
"sampleValue": [
{
"discreteProperty": "type2",
"bizDate": "1600704000000",
"value": 23
}
]
}
]
}
パラメーターの説明
| パラメーター | 型 | 例 | 説明 |
|---|---|---|---|
ProjectName |
文字列 | autotest |
監視対象のコンピュートエンジンインスタンスまたはデータソースの名前です。 |
actualExpression |
文字列 | ds=20200925 |
監視対象のデータソーステーブルのパーティションです。 |
RuleChecks |
配列 | — | 検証結果のリストです。 |
BlockType |
整数 | 1 |
ルールの強度です。1 = 強制ルール、0 = 弱ルール。強制ルールでは、重大しきい値を超えるとスケジューリングタスクがブロックされます。 |
WarningThreshold |
浮動小数点数 | 0.1 |
警告しきい値です。期待値からの許容偏差を示します。 |
Property |
文字列 | type |
ルールがチェックするデータソーステーブルのカラムです。 |
TableName |
文字列 | dual |
検証対象のテーブル名です。 |
Comment |
文字列 | — | 検証ルールの説明です。 |
CheckResultStatus |
整数 | 2 |
チェック結果のステータスです。 |
TemplateName |
文字列 | 予期値と比較した一意なフィールド値の数 |
検証テンプレートの名前です。 |
CheckerName |
文字列 | fulx |
チェッカーの名前です。 |
RuleId |
長 | 123421 |
ルール ID です。 |
FixedCheck |
ブール値 | false |
チェックに固定値が使用されるかどうかを示します。true:固定値、false:固定値なし。 |
Op |
文字列 | > |
比較演算子です。 |
UpperValue |
浮動小数点数 | 22200 |
予測される上限値で、設定されたしきい値に基づいて自動生成されます。 |
ActualExpression |
文字列 | ds=20200925 |
チェックされたデータソーステーブルの実際のパーティションです。 |
ExternalId |
文字列 | 123112232 |
スケジュールされたタスクのノード ID です。 |
TimeCost |
文字列 | 10 |
検証タスクの実行時間です。 |
Trend |
文字列 | up |
モニタリング結果の傾向です。 |
ExternalType |
文字列 | CWF2 |
CDN マッピングシステムのタイプです。CWF のみがサポートされています。 |
BizDate |
Long | 1600704000000 |
データタイムスタンプです。オフラインデータの場合、チェック実行日の 1 日前になることが一般的です。 |
CheckResult |
整数 | 2 |
検証結果です。 |
MatchExpression |
文字列 | ds=$[yyyymmdd] |
パーティションフィルター式です。 |
CheckerType |
整数 | 0 |
チェッカーのタイプです。 |
ProjectName |
文字列 | autotest |
データ品質チェックのためのコンピュートエンジンまたはデータソースの名前です。 |
BeginTime |
長整数 | 1600704000000 |
検証操作の開始時刻です。 |
DateType |
文字列 | YMD |
スケジューリングサイクルのタイプです。YMD は、年次・月次・日次タスクを意味します。 |
CriticalThreshold |
フロート | 0.6 |
重大しきい値です。期待値からの逸脱度を示します。強制ルールがこのしきい値を超えると、スケジューリングタスクがブロックされます。 |
IsPrediction |
ブール値 | false |
結果が予測であるかどうかを示します。true:予測、false:予測ではない。 |
RuleName |
文字列 | — | ルールの名前です。 |
CheckerId |
整数 | 7 |
チェッカーの ID です。 |
DiscreteCheck |
ブール値 | true |
離散検証が有効かどうかを示します。true:離散、false:非離散。 |
EndTime |
長い | 1600704000000 |
検証結果クエリの終了時刻です。 |
MethodName |
文字列 | max |
サンプルデータ収集に使用されるメソッドです。サポートされる値: avg、count、sum、min、max、count_distinct、user_defined、table_count、table_size、table_dt_load_count、table_dt_refuseload_count、null_value、null_value/table_count、(table_count-count_distinct)/table_count、table_count-count_distinct。 |
LowerValue |
フロート | 2344 |
予測される下限値で、設定されたしきい値に基づいて自動生成されます。 |
EntityId |
Long | 14534343 |
パーティションフィルター式の ID です。 |
WhereCondition |
文字列 | type!='type2' |
検証タスクのフィルター条件です。 |
ExpectValue |
フロート | 90 |
期待値です。 |
TemplateId |
整数 | 5 |
検証テンプレートの ID です。 |
TaskId |
文字列 | 16008552981681a0d6**** |
検証タスクの ID です。 |
Id |
長い | 2231123 |
プライマリキー ID です。 |
ReferenceValue |
配列 | — | 過去のサンプル値です。 |
DiscreteProperty |
文字列 | type1 |
GROUP BY でグループ化されたサンプルフィールドの値です。たとえば、性別でグループ化すると、男性、女性、null などが返されます。 |
Value |
浮動小数点数 | 20 |
サンプル値です。 |
BizDate |
文字列 | 1600704000000 |
データタイムスタンプです。オフラインデータの場合、通常はチェック実行日の 1 日前です。 |
SingleCheckResult |
整数 | 2 |
単一チェックの検証結果です。 |
Threshold |
浮動小数点数 | 0.2 |
しきい値です。 |
SampleValue |
配列 | — | 現在のサンプル値です。 |
Open |
ブール値 | true |
ルールが有効かどうかを示します。 |