このトピックでは、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) の変化を追跡し、アプリケーションの状態を迅速に把握できます。 |
ルール設定ページへの移動
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 から同期されたユーザーの Web サイトアクセスレコードを受け取るために使用されます。このテーブルのビジネスプロパティに基づき、テーブルの行数が 0 でないことをチェックするルールを設定します。次に、そのルールを品質モニターに関連付けて、データ品質チェックをトリガーします。
1. 品質モニターの設定
品質モニターは、ターゲットテーブルの指定されたデータ範囲 (パーティション) のデータが期待値を満たしているかどうかをチェックします。
このステップでは、モニターの [データ範囲] を dt=$[yyyymmdd-1] に設定する必要があります。モニターが実行されると、このパーティションのデータと照合し、データ品質が期待値を満たしているかどうかをチェックします。
ods_raw_log_d テーブルのスケジューリングタスクが実行されるたびに、品質モニターがトリガーされます。モニターは、関連付けられた品質ルールを使用して、対応するデータ範囲のデータをチェックし、データ品質チェックのルールを満たしているかどうかを判断します。
次の手順を実行します。
[品質監視] タブをクリックし、[品質モニターの作成] をクリックします。
品質モニターを設定します。
主要なパラメーター:
パラメーター
設定例
データ範囲
dt=$[yyyymmdd-1]
トリガー方法
本番スケジューリングによってトリガーされます。「データの同期」で作成した
ods_raw_log_dノードを選択します。品質ルールの選択
ここでは設定しません。後のセクションで設定します。
説明品質モニターの設定方法の詳細については、「単一テーブルのルール設定」をご参照ください。
このチュートリアルでは、日次のスケジューリングタスクによって生成されたテーブルデータが期待値を満たしているかどうかを監視することが目的です。テーブルは前日のデータを生成するため、スケジュール時刻が当日で、ビジネス時刻が前日であれば、データは期待通りと見なされます。
2. 監視ルールの設定
ods_raw_log_d テーブルは、OSS から同期された Web サイトアクセスレコードを受け取るために使用され、ユーザーペルソナ分析のソーステーブルとして機能します。無効な処理や品質の問題を防ぐために、このテーブルに対して、行数が 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 テーブルは、ApsaraDB RDS for MySQL から同期された基本ユーザー情報を受け取るために使用され、ユーザーペルソナ分析のソーステーブルとして機能します。無効な処理や品質の問題を防ぐために、このテーブルに対して、行数が 0 より大きいかどうかをチェックする強制ルールを設定します。このルールは、同期タスクがテーブルのパーティションにデータを書き込んだかどうかを判断します。
ルールが有効になると、ods_user_info_d テーブルの対応するパーティションの行数が 0 の場合、アラートがトリガーされ、[ods_user_info_d] ノードは失敗し、[ods_user_info_d] ノードの下流タスクはブロックされます。
次の手順を実行します。
[ルール管理] タブの [品質監視の視点] で、作成した品質モニター (例:
user_info_quality_control) を選択します。次に、[ルールの作成] をクリックして、[ルールの作成] ページに移動します。[システムテンプレート] で、[テーブルの行数が 0 より大きい] ルールを見つけ、[使用] をクリックし、[重要度] を [強制ルール] に設定します。
説明このチュートリアルでは、ルールは強制ルールとして定義されます。
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% 未満の場合に警告アラートがトリガーされ、7日間の行数変動率が 50% を超える場合にエラーアラートがトリガーされます。
データ品質監視には [処理ポリシー] が設定されています。
強制ルール-赤色アラート:処理ポリシーは [ブロック] です。これは、テーブルでデータ品質の問題が検出された場合、データをテーブルに書き込むために使用される本番環境のスケジューリングノードが特定され、システムの実行ステータスが「失敗」に設定されることを示します。この場合、ノードの子孫ノードは実行できなくなり、本番リンクがブロックされ、ダーティデータの拡散が防がれます。その他の例外の場合、処理ポリシーは [アラート] です。これは、データ品質の問題が検出された場合、システムが監視ジョブのアラートサブスクリプションチャネルにアラート情報を送信することを意味します。
したがって、品質ルールを設定する際には:
強制ルールを設定した場合、エラーアラートは後続ノードをブロックしますが、その他のアラートはブロックしません。
ソフトルールを設定した場合、赤色の異常アラートもその他の異常アラートも後続タスクノードをブロックしません。
次の手順を実行します。
[ルール管理] タブの [品質監視の視点] で、作成した品質モニター (例:
ads_user_info_quality_control) を選択します。次に、[ルールの作成] をクリックして、[ルールの作成] ページに移動します。[システムテンプレート] タブで、[行数、7日間の変動] ルールを見つけ、[+使用] をクリックし、[監視しきい値] と [重要度レベル] を次のように設定します。
監視しきい値:
エラーしきい値 > 50%警告しきい値 > 10%正常しきい値 <= 10%
重要度:
ソフトルール
[システムテンプレート] で、[テーブルの行数が 0 より大きい] ルールを見つけ、[使用] をクリックし、[重要度] を [強制ルール] に設定します。
[OK] をクリックします。
説明設定項目の詳細については、「単一テーブルのルール設定」をご参照ください。
3. その他の設定
品質モニターのテスト実行と品質モニターのサブスクリプションの手順は、「ods_raw_log_d の品質監視ルールの設定」で説明されている手順と同じです。
次のステップ
データが変換された後、データ分析モジュールを使用してデータを可視化できます。詳細については、「データの可視化」をご参照ください。