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

DataWorks:データ品質テストの設定

最終更新日:Feb 03, 2026

DataWorks の DataStudio では、データ開発ノードに対してデータ品質モニタリングルールを設定し、ノードが生成するデータ出力テーブルを検証できます。ルール定義、テスト、SQL 開発ワークフローを統合することで、データ品質の問題を早期に検出し、従来の方法に比べてメンテナンスコストを削減します。

機能概要

概要

DataWorks IDE で SQL ノードを編集する際に、ノードのデータ出力テーブルに対してデータ品質ルールを直接設定できます。YAML で定義されたこれらのルールは SQL コードに紐付けられ、開発中にテストされ、ノードと共に公開され、定期実行時に自動的に実行されます。

  • 開発時テスト:コーディング段階で品質ルールをテスト・検証します。

  • 同期的なバージョン管理:品質ルールはノードのコードと共にバージョン管理され、公開されます。

  • 本番環境での検証:公開されたルールは定期実行時に自動的に実行され、データ出力の信頼性を保証します。

Data Quality センターとの関係

データガバナンスモジュールの Data Quality センターも、データテーブルに対するモニタリングルールの設定をサポートしており、豊富なルールテンプレートや定期タスクへのルール紐付け機能を提供しています。Data Quality センターと IDE 内のデータ品質テスト機能の関係は以下の通りです。

機能的な違い

  • IDE 埋め込みルール:コードと共に進化する軽量なルールで、特定のノードロジックと密接に関連する検証シナリオに適しています。

  • Data Quality センター:統一されたデータガバナンスのための、グローバルでタスク横断的な機能を提供します。

連携

  • IDE のデータ品質テスト機能内から Data Quality センターのルールテンプレートを直接参照・再利用でき、ルールの一貫性を確保し、設定効率を向上させます。

  • IDE と Data Quality センターの両方で同じデータテーブルにルールを設定した場合、両方のソースからのルールが有効になり、独立して実行されます。

推奨事項:重複設定や冗長なアラートを避けるため、特定のガバナンスニーズに基づいて、データテーブルのルールを管理する主要な方法を 1 つ選択することを推奨します。

適用範囲

現在、データ品質ルールを直接設定できるのは MaxCompute SQL ノードのみです。

設定

エントリーポイント

  1. DataStudio に移動し、INSERT OVERWRITE のようなデータ出力ロジックを含む MaxCompute SQL ノードを開きます。

  2. ノードエディターの上部にあるツールバーで、データ品質テスト をクリックします。IDE の下部に データ品質テスト タブが開きます。

品質ルールの作成

品質ルールは、YAML 形式の Data Quality Spec を使用して定義します。AI で生成するか、手動で作成することができます。

AI によるルールの生成 (推奨)

この機能は AI を活用し、ルールの作成を大幅に簡素化します。

  1. データ品質テスト タブで、AI で生成 をクリックします。

  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: The number of rows with null id is 0
      severity: High
      identity: dq_suggestion_monitor_spec_The number of rows with null id is 0
     - templateId: # 
- datasets:
   #...
  • データ品質モニタリングルールは、DataWorks の Data Quality Spec に準拠します。詳細については、「Data Quality spec の設定」をご参照ください。

  • 右側のルールテンプレートをクリックすると、完全なルールスニペットがエディターに挿入されます。必要に応じて変更してください。

    Data Quality ルールテンプレートライブラリで、テンプレートを視覚的に設定することもできます。
  • ここで設定する強制ルールと非強制ルールのブロックおよび制限メカニズムは、Data Quality センターのものと同じです。詳細については、「Data Quality ルール」をご参照ください。

エディターには、効率を向上させるためのいくつかの機能が用意されています。

  • 構文ハイライト:YAML のキーワード、ルール名、関数、テーブル名、フィールド名を異なる色で区別します。

  • 自動補完:入力中にキーワード、組み込みのルールテンプレート、利用可能なテーブル名やフィールド名を提案します。

  • リアルタイム検証:YAML の構文エラーを即座にフラグ付けし、存在しない参照テーブル名やフィールド名をハイライトします。

重要

YAML はインデントに敏感です。正しいインデント構文に従ってください。

テストと検証

ルールを設定した後、IDE で直接テストして、定期実行を待たずにその有効性を検証できます。

  • テストメソッド

    • スタンドアロンテストデータ品質テスト パネルで テスト実行 をクリックし、すべてのルールまたは単一のルールのテストをトリガーします。

    • 連携テストデータ品質テスト パネルで ノードが正常に実行された後、データ品質テストをトリガーする を選択し、IDE のツールバーで [実行] をクリックします。システムはまず SQL コードを実行し、成功すると品質テストを実行します。

    • ワークフローテスト:ワークフローの DAG ビューで、ワークフローツールバーの実行ボタンをクリックするか、実行する単一のスクリプトを指定します。システムはタスクコードを実行し、その後、品質テストを実行します。

  • 結果の表示

    結果は データ品質テスト パネルに直接表示されます。右上隅の構造化ログアイコンをクリックすると、フィルターされた結果が表示されます。エラーのあるルール (赤色) については、「詳細」をクリックして Data Quality センターの実行履歴に移動できます。

公開とスケジューリング

公開とバージョン管理

  • コミットと公開:ノードをコミットして公開すると、[データ品質テスト] パネルで設定された YAML ルールがノードの一部として本番環境に公開されます。

  • バージョン比較品質設定 タブでは、現在のバージョンのルールを表示し、履歴バージョンと比較してすべての変更を追跡できます。

本番環境での定期実行

本番環境に公開された品質ルールは、タスクがスケジュールに従って実行されるたびに自動的にトリガーされます。

  • 実行タイミング:品質チェックは、関連付けられた SQL ノードが成功した後に自動的に実行されます。ノードインスタンスの最終的なステータスは、SQL の実行結果と品質チェックの結果の両方に依存します。

  • ブロックメカニズム

    • 強制ルール (severity: High):強制ルールのチェックが失敗した場合 (赤色アラート)、ノードインスタンス全体が失敗し、下流タスクがブロックされます。

    • 非強制ルール (severity: Normal または未設定):非強制ルールのチェックが失敗しても、ノードの実行はブロックされず、ノードインスタンスは正常に成功します。

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

    説明

    現時点では、アラートのメソッドは変更できません。

関連ドキュメント