このトピックでは、Data Quality を使用してテーブルデータの品質を監視する方法について説明します。
前提条件
開始する前に、「データの同期」と「データの処理」で説明されているタスクを完了してください。
Data Integration を使用して、ApsaraDB RDS for MySQL のテーブル ods_user_info_d から MaxCompute のテーブル ods_user_info_d に基本的なユーザー情報が同期されています。
Data Integration を使用して、OSS の user_log.txt ファイルから MaxCompute のテーブル ods_raw_log_d に Web サイトのアクセスログが同期されています。
Data Studio を使用して、収集したデータが基本的なユーザーペルソナデータに変換されています。
背景情報
Data Quality は、さまざまなデータソースに対して、品質チェック、通知、管理サービスをワンストップで提供するプラットフォームです。Data Quality は、データセット内のデータを監視し、現在は MaxCompute テーブルをサポートしています。オフラインの MaxCompute データが変更されると、Data Quality はデータをチェックし、本番パイプラインをブロックしてダーティデータの拡散を防ぎます。Data Quality は、データ品質を分析および分類できる、過去のチェック結果の管理機能も提供します。
このチュートリアルでは、DataWorks の Data Quality 機能を使用して、ユーザーペルソナ分析のユースケースでソースデータの変更を迅速に検出し、ETL (抽出、変換、ロード) プロセス中に生成されるダーティデータを特定します。ユーザーペルソナの分析および処理フローに基づき、品質モニタリングのルールは次のとおりです。
テーブル名 | 要件詳細 |
ods_raw_log_d | 毎日同期される生のログデータを監視し、テーブルが空でないことを確認します。これにより、無効な処理を防ぎ、問題を迅速に対処できます。 |
ods_user_info_d | 毎日同期されるユーザー情報データをチェックします。行数がゼロでないこと (強ルール) とビジネスプライマリキーが一意であること (ソフトルール) を確認します。これにより、無効な処理を防ぎ、データの問題を早期に阻止します。 |
dwd_log_info_di | 個別には監視されません。 |
dws_user_info_all_di | 個別には監視されません。 |
ads_user_info_1d | ルールを設定して、ユーザーデータテーブルの日次行数を監視します。これにより、日次のユニークビジター (UV) の変化を追跡し、アプリケーションの状態を迅速に把握できます。 |
ルール設定ページへの移動
データ品質ページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ品質に移動] をクリックします。
テーブルのルール設定ページに移動します。
Data Quality の左側メニューで、 をクリックし、次のパラメーターに基づいて対象のテーブルを特定します。
データソース: MaxCompute
データベース: 現在の本番プロジェクト (workshop2024_01)。
テーブル: このチュートリアルでは、
ods_raw_log_d、ods_user_info_d、ads_user_info_1dテーブルの品質モニタリングを設定する必要があります。
検索結果で対象のテーブルを見つけ、Actions 列の Rule Management をクリックして、テーブルの品質詳細ページを開きます。以降のセクションで、具体的な設定について説明します。
品質モニタリングルールの設定
ods_raw_log_d の品質モニタリングルールの設定
ods_raw_log_d テーブルは、OSS から同期されたユーザーの Web サイトアクセスレコードを受け取るために使用されます。このテーブルのビジネスプロパティに基づき、テーブルの行数が 0 でないことをチェックするルールを設定します。次に、そのルールを品質モニターに関連付けて、データ品質チェックをトリガーします。
1. 品質モニターの設定
品質モニターは、対象テーブルの指定されたデータ範囲 (パーティション) のデータが期待値を満たしているかどうかをチェックします。
このステップでは、品質モニターの Data Range を dt=$[yyyymmdd-1] に設定します。モニターが実行されると、このパーティションのデータがチェックされます。
スケジューリングタスクが ods_raw_log_d テーブルで実行されるたびに、品質モニターがトリガーされます。モニターは、関連付けられた品質ルールを使い、対応するデータ範囲のデータをチェックして、データ品質ルールを満たしているか判断します。
次の手順を実行します。
テーブルの品質詳細ページで、Monitor タブをクリックし、Create Monitor をクリックします。
品質モニターを設定します。
主なパラメーター:
パラメーター
設定例
[Data Range]
dt=$[yyyymmdd-1]
[Trigger Method]
本番スケジューリングによってトリガーされます。データを同期するで作成された
ods_raw_log_dノードを選択します。[Monitoring Rule]
ここでは設定しません。後のセクションで設定します。
説明品質モニターの設定方法の詳細については、「単一テーブルのルール設定」をご参照ください。
このチュートリアルでは、日次のスケジューリングタスクによって生成されるテーブルデータが期待値を満たしているかどうかを監視することが目標です。テーブルは前日のデータを生成するため、スケジュールされた時刻が当日で、ビジネス時刻が前日であれば、データは期待どおりと見なされます。
2. 監視ルールの設定
ods_raw_log_d テーブルは、OSS から同期された Web サイトのアクセスレコードを受け取るために使用され、ユーザーペルソナ分析のソーステーブルとして機能します。無効な処理や品質の問題を防ぐために、このテーブルの行数が 0 より大きいことをチェックする強ルールを設定します。このルールは、同期タスクがテーブルのパーティションにデータを書き込んだかどうかを判断します。
モニターが ods_raw_log_d テーブルの対応するパーティションの行数が 0 であることを検出すると、アラートがトリガーされます。その後、ods_raw_log_d ノードは失敗し、後続タスクの実行をブロックします。
テーブルの品質詳細ページで、Rule Management タブをクリックします。Monitor Perspective で、作成した品質モニター (たとえば、
raw_log_number_of_table_rows_not_0) を選択します。次に、ページの右側で Create Rule をクリックして、Create Rule ページを開きます。System Template セクションで、The number of rows is greater than 0. ルールを見つけ、Use をクリックし、Degree of importance を Strong rules に変更します。
説明このチュートリアルでは、ルールは 強ルール として定義されています。
ods_raw_log_dテーブルの行数が 0 の場合、アラートがトリガーされ、後続タスクの実行がブロックされます。Determine をクリックします。
説明設定項目の詳細については、「単一テーブルのルール設定」をご参照ください。
3. 品質のモニタリングのテスト実行
テスト実行は、品質モニターのチェックルールが正しく設定されているかを検証するものです。品質ルールが正しく、期待どおりであることを確認するために、ルールの作成後に品質モニターをテスト実行します。
Rule Management タブの Monitor Perspective で、作成した品質モニター (例:
raw_log_number_of_table_rows_not_0) を選択します。右側の
アイコンをクリックし、次に Test Run をクリックすると、Test Run ダイアログボックスが開きます。Test Run ダイアログボックスで Data Timestamp を選択し、Test Run をクリックします。
テスト実行が完了したら、画面の指示に従い、View Details をクリックしてテスト結果を確認します。
4. 品質モニタリングのサブスクリプション
Data Quality は、監視およびアラート機能を提供します。品質モニターをサブスクライブして、品質チェックの例外に関する通知を迅速に受信し、それらに対処します。これにより、データのセキュリティ、安定性、およびタイムリーな出力が保証されます。
Rule Management タブの Monitor Perspective で、作成した品質モニタリングルール (例:
raw_log_number_of_table_rows_not_0) を選択します。 右側で
アイコンをクリックし、Subscribe to Alerts をクリックします。画面のプロンプトに従って、Notification Method と Recipient を追加します。次に、Actions 列で Save をクリックします。
サブスクリプションを設定した後、左側メニューで をクリックします。My Subscriptions を選択して、サブスクライブしたタスクを表示および変更します。
ods_user_info_d の品質モニタリングルールの設定
ods_user_info_d テーブルは、ApsaraDB RDS for MySQL から同期された基本的なユーザー情報を受け取るために使用されます。このテーブルのビジネスプロパティに基づき、テーブルの行数が 0 でないことと、ビジネスプライマリキーが一意であることをチェックするルールを設定します。次に、そのルールを品質モニターに関連付けて、データ品質チェックをトリガーします。
1. 品質モニターの設定
品質モニターは、対象テーブルの指定されたデータ範囲 (パーティション) のデータが期待値を満たしているかどうかをチェックします。
品質モニターの Data Range を dt=$[yyyymmdd-1] に設定し、前日のパーティションをチェックします。
スケジューリングタスクが ods_user_info_d テーブルで実行されるたびに、品質モニターがトリガーされます。モニターは、関連付けられた品質ルールを使い、対応するデータ範囲のデータをチェックして、データ品質ルールを満たしているか判断します。
次の手順を実行します。
Monitor タブで、Create Monitor をクリックします。
品質モニターを設定します。
主なパラメーター:
パラメーター
設定例
[Data Range]
dt=$[yyyymmdd-1]
[Trigger Method]
本番スケジューリングによってトリガーされます。データを同期するで作成された
ods_user_info_dノードを選択します。[Monitoring Rule]
ここでは設定しません。後のセクションで設定します。
説明品質モニターの設定方法の詳細については、「単一テーブルのルール設定」をご参照ください。
2. 監視ルールの設定
ods_user_info_d テーブルは、ApsaraDB RDS for MySQL から同期された基本的なユーザー情報を受け取るために使用され、ユーザーペルソナ分析のソーステーブルとして機能します。無効な処理や品質の問題を防ぐために、このテーブルの行数が 0 より大きいことをチェックする強ルールを設定します。このルールは、同期タスクがテーブルのパーティションにデータを書き込んだかどうかを判断します。
ルールが有効になった後、モニターが ods_user_info_d テーブルの対応するパーティションの行数が 0 であることを検出すると、アラートがトリガーされます。その後、ods_user_info_d ノードは失敗し、後続タスクの実行をブロックします。
Rule Management タブの Monitor Perspective で、作成した品質モニター (例:
user_info_quality_control) を選択します。 次に、[ルールを作成] をクリックして、[ルールを作成] ページを開きます。System Template セクションで、The number of rows is greater than 0. ルールを見つけ、Use をクリックし、Degree of importance を Strong rules に変更します。
説明このチュートリアルでは、ルールは 強ルール として定義されています。
ods_user_info_dテーブルの行数が 0 の場合、アラートがトリガーされ、後続タスクの実行がブロックされます。System Template セクションで、[一意の値の数、固定値] ルールを見つけて Use をクリックします。次に、Rule Scope、Monitoring Threshold、Degree of importance パラメーターを次のように設定します:
[Rule Scope]:
uid(STRING)[Monitoring Threshold]:
Normal threshold = 0[Degree of importance]:
soft rule
Determine をクリックします。
説明設定項目の詳細については、「単一テーブルのルール設定」をご参照ください。
3. その他の設定
品質モニタリングのテスト実行とサブスクリプションの手順は、「ods_raw_log_d の品質モニタリングルールの設定」で説明されている手順と同じです。
ads_user_info_1d の品質モニタリングルールの設定
ads_user_info_1d テーブルは、最終的なシンクテーブルです。そのビジネスプロパティに基づき、テーブル行数の変動を監視し、ビジネスプライマリキーの一意性をチェックします。これにより、日次の UV の変動を観察し、オンラインのトラフィック変更に関する情報を常に把握できます。ルールを品質モニターに関連付けて、データ品質チェックをトリガーします。
1. パーティションフィルター式の設定
品質モニターは、対象テーブルの指定されたデータ範囲 (パーティション) のデータが期待値を満たしているかどうかをチェックします。
前と同様に、Data Range を dt=$[yyyymmdd-1] に設定して、前日のパーティションをチェックします。
スケジューリングタスクが ads_user_info_1d テーブルで実行されるたびに、品質モニターがトリガーされます。モニターは、関連付けられた品質ルールを使い、対応するデータ範囲のデータをチェックして、データ品質ルールを満たしているか判断します。
次の手順を実行します。
Monitor タブで、Create Monitor をクリックします。
品質モニターを設定します。
主なパラメーター:
パラメーター
設定例
[Data Range]
dt=$[yyyymmdd-1]
[Trigger Method]
本番スケジューリングによってトリガーされます。データの処理で作成された
ads_user_info_1dノードを選択します。[Monitoring Rule]
ここでは設定しません。後のセクションで設定します。
説明品質モニターの設定方法の詳細については、「単一テーブルのルール設定」をご参照ください。
2. 監視ルールの作成
ads_user_info_1d テーブルは、ユーザーペルソナ分析に使用されます。日次の UV の変動を検出するために、集計データの行数の変動を監視し、プライマリキーの一意性をチェックします。これにより、日次の UV の変動を観察し、オンラインのトラフィック変更に関する情報を常に把握できます。
ルールが有効な場合、モニターが ads_user_info_1d テーブルのプライマリキーが一意でないことを検出すると、アラートがトリガーされます。7 日間の行数変動率が 10% を超え、50% 未満の場合、警告アラートがトリガーされます。7 日間の行数変動率が 50% を超える場合、エラーアラートがトリガーされます。
データ品質モニタリングには、[処理ポリシー] が設定されています:
strong rule - Error: 処理ポリシーは Blocks です。データ品質の問題が検出された場合、システムはチェックをトリガーした本番スケジューリングノードを失敗させます。このアクションは下流ノードをブロックし、ダーティデータの拡散を停止します。その他の例外: 処理ポリシーは Alert です。データ品質の問題が検出された場合、システムはサブスクライブされたチャネルにアラートを送信します。
したがって、品質ルールを設定する際には、次のようになります。
強ルールを設定した場合、エラーアラートは後続ノードをブロックします。その他のアラートはブロックしません。
ソフトルールを設定した場合、赤色の異常アラートもその他の異常アラートも後続タスクノードをブロックしません。
次の手順を実行します。
Rule Management タブの Monitor Perspective で、作成した品質モニター (例:
ads_user_info_quality_control) を選択します。 次に、[ルールを作成] をクリックして [ルールを作成] ページを開きます。System Template セクションで、[行数、7日間の変動] ルールを見つけ、Use をクリックし、[監視しきい値] と Degree of importance を次のように設定します:
[Monitoring Threshold]:
エラーしきい値 > 50%警告しきい値 > 10%正常しきい値 <= 10%
[Degree of importance]:
soft rule
System Template セクションで、The number of rows is greater than 0. ルールを見つけて Use をクリックします。次に、Degree of importance を
uid (STRING)、[監視しきい値] を正常しきい値 = 0と設定し、Strong rules を [ソフトルール] に変更します。Determine をクリックします。
説明設定項目の詳細については、「単一テーブルのルール設定」をご参照ください。
3. その他の設定
品質モニタリングのテスト実行とサブスクリプションの手順は、「ods_raw_log_d の品質モニタリングルールの設定」で説明されている手順と同じです。
次のステップ
データが変換された後、DataAnalysis モジュールを使用してデータを可視化できます。詳細については、「データの可視化」をご参照ください。