このトピックでは、Data Quality を使用してテーブルデータの品質を監視する方法について説明します。
前提条件
このチュートリアルを開始する前に、「データの同期」と「データの処理」を完了していることを確認してください。
RDS for MySQL テーブル ods_user_info_d の基本ユーザー情報は、Data Integration を使用して MaxCompute テーブル ods_user_info_d に同期されます。
OSS の user_log.txt ファイルからのユーザーのウェブサイトアクセスログは、Data Integration を使用して MaxCompute テーブル ods_raw_log_d に同期されます。
収集されたデータは、DataStudio で基本的なユーザーペルソナデータに処理されます。
背景情報
Data Quality は、異種データソースのデータ品質をチェックし、アラート通知を構成し、データソースを管理できるエンドツーエンドのプラットフォームです。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) の変化を追跡し、アプリケーションのステータスを迅速に把握できます。 |
ルール構成ページに移動
Data Quality ページに移動します。
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[Data Quality に移動] をクリックします。
テーブルのルール構成ページに移動します。
Data Quality ページの左側のナビゲーションウィンドウで、 をクリックし、次のパラメーターに基づいてターゲットテーブルを見つけます。
データソース: MaxCompute
データベース: 現在の本番プロジェクト (例: workshop2024_01)。
テーブル: このチュートリアルでは、
ods_raw_log_d、ods_user_info_d、およびads_user_info_1dテーブルの品質監視を構成する必要があります。
検索結果でターゲットテーブルを見つけ、[アクション] 列の [監視ルールの構成] をクリックします。テーブルの [品質詳細] ページが表示されます。次のセクションでは、テーブルの監視ルールを構成する方法について説明します。
監視ルールの構成
ods_raw_log_d テーブルの監視ルールの構成
ods_raw_log_d テーブルには、OSS から同期されたユーザーのウェブサイトアクセスレコードが格納されます。このテーブルのビジネスプロパティに基づいて、テーブルの行数が 0 ではないことを確認するルールを構成できます。その後、このルールを品質モニターに関連付けて、データ品質チェックをトリガーできます。
1. モニターの構成
モニターは、テーブルの指定されたタイムスタンプ範囲 (パーティション) のデータ品質が期待どおりであるかどうかをチェックします。
このステップでは、モニターの [データ範囲] パラメーターを dt=$[yyyymmdd-1] に設定する必要があります。モニターが実行されると、パラメーター値に一致するデータパーティションを検索し、データ品質が期待どおりであるかどうかをチェックします。
これは、ods_raw_log_d テーブルのスケジューリングジョブが実行されるたびに、データ品質モニターがトリガーされることを意味します。その後、モニターは関連付けられた品質ルールを使用して、対応するデータ範囲のデータをチェックし、データが品質チェックルールに準拠しているかどうかを判断します。
次の手順を実行します。
[モニター] タブで、[モニターの作成] をクリックします。
モニターを構成します。
主要なパラメーター:
パラメーター
構成例
[データ範囲]
dt=$[yyyymmdd-1]
[トリガー方法]
本番スケジューリングによってトリガーされます。「データ同期」中に作成された
ods_raw_log_dノードを選択します。[品質ルールの選択]
これは後のセクションで構成します。
説明データ品質監視の構成方法の詳細については、「単一テーブルの監視ルールを構成する」をご参照ください。
この例では、毎日のスケジューリングタスクによって生成されたテーブルデータが期待どおりであるかどうかを監視することが目的です。テーブルは前日のデータを生成するため、スケジューリング時間が当日で、計算結果が前日のものであれば、データは期待どおりと見なされます。
2. 監視ルールの構成
ods_raw_log_d テーブルには、OSS から同期されたユーザーのウェブサイトアクセスログが格納されます。このテーブルは、ユーザーペルソナ分析シナリオのソーステーブルとして使用されます。無効なデータ処理とデータ品質の問題を防ぐために、テーブルの行数が 0 より大きいかどうかを監視する強制ルールを作成して構成する必要があります。このルールは、同期タスクがテーブルの関連パーティションにデータを書き込んだかどうかを判断するのに役立ちます。
ods_raw_log_d テーブルの関連パーティションの行数が 0 の場合、アラートがトリガーされ、[ods_raw_log_d] ノードが失敗し、[ods_raw_log_d] ノードの下流タスクがブロックされます。
次の手順を実行します。
[ルール管理] タブの [品質監視パースペクティブ] セクションで、
raw_log_number_of_table_rows_not_0などの既存の品質モニターを選択します。次に、[ルールの作成] をクリックします。[ルールの作成] ダイアログボックスが表示されます。[システムテンプレート] タブで、[テーブルの行数が 0 より大きい] ルールを見つけ、[使用] をクリックし、[重要度] を [強制ルール] に設定します。
説明この例では、ルールは 強制ルールとして定義されています。これは、
ods_raw_log_dテーブルの行数が 0 の場合、アラートがトリガーされ、下流タスクの実行がブロックされることを示します。[OK] をクリックします。
説明設定項目の詳細については、「単一テーブルのルールを構成する」をご参照ください。
3. モニターでテスト実行を実行する
テスト実行では、モニター内の監視ルールが正しく構成されているかどうかを確認します。ルールが正しく、期待どおりであることを確認するために、作成後にテスト実行を実行できます。
[ルール管理] タブの [品質監視ビュー] で、作成した品質監視ルール (例:
raw_log_number_of_table_rows_not_0) を選択します。次に、右側の [テスト実行] をクリックして [テスト実行] ダイアログボックスを開きます。[テスト実行] ダイアログボックスで、[スケジューリング時間] を選択し、[テスト実行] をクリックします。
テスト実行が完了したら、[詳細の表示] をクリックして、テストに合格したかどうかを確認します。
4. モニターをサブスクライブする
Data Quality は、監視およびアラート機能を提供します。モニターをサブスクライブして、データ品質の問題に関するアラート通知を受信できます。これにより、問題を迅速に解決し、データのセキュリティ、安定性、および適時性を確保できます。
[ルール管理] タブの [品質監視ビュー] で、品質監視ルール (例:
raw_log_number_of_table_rows_not_0) を選択し、右側の [アラートサブスクリプション] をクリックします。プロンプトに従って、[サブスクリプション方法] と [通知方法] を追加し、[アクション] 列の [保存] をクリックします。
サブスクリプション管理設定を構成した後、左側のナビゲーションウィンドウで をクリックし、[マイサブスクリプション] を選択して、サブスクライブしたタスクを表示および変更します。
ods_user_info_d テーブルの監視ルールの構成
ods_user_info_d テーブルには、ApsaraDB RDS for MySQL から同期された基本ユーザー情報が格納されます。このテーブルのビジネスプロパティに基づいて、テーブルの行数が 0 であるかどうかを監視するルールと、プライマリキーの値が一意であるかどうかを監視するルールを構成できます。その後、これらのルールをモニターに関連付けて、テーブルの品質チェックをトリガーできます。
1. モニターの構成
モニターは、テーブルの指定されたタイムスタンプ範囲 (パーティション) のデータ品質が期待どおりであるかどうかをチェックします。
このステップでは、品質モニターの [データ範囲] パラメーターを dt=$[yyyymmdd-1] に設定する必要があります。モニターが実行されると、このパーティションのデータと照合して、期待どおりであるかどうかを判断します。
これは、ods_user_info_d テーブルのスケジューリングタスクが実行されるたびに、データ品質モニターがトリガーされることを意味します。その後、関連付けられた品質ルールを使用して、対応する範囲のデータがデータ品質要件を満たしているかどうかをチェックします。
次の手順を実行します。
[モニター] タブで、[モニターの作成] をクリックします。
モニターを構成します。
主要なパラメーター:
パラメーター
構成例
[タイムスタンプ範囲]
dt=$[yyyymmdd-1]
[トリガー方法]
本番スケジューリングによってトリガーされます。「データ同期」中に作成された
ods_user_info_dノードを選択します。[品質ルールの選択]
今は構成しないでください。後のセクションで構成します。
説明データ品質監視の構成方法の詳細については、「単一テーブルの監視ルールを構成する」をご参照ください。
2. 監視ルールの構成
ods_user_info_d テーブルには、RDS for MySQL から同期された基本ユーザー情報が格納されます。このテーブルは、ユーザーペルソナ分析シナリオのソーステーブルとして使用されます。無効なデータ処理とデータ品質の問題を防ぐために、テーブルの行数が 0 より大きいかどうかを監視する強制ルールを作成して構成する必要があります。このルールは、同期タスクがテーブルの関連パーティションにデータを書き込んだかどうかを判断するのに役立ちます。
ルールが有効になると、ods_user_info_d テーブルの関連パーティションの行数が 0 の場合、アラートがトリガーされ、[ods_user_info_d] ノードが失敗し、[ods_user_info_d] ノードの下流タスクがブロックされます。
次の手順を実行します。
[ルール管理] タブの [品質監視パースペクティブ] セクションで、モニターを選択します。この例では、
user_info_quality_controlモニターが選択されています。次に、[ルールの作成] をクリックします。[ルールの作成] ダイアログボックスが表示されます。[システムテンプレート] タブで、[テーブルは空ではありません] ルールを見つけて [使用] をクリックします。次に、[重要度] を [強制ルール] に設定します。
説明この例では、ルールは 強制ルールとして定義されています。これは、
ods_user_info_dテーブルの行数が 0 の場合、アラートがトリガーされ、下流タスクの実行がブロックされることを示します。[システムテンプレート] タブで、[一意の値の数、固定値] ルールを見つけ、[使用] をクリックし、[ルール範囲]、[監視しきい値]、および [重要度] パラメーターを次のように変更します。
[ルール範囲]:
uid(STRING)[監視しきい値]:
通常しきい値 = 0[重要度]:
ソフトルール
[OK] をクリックします。
説明設定項目の詳細については、「単一テーブルのルールを構成する」をご参照ください。
3. その他の構成
品質監視テストの実行と品質監視のサブスクライブの手順は、「ods_raw_log_d テーブルの監視ルールの構成」で説明されているものと同じです。
ads_user_info_1d テーブルの監視ルールの構成
ads_user_info_1d テーブルは最終結果テーブルです。テーブルのビジネスプロパティに基づいて、テーブルの行数の変動を監視するルールと、プライマリキーの値が一意であるかどうかをチェックするルールを構成できます。これにより、日次ユニークビジター (UV) の変動を観察し、オンラインのトラフィック変動をいち早く知ることができます。その後、これらのルールを品質モニターに関連付けて、テーブルのデータ品質チェックをトリガーできます。
1. パーティションフィルター式の構成
モニターは、テーブルの指定されたタイムスタンプ範囲 (パーティション) のデータ品質が期待どおりであるかどうかをチェックします。
このステップでは、モニターの [データ範囲] パラメーターを dt=$[yyyymmdd-1] に設定する必要があります。モニターが実行されると、このパーティションのデータと照合して、データ品質が期待どおりであるかどうかを判断します。
これは、ads_user_info_1d テーブルのスケジューリングタスクが実行されるたびに、品質監視がトリガーされ、関連付けられた品質ルールを使用して、対応するデータ範囲のデータがデータ品質チェックルールを満たしているかどうかをチェックすることを意味します。
次の手順を実行します。
[モニター] タブで、[モニターの作成] をクリックします。
モニターを構成します。
主要なパラメーター:
パラメーター
構成例
[データ範囲]
dt=$[yyyymmdd-1]
[トリガー方法]
本番スケジューリングによってトリガーされます。「データ処理」で作成された
ads_user_info_1dノードを選択します。[品質ルールの選択]
今は構成しないでください。これは後のセクションで構成します。
説明データ品質監視の構成方法の詳細については、「単一テーブルの監視ルールを構成する」をご参照ください。
2. 監視ルールの構成
ads_user_info_1d テーブルは、ユーザーペルソナ分析に使用されます。日次 UV の変動を検出するには、集計データの行数の変動を監視するルールと、プライマリキーの値が一意であるかどうかを監視するルールを作成して構成する必要があります。これにより、日次 UV の変動を観察し、オンラインのトラフィック変動をいち早く知ることができます。
このルールがアクティブな場合、ads_user_info_1d テーブルで重複するプライマリキーが検出されるとアラートがトリガーされます。また、7 日間の行数変動率が 10% を超え 50% 未満の場合は警告アラートがトリガーされ、50% を超える場合は重大アラートがトリガーされます。
データ品質監視では、[処理ポリシー] が構成されています。
強制ルール-赤色アラート: 処理ポリシーは [ブロック] です。これは、テーブルでデータ品質の問題が検出された場合、テーブルにデータを書き込む本番環境のスケジューリングノードが特定され、システムのノードの実行ステータスが [失敗] に設定されることを示します。この場合、ノードの子孫ノードは実行できなくなり、本番パイプラインがブロックされ、ダーティデータの拡散が防止されます。その他の例外については、処理ポリシーは [アラート] です。これは、データ品質の問題が検出された場合、システムが監視ジョブのアラートサブスクリプションチャネルにアラート情報を送信することを意味します。
監視ルールを構成する際は、次の点に注意してください。
強制ルールを設定した場合、エラーアラートは子孫ノードをブロックします。他のアラートはブロックしません。
ソフトルールを設定した場合、どのアラートも子孫ノードをブロックしません。
次の手順を実行します。
[ルール管理] タブの [品質監視ビュー] で、
ads_user_info_quality_controlなどの既存の品質モニターを選択します。次に、[ルールの作成] をクリックします。[ルールの作成] ダイアログボックスが開きます。[システムテンプレート] タブで、[行数、7 日間の変動] ルールを見つけ、[使用] をクリックし、[監視しきい値] と [重要度] を次のように構成します。
[監視しきい値]:
エラーしきい値 > 50%警告しきい値 > 10%通常しきい値 <= 10%
[重要度]:
ソフトルール
[システムテンプレート] タブで、[テーブルは空ではありません] ルールを見つけて [使用] をクリックし、[重要度] を [強制ルール] に設定します。
[OK] をクリックします。
説明設定項目の詳細については、「単一テーブルのルールを構成する」をご参照ください。
3. その他の構成
品質モニターでテスト実行を実行するおよび品質モニターをサブスクライブするの手順は、「ods_raw_log_d テーブルの監視ルールの構成」セクションで説明されているものと同じです。
次のステップ
データが処理された後、DataAnalysis を使用してデータを可視化できます。詳細については、「ダッシュボードでデータを可視化する」をご参照ください。