すべてのプロダクト
Search
ドキュメントセンター

DataWorks:データ品質テストの構成

最終更新日:Apr 22, 2026

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 ノードのみです。

設定ガイド

開始方法

  1. Data Studio に移動し、データ出力ロジック (例:INSERT OVERWRITE) を含む MaxCompute SQL ノードを開きます。

  2. ノードエディターの上部にあるツールバーで、Quality Test をクリックします。IDE の下部に Quality Test タブが自動的に開きます。

品質ルールの作成

品質ルールは、YAML ベースの Data Quality Spec を使用して定義されます。AI 生成ルールと手動作成ルールの両方がサポートされています。

AI 生成ルール (推奨)

この機能は AI を活用して、ルール作成の複雑さを大幅に軽減します。

  1. Quality Test タブで、AI Generation Rules ボタンをクリックします。

  2. ダイアログに指示を入力します。例:id 列が null でないことを確認する。

  3. 分析後、エディターに推奨ルールが生成されます。[承諾] をクリックして、それらをそのまま使用するか、必要に応じて変更します。

手動でのルール作成 (スクリプトモード)

ルールを正確に制御する必要があるシナリオでは、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):非強制ルールが検証に失敗した場合、ノードはブロックされず、ノードインスタンスは成功したままになります。

  • アラート通知:ルールがノードをブロックするかどうかに関わらず、検証結果が異常 (赤色の例外、オレンジ色の例外、または検証失敗) である場合は常に、システムはノードの所有者メールでアラートを送信します。

    説明

    現時点では、アラート方法を変更することはできません。

関連ドキュメント