Data Quality を使用して、ユーザープロファイルパイプライン内のダーティデータおよびソースデータの変更を、ダウンストリーム処理に到達する前に検出します。
前提条件
開始する前に、以下のチュートリアルを順に完了していることを確認してください。
背景情報
Data Quality は、構成されたルールに基づいて MaxCompute テーブルをモニタリングし、以下のような質問への回答を支援します。
本日の同期ジョブは、期待されるパーティションにデータを書き込みましたか?
結果テーブルにおける行数の変動は、トラフィックのアノマリーを示唆していますか?
ダウンストリーム集約を破損させる可能性のある重複したプライマリキーが存在しますか?
ルール違反が検出された場合、Data Quality は、構成したルールの種類に応じて、スケジューリングノードをブロック(ダーティデータの伝播を防止)またはアラート通知を送信します。
ルールの種類と違反時の応答:
| ルールの種類 | 重大しきい値を超えた場合 | その他の例外 |
|---|---|---|
| 強制ルール | ノードのステータスが「失敗」に設定され、子孫ノードがブロックされます | アラート通知が送信されます |
| 弱ルール | 重大アラートが送信されますが、子孫ノードはブロックされません | アラート通知が送信されます |
このチュートリアルでは、ユーザープロファイルパイプライン内の以下の 3 つのテーブルについて、モニタリングルールを設定します。
| テーブル | モニタリング要件 |
|---|---|
ods_raw_log_d_odps | 日次非ゼロ行数チェック(強制ルール) |
ods_user_info_d_odps | 日次非ゼロ行数チェック(強制ルール)+プライマリキーの一意性チェック(弱ルール) |
dwd_log_info_di_odps | ルール不要 |
dws_user_info_all_di_odps | ルール不要 |
ads_user_info_1d_odps | 7 日間行数変動率チェック(弱ルール)+非ゼロ行数チェック(強制ルール) |
テーブル別設定ページを開く
DataWorks コンソール にログインします。上部ナビゲーションバーから対象リージョンを選択します。左側ナビゲーションウィンドウで、データガバナンス > Data Quality を選択します。ドロップダウンリストから対象ワークスペースを選択し、Data Quality へ移動 をクリックします。
Data Quality ページの左側ナビゲーションウィンドウで、ルールの設定 > テーブル別設定 を選択します。
「テーブル別設定」ページで、以下の設定を使用してテーブルをフィルターします。
接続:MaxCompute
MaxCompute カテゴリ:本番環境の現在のプロジェクトを選択します(このチュートリアルでは
workshop2024_01を使用)
右側で、
ods_raw_log_d_odps、ods_user_info_d_odps、およびads_user_info_1d_odpsの各テーブルを検索します。各テーブルの [操作] 列で モニターの作成 をクリックし、「テーブル品質詳細」ページを開きます。
ods_raw_log_d_odps のモニタリングルールの設定
ods_raw_log_d_odps テーブルは、OSS から同期された Web サイトのアクセスログを格納します。非ゼロ行数チェックにより、ダウンストリーム処理開始前に同期ジョブが正常にデータを書き込んだことを保証します。
ステップ 1:モニターの作成
モニターは、どのパーティションをチェックするか、およびチェックをトリガーする条件を定義します。
モニター タブで、モニターの作成 をクリックします。
以下のパラメーターを設定します。
全パラメーターの詳細については、「単一テーブルのモニタリングルールの設定」をご参照ください。
パラメーター 値 データ範囲 dt=$[yyyymmdd-1]トリガー方法 本番環境でのノードスケジューリングによるトリガー — データ同期 ods_raw_log_d_odpsモニタリングルール 空欄のままにしてください。ルールは次のステップで追加します。
ステップ 2:モニタリングルールの作成
ルール管理 タブの モニターの視点 セクションで、
raw_log_number_of_table_rows_not_0モニターを選択し、ルールの作成 をクリックします。システムテンプレート タブで、「テーブルが空でない」ルールを見つけ、使用 をクリックします。
ペイン右側で、重要度 を 強制ルール に設定します。
強制ルールの場合、対象パーティションの行数が 0 の場合、Data Quality はアラートを発行し、
ods_raw_log_d_odpsノードのステータスを「失敗」に設定し、すべての子孫ノードをブロックします。決定 をクリックします。
その他のルールパラメーターについては、「単一テーブルのモニタリングルールの設定」をご参照ください。
ステップ 3:テスト実行
テストを実行して、ルール設定が期待通りに機能することを検証します。
モニターの視点 セクションで、
raw_log_number_of_table_rows_not_0モニターを選択し、テスト実行 をクリックします。テスト実行 ダイアログボックスで、スケジューリング時刻 を設定し、テスト実行 をクリックします。
テストが完了したら、詳細の表示 をクリックして、データがチェックを通過したかどうかを確認します。
ステップ 4:アラートのサブスクライブ
ルール違反が検出された際にアラート通知を受信できるよう、モニターをサブスクライブします。
モニターの視点 セクションで、
raw_log_number_of_table_rows_not_0モニターを選択し、アラートのサブスクライブ をクリックします。アラートのサブスクライブ ダイアログボックスで、通知方法 および 受信者 を設定し、保存 をクリックします。
すべてのサブスクライブ済みモニターを表示するには、左側ナビゲーションウィンドウで 品質 O&M > モニター を選択し、マイサブスクリプション を選択します。
ods_user_info_d_odps のモニタリングルールの設定
ods_user_info_d_odps テーブルは、ApsaraDB RDS for MySQL から同期された基本的なユーザーデータを格納します。2 つのルールが適用されます:空パーティションを検出するための強制ルール、およびプライマリキーの一意性をチェックするための弱ルールです。
ステップ 1:モニターの作成
モニター タブで、モニターの作成 をクリックします。
以下のパラメーターを設定します。
全パラメーターの詳細については、「単一テーブルのモニタリングルールの設定」をご参照ください。
パラメーター 値 データ範囲 dt=$[yyyymmdd-1]トリガー方法 本番環境でのノードスケジューリングによるトリガー — データ同期 ods_user_info_d_odpsモニタリングルール 空欄のままにしてください。ルールは次のステップで追加します。
ステップ 2:モニタリングルールの作成
ルール管理 タブの モニターの視点 セクションで、
user_info_quality_controlモニターを選択し、ルールの作成 をクリックします。システムテンプレート タブで、「テーブルが空でない」ルールを見つけ、使用 をクリックします。その後、重要度 を 強制ルール に設定します。
対象パーティションの行数が 0 の場合、Data Quality はアラートを発行し、
ods_user_info_d_odpsノードのステータスを「失敗」に設定し、すべての子孫ノードをブロックします。システムテンプレート タブで、「一意の値(固定値)」ルールを見つけ、使用 をクリックします。以下の設定を行います。
ルールの範囲:
uid(STRING)モニタリングしきい値:通常しきい値について、比較演算子を
=、値を0に設定重要度:弱ルール
決定 をクリックします。
その他のルールパラメーターについては、「単一テーブルのモニタリングルールの設定」をご参照ください。
ステップ 3:テスト実行およびアラートのサブスクライブ
ods_raw_log_d_odps に対して説明した「ステップ 3:テスト実行」および「ステップ 4:アラートのサブスクライブ」と同じ手順を、user_info_quality_control モニターを使用して実行します。
ads_user_info_1d_odps のモニタリングルールの設定
ads_user_info_1d_odps テーブルは、ユーザープロファイル分析の最終結果テーブルです。2 つのルールが適用されます:予期しないトラフィック変化を検出するための 7 日間行数変動率モニタリング(弱ルール)、およびテーブルが空でないことを確認するための非ゼロ行数チェック(強制ルール)です。
変動率ルールが検出する内容:
| アラートレベル | 条件 | 応答 |
|---|---|---|
| 通常 | 7 日間の行数変化率 ≤ 10 % | 処置なし |
| オレンジアラート | 7 日間の行数変化率 > 10 % | アラート通知が送信されます |
| レッドアラート | 7 日間の行数変化率 > 50 % | アラート通知が送信されます |
変動率ルールは弱ルールであるため、レッドしきい値を超えた場合でも、重大アラートのみが送信され、子孫ノードはブロックされません。
ステップ 1:モニターの作成
モニター タブで、モニターの作成 をクリックします。
以下のパラメーターを設定します。
全パラメーターの詳細については、「単一テーブルのモニタリングルールの設定」をご参照ください。
パラメーター 値 データ範囲 dt=$[yyyymmdd-1]トリガー方法 本番環境でのノードスケジューリングによってトリガーされます — データ同期 ads_user_info_1d_odpsモニタリングルール 空欄のままにしてください。ルールは次のステップで追加します。
ステップ 2:モニタリングルールの作成
ルール管理 タブの モニターの視点 セクションで、
ads_user_info_quality_controlモニターを選択し、ルールの作成 をクリックします。システムテンプレート タブで、「行数(7 日間変動率)」ルールを見つけ、使用 をクリックします。以下の設定を行います。
モニタリングしきい値:
レッドしきい値:比較演算子
>、値50%オレンジしきい値:比較演算子
>、値10%通常しきい値:比較演算子
<=、値10%
重要度:弱ルール
システムテンプレート タブで、「テーブルが空でない」ルールを見つけ、使用 をクリックします。重要度 を 強制ルール に設定します。
決定 をクリックします。
その他のルールパラメーターについては、「単一テーブルのモニタリングルールの設定」をご参照ください。
ステップ 3:テスト実行およびアラートのサブスクライブ
ods_raw_log_d_odps に対して説明した「ステップ 3:テスト実行」および「ステップ 4:アラートのサブスクライブ」と同じ手順を、ads_user_info_quality_control モニターを使用して実行します。
次のステップ
データ品質モニタリングを導入した後は、DataAnalysis を使用して処理済みのユーザープロファイルデータを可視化できます。詳細については、「データの可視化」をご参照ください。