DataWorks Data Studio では、データ開発ノードに対してデータ品質モニタリングルールを構成し、それらが生成するデータテーブルを検証できます。この機能は、品質ルールの定義とテストを SQL 開発ワークフローに深く統合し、従来のアプローチでよく見られる、ルールの構成の遅延、データの問題の発見の遅れ、高いルールメンテナンスコストといった課題を解決します。
機能概要
概要
DataWorks IDE で SQL ノードを編集する際に、そのノードの出力データテーブルに対して直接データ品質ルールを構成できます。ルールは YAML フォーマットで定義され、SQL コードにバインドされます。開発中にテストし、ノードと一緒に送信・デプロイでき、定期実行中に自動的に実行されます。
-
開発中のテスト:コーディングフェーズで品質ルールをテスト・検証します。
-
同期的なバージョン管理:品質ルールはノードコードの一部として、ノードと一緒にバージョン管理およびデプロイされます。
-
本番環境での検証:デプロイされたルールは定期実行中に自動的に実行され、信頼性の高いデータ出力を保証します。
Data Quality との関係
データガバナンス配下の Data Quality モジュールも、データテーブル上のモニタリングルールの構成をサポートしており、豊富なルールテンプレートと、ルールを定期タスクにバインドする機能を提供します。Data Studio の品質テスト機能との関係は次のとおりです。
位置付けの違い
-
IDE 内ルール:コードバージョンとともに進化する軽量なルールで、特定のノードロジックと密接に結合した検証シナリオに適しています。
-
Data Quality センター:グローバルでタスク横断的な統一されたデータ品質ガバナンス機能を提供します。
連携
-
IDE の品質テスト機能では、Data Quality で作成されたルールテンプレートを直接参照・再利用できるため、ルールの一貫性を確保し、構成効率を向上させることができます。
-
IDE と Data Quality の両方で同じデータテーブルにルールを構成した場合、両方のルールセットが有効になり、独立して実行されます。
推奨事項:重複した構成や冗長なアラートを避けるために、実際のガバナンスシナリオに基づいて、データテーブルのルールを管理するための主要な方法を 1 つ選択してください。
注意事項
現在、品質ルールを直接構成できるのは MaxCompute SQL ノードのみです。
設定ガイド
開始方法
-
Data Studio に移動し、データ出力ロジック (例:
INSERT OVERWRITE) を含む MaxCompute SQL ノードを開きます。 -
ノードエディターの上部にあるツールバーで、Quality Test をクリックします。IDE の下部に Quality Test タブが自動的に開きます。
品質ルールの作成
品質ルールは、YAML ベースの Data Quality Spec を使用して定義されます。AI 生成ルールと手動作成ルールの両方がサポートされています。
AI 生成ルール (推奨)
この機能は AI を活用して、ルール作成の複雑さを大幅に軽減します。
-
Quality Test タブで、AI Generation Rules ボタンをクリックします。
-
ダイアログに指示を入力します。例:id 列が null でないことを確認する。
-
分析後、エディターに推奨ルールが生成されます。[承諾] をクリックして、それらをそのまま使用するか、必要に応じて変更します。
手動でのルール作成 (スクリプトモード)
ルールを正確に制御する必要があるシナリオでは、YAML コードを記述して定義できます。
- datasets: # ノードに複数の出力テーブルがある場合、複数のデータセットを設定して、異なるテーブルに対して品質ルールを構成できます
- type: Table
dataSource:
name: odps_first
tables:
- table1 # 現在は 1 つのテーブルのみサポートされており、ワイルドカードはサポートされていません
filter: partition:dt=${bizdate} # where 条件 (where キーワードの入力は不要) またはパーティション (固定プレフィックス "partition:") によるフィルタリングをサポートします。
rules:
- templateId: SYSTEM:field:null_value:fixed # 1 つのテーブルで複数のルールをサポートできます。左側の「ルールテンプレート」を選択して、テンプレート内の変数を迅速に挿入・変更できます。
fields:
- id
pass:
- when = 0
name: Number of null value rows in field id is 0
severity: High
identity: dq_suggestion_monitor_spec_Number of null value rows in field id is 0
- templateId: #
- datasets:
#...
-
データ品質モニタリングルールは、DataWorks の Data Quality Spec に従います。詳細については、「データ品質構成」をご参照ください。
-
右側のルールテンプレートをクリックすると、完全なルールスニペットがエディターに自動的に挿入されます。その後、必要に応じて調整してください。
Data Quality のルールテンプレートライブラリで、ルールを視覚的に構成できます。
-
ここで構成された強制ルールと非強制ルールが下流タスクに与えるブロックおよび制限の動作は、Data Quality の動作と完全に一致します。詳細については、「データ品質ルール」をご参照ください。
エディターは、効率を向上させるための豊富な支援機能を提供します。
-
構文ハイライト:YAML キーワード、ルール名、関数、テーブル名、列名を色で区別します。
-
自動補完:入力中に、キーワード、組み込みルールテンプレート、および現在のコンテキストで使用可能なテーブル名と列名を提案します。
-
リアルタイム検証:YAML 構文エラーをリアルタイムでハイライト表示し、参照されているテーブル名と列名が存在するかどうかを検証します。存在しないオブジェクトには波線の下線が引かれます。
YAML はインデントに敏感です。インデントの構文ルールに注意深く従ってください。
テストと検証
ルールを構成した後、IDE で直接テストを実行して、定期実行を待たずにその有効性を検証できます。
-
テスト方法:
-
スタンドアロンテスト: Qualityテスト パネルで、Test Run をクリックして、すべてのルールまたは単一のルールのテスト実行をトリガーします。
-
連携テスト: Quality[テスト] パネルで、Trigger quality check after node success を選択し、次に IDE の上部のツールバーで [実行] をクリックします。システムは、まず SQL コードを実行し、SQL が成功した後に品質テストを実行します。
-
ワークフローテスト:ワークフロー DAG ページで、ワークフローの上部にあるツールバーの実行ボタンをクリックするか、指定された単一のスクリプトを実行します。システムはタスクコードと品質テストも順番に実行します。
-
-
結果の表示:
実行結果は Qualityテスト パネルに直接表示されます。右上の構造化ログをクリックして、品質ルール実行のフィルタリングされた結果を表示します。赤色の例外があるルールの場合は、クリックして詳細を表示し、Data Quality の実行レコードにジャンプします。
デプロイとスケジューリング
デプロイとバージョン管理
-
送信とデプロイ:ノードを送信してデプロイすると、[品質テスト] パネルで構成された YAML ルールがノードの一部として本番環境にデプロイされます。
-
バージョン比較:[品質構成] タブでは、現在のバージョンのルール構成を表示し、履歴バージョンとの差分比較 (Diff) を実行して、ルールのすべての変更を追跡できます。
本番環境での定期実行
本番環境にデプロイされた品質ルールは、タスクが定期実行されるたびに自動的にトリガーされます。
-
実行タイミング:品質ルールの検証は、関連付けられた SQL ノードが成功した後に自動的に実行されます。ノードインスタンスの最終的なステータスは、SQL の実行結果と品質検証結果の両方に依存します。
-
ブロックメカニズム:
-
強制ルール (
severity: High):強制ルールが検証に失敗した場合 (赤色の例外)、ノードインスタンス全体が失敗し、下流タスクがブロックされます。 -
非強制ルール (
severity: Normal or unset):非強制ルールが検証に失敗した場合、ノードはブロックされず、ノードインスタンスは成功したままになります。
-
-
アラート通知:ルールがノードをブロックするかどうかに関わらず、検証結果が異常 (赤色の例外、オレンジ色の例外、または検証失敗) である場合は常に、システムはノードの所有者にメールでアラートを送信します。
説明現時点では、アラート方法を変更することはできません。