Dataphin では、メトリックを検証するための品質ルールを作成でき、メトリックの品質監視を簡素化できます。このトピックでは、これらの品質ルールの設定方法について説明します。
前提条件
品質ルールを設定する前に、監視対象を追加する必要があります。監視対象の追加方法の詳細については、「監視対象の追加」をご参照ください。
権限
スーパー管理者、品質管理者、[品質ルール] - [管理] 権限を持つカスタムグローバルロール、テーブルを含むプロジェクトに対する [プロジェクト品質管理] - [品質ルール管理] 権限を持つカスタムプロジェクトロール、およびメトリックビジネスオーナーは、品質ルールのスケジューリングとアラートを設定できます。
品質オーナーと一般ユーザーは、論理テーブルフィールドに対する追加の読み取り権限が必要です。これらの権限をリクエストするには、「テーブル権限の申請、更新、返却」をご参照ください。
サポートされる操作はオブジェクトによって異なります。詳細については、「品質ルールの操作権限」をご参照ください。
検証ルールの詳細
メトリックが品質ルールに対して検証されると、ソフトルールがトリガーされた場合にシステムはアラートメッセージを送信します。これにより、例外を迅速に発見して処理できます。強制ルールがトリガーされた場合、システムはダーティデータがダウンストリームノードに流れるのを防ぐために、テーブルを含むタスクを自動的に中断します。また、システムは例外を発見して処理するのに役立つアラートメッセージも送信します。
トライアル実行と実行
トライアル実行と実行の違いは、実行方法と結果の処理方法にあります。トライアル実行は、品質ルールの正しさとパフォーマンスを確認するためのテスト実行です。トライアル実行の結果は品質レポートに表示されません。実行は、指定された時間に品質ルールチェックを実行し、その結果は表示および分析のために品質レポートに送信されます。
品質ルールの設定
Dataphin のホームページで、トップメニューバーから [管理] > [Data Quality] を選択します。
左側のナビゲーションウィンドウで、[品質ルール] をクリックします。[メトリック] ページで、ターゲットオブジェクトの名前をクリックして [品質ルールの詳細] ページに移動し、そこで品質ルールを設定できます。
[品質ルールの詳細] ページで、[品質ルールの作成] をクリックします。
[品質ルールの作成] ダイアログボックスで、パラメーターを構成します。
パラメーター
説明
基本情報
[ルール名]
品質ルールのカスタム名を入力します。
[ルールの強度]
[ソフトルール] または [強制ルール] を選択できます。
[ソフトルール] を選択した場合、検証結果が異常な場合にアラートがトリガーされます。ただし、ダウンストリームノードはブロックされません。
[強制ルール] を選択した場合、検証結果が異常な場合にアラートがトリガーされます。コードチェックのスケジューリングやタスクトリガーのスケジューリングなど、ダウンストリームタスクが存在する場合、データの汚染を防ぐためにダウンストリームタスクはブロックされます。定期的な品質スケジューリングなど、ダウンストリームタスクが存在しない場合は、アラートのみがトリガーされます。
[説明]
品質ルールのカスタム説明を入力します。説明は最大 128 文字です。
[構成方法]
[テンプレートから作成]: 一般的なシステムテンプレートとカスタムビジネステンプレートを使用して、品質ルールを迅速に作成します。
[システムテンプレート]: 組み込みパラメーターは設定可能です。これは一般的なルールを作成するのに適しています。
[カスタムテンプレート]: パラメーターはプリセットされており、設定は不要です。これは通常、ビジネスロジックを含むルールを作成するために使用されます。
[SQL]: SQL を使用して品質監視ルールを柔軟にカスタマイズします。これは柔軟で複雑なシナリオに適しています。
[ルールテンプレート]
ドロップダウンリストからルールテンプレートを選択します。オプションは [一意性]、[安定性]、[SQL] です。
[一意性]: [フィールドグループカウント検証] と [重複値カウント検証] が含まれます。
[安定性]: [列の安定性検証] と [列のボラティリティ検証] が含まれます。
[SQL]: [カスタム統計検証] が含まれます。
詳細については、「品質ルールテンプレートタイプ」をご参照ください。
[ルールタイプ]
ルールタイプはテンプレートに依存し、その最も基本的なプロパティです。説明やフィルタリングに使用できます。
ルール設定
[ルール構成]
[ルールテンプレート] を [一意性] に設定した場合、次のパラメーターを設定します。
[フィールドグループカウント検証]/[重複値カウント検証]:
[検証テーブルデータフィルタリング]: この機能はデフォルトで無効になっています。有効にすると、検証テーブルのフィルター条件、パーティションフィルター、または通常のデータフィルターを設定できます。フィルター条件は検証 SQL 文に追加されます。検証テーブルにパーティションフィルタリングが必要な場合は、スケジュール設定でパーティションフィルター式を設定します。設定後、品質レポートは検証パーティションを最小の表示粒度として使用します。データフィルタリングの内容を入力します。例:
id = 12 --単一テーブルT1.id=12 and T2.name = "Zhang San" --二重テーブル
[ルールテンプレート] を [安定性] に設定した場合、次のパラメーターを設定します。
[列の安定性検証]/[列のボラティリティ検証]:
[統計メソッド]: 必要に応じて統計メソッドを選択します。
[検証テーブルデータフィルタリング]: この機能はデフォルトで無効になっています。有効にすると、検証テーブルのフィルター条件、パーティションフィルター、または通常のデータフィルターを設定できます。フィルター条件は検証 SQL 文に追加されます。検証テーブルにパーティションフィルタリングが必要な場合は、スケジュール設定でパーティションフィルター式を設定します。設定後、品質レポートは検証パーティションを最小の表示粒度として使用します。データフィルタリングの内容を入力します。例:
id = 12 --単一テーブルT1.id=12 and T2.name = "Zhang San" --二重テーブル
[ルールテンプレート] を [SQL] に設定した場合、次のパラメーターを設定します。
[カスタム統計検証]:
[SQL]: SELECT クエリ文がサポートされています。クエリオブジェクトにはプライマリテーブルを含める必要があります。例:
select sum(sale) from tableA where ds=${bizdate};
検証設定
[ルール検証]
データ品質ルールが検証された後、結果は例外チェック設定と比較されます。条件が満たされると、検証は失敗します。これにより、アラートなどの後続プロセスもトリガーされます。
例外チェックに利用できるメトリックは、テンプレートと設定によって決まります。複数の AND/OR 条件がサポートされています。設定には 3 つ未満の条件を使用することをお勧めします。
詳細については、「メトリック検証構成」をご参照ください。
ビジネスプロパティ設定
プロパティ情報
ビジネスプロパティを入力するための基準は、品質ルールのプロパティ設定に依存します。例:
管理部門に対応するフィールドの値タイプは列挙 (複数選択) です。選択可能な値は、ビッグデータ部門、ビジネス部門、技術部門です。したがって、品質ルールを作成するとき、このプロパティはこれらのオプションを持つ複数選択ドロップダウンリストになります。
ルールオーナーに対応するフィールドの値タイプはカスタム入力です。プロパティフィールドの長さは 256 です。したがって、品質ルールを作成するとき、このプロパティには最大 256 文字まで入力できます。
プロパティフィールドが範囲選択を使用して入力される場合は、次のように設定します:
範囲選択: これは、値の範囲が連続した数値または日付で構成される場合によく使用されます。記号 >、>=、<、および <= を使用できます。プロパティ設定の詳細については、「品質ルールプロパティの作成と管理」をご参照ください。
スケジューリングプロパティ設定
[スケジューリング方法]
設定済みのスケジュールを選択します。スケジューリングメソッドをまだ決定していない場合は、品質ルールを作成した後に設定できます。新しいスケジュールを作成するには、「スケジュールの作成」をご参照ください。
[保存] をクリックして、ルール構成を完了します。
[SQL のプレビュー] をクリックして、現在の設定を最後に保存した設定と比較できます。これにより、SQL 文の変更を表示できます。
説明主要な情報が不完全な場合、SQL プレビューは利用できません。
左側には最後に保存された設定の SQL プレビューが表示されます。設定が保存されていない場合、このセクションは空です。右側には現在の設定の SQL プレビューが表示されます。
ルール構成リスト
ルール設定リストでは、設定されたメトリックルールに関する情報を表示し、表示、編集、トライアル実行、実行、削除などの操作を実行できます。

エリア
説明
①フィルターと検索エリア
オブジェクト名またはルール名で迅速に検索できます。
ルールタイプ、ルールテンプレート、ルールの強度、トライアル実行ステータス、アクティブステータスでフィルタリングできます。
説明品質ルールプロパティが検索可能およびフィルタリング可能なビジネスプロパティで設定され、有効になっている場合、このプロパティに基づいて検索またはフィルタリングできます。
②リストエリア
ルール設定リストから、オブジェクトタイプ/名前、ルール名/ID、トライアル実行ステータス、アクティブステータス、ルールタイプ、ルールテンプレート、ルールの強度、スケジュールタイプ、および関連するナレッジベースドキュメント情報を表示します。リフレッシュアイコンの前の
アイコンをクリックして、ルールリストに表示するフィールドを選択します。[アクティブステータス]: ルールをアクティブにする前にトライアル実行を行うことをお勧めします。トライアル実行に合格したルールのアクティブステータスを有効にして、不正なルールがオンラインタスクをブロックするのを防ぎます。
ステータスを有効にすると、選択したルールは設定されたスケジュールに基づいて自動的に実行されます。
ステータスを無効にすると、選択したルールは自動的に実行されませんが、手動で実行できます。
[関連ナレッジベースドキュメント]: [詳細の表示] をクリックして、ルールに関連付けられたナレッジベース情報を表示します。これには、テーブル名、検証オブジェクト、ルール、および関連するナレッジベースドキュメント情報が含まれます。ナレッジベースの検索、表示、編集、削除もできます。詳細については、「ナレッジベースの表示」をご参照ください。
③操作エリア
表示、クローン、編集、トライアル実行、実行、スケジュール設定、ナレッジベースドキュメントの関連付け、削除などの操作を実行できます。
[表示]: ルール構成の詳細を表示します。
[複製]: ルールをすばやく複製します。
[編集]: ルールを編集した後、再度トライアル実行を行う必要があります。
[トライアル実行]: [既存のスケジュール] または [カスタム検証範囲] を選択して、ルールのトライアル実行を行います。トライアル実行後、
アイコンをクリックして [トライアル実行ログの表示] を行います。[実行]: [既存のスケジュール] または [カスタム検証範囲] を選択して、ルールを実行します。実行後、[品質レコード] で検証結果を表示できます。
[スケジュール設定]: ダイアログボックスで、スケジュールタイプをフィルタリングするか、名前でスケジュールを迅速に検索します。スケジュールを編集することもできます。
[ナレッジベースドキュメントの関連付け]: ルールをナレッジベースに関連付けた後、品質ルールと管理ワークベンチで関連するナレッジを表示できます。関連付けられていないナレッジベースを選択できます。作成するには、「ナレッジベースの作成と管理」をご参照ください。
[削除]: この品質ルールオブジェクトを削除すると、その下のすべての品質ルールが削除されます。この操作は元に戻せません。注意して進めてください。
④一括操作エリア
トライアル実行、実行、スケジュール設定、有効化、無効化、ビジネスプロパティの変更、ナレッジベースドキュメントの関連付け、削除などのバッチ操作を実行できます。
[トライアル実行]: [既存のスケジュール] または [カスタム検証範囲] を選択して、ルールのバッチトライアル実行を行います。トライアル実行後、
アイコンをクリックして [トライアル実行ログの表示] を行います。[実行]: [既存のスケジュール] または [カスタム検証範囲] を選択して、ルールのバッチ実行を行います。実行後、[品質レコード] で検証結果を表示できます。
[スケジュール設定]: ダイアログボックスで、スケジュールタイプをフィルタリングするか、名前でスケジュールを迅速に検索します。スケジュールを編集して、品質ルールにバッチで設定することもできます。品質ルールリストページで編集可能な選択されたルールのみを変更できます。
[有効化]: アクティブステータスをバッチで有効にすると、選択したルールは設定されたスケジュールに基づいて自動的に実行されます。品質ルールリストページで編集可能な選択されたルールのみを有効にできます。
[無効化]: アクティブステータスをバッチで無効にすると、選択したルールは自動的に実行されませんが、手動で実行できます。品質ルールリストページで編集可能な選択されたルールのみを無効にできます。
[ビジネスプロパティの変更]: ビジネスプロパティの値タイプが単一選択または複数選択の場合、ビジネスプロパティをバッチで変更できます。
値タイプが複数選択の場合、プロパティ値を追加または変更できます。
値タイプが単一選択の場合、プロパティ値を直接変更できます。
[ナレッジベースドキュメントの関連付け]: ルールをナレッジベースに関連付けた後、品質ルールと管理ワークベンチで関連するナレッジを表示できます。監視対象オブジェクトのナレッジベースをバッチで設定できます。作成するには、「ナレッジベースの作成と管理」をご参照ください。
[削除]: 品質ルールオブジェクトをバッチで削除できます。この操作は元に戻せません。注意して進めてください。品質ルールリストページで編集可能な選択されたルールのみを削除できます。
スケジュールの作成
ルールにスケジュールを設定する際、既存のスケジュールを再利用できます。各テーブルには最大 20 のスケジューリングルールを設定できます。
1 つのルールに対して最大 10 のスケジュールを設定できます。
スケジュール設定が同一の場合、重複した設定は自動的に削除されます。
検証範囲は、各チェックの範囲を制御するために、品質チェック文にフィルター条件として渡されます。検証範囲は、品質レポートなどのダウンストリームコンポーネントの基本単位としても機能し、最小の表示粒度として使用されます。
[品質ルールの詳細] ページで、[スケジュール設定] タブをクリックし、[スケジュールの作成] をクリックして [スケジュールの作成] ダイアログボックスを開きます。
[スケジュールの作成] ダイアログボックスで、パラメーターを設定します。
パラメーター
説明
[スケジュール名]
スケジュールのカスタム名を入力します。
[スケジュールタイプ]
[時間指定スケジューリング]、[データ更新トリガースケジューリング]、または [固定タスクトリガースケジューリング] を選択できます。
[時間指定スケジューリング]: 設定されたスケジュールに基づいて、データの定期的な品質チェックを実行します。これは、データが比較的一定の時間に生成されるシナリオに適しています。
[スケジューリングサイクル]: 品質ルールの実行は計算資源を消費します。本番タスクの正常な運用を確保するために、複数の品質ルールを同時に実行しないでください。スケジューリングサイクルは [日]、[週]、[月]、[時]、または [分] にすることができます。
システムタイムゾーン (ユーザーセンターのタイムゾーン) がスケジューリングタイムゾーン ([管理ハブ] > [システム設定] > [基本設定] で設定されたタイムゾーン) と異なる場合、ルールはシステムタイムゾーンに基づいて実行されます。
[データ更新トリガースケジューリング]: いずれかのコードタスクが実行されると、システムは実行が現在のテーブルの指定された検証範囲を更新するかどうかをチェックします。これは、変更タスクが固定されていないテーブルや、すべての変更を監視する必要がある密接な監視が必要なテーブルに適しています。
説明タスクによって更新されたパーティションを検証範囲として選択することをお勧めします。非パーティションテーブルの場合、テーブル全体がチェックされます。システムはすべてのデータ変更を自動的に検出し、チェックを実行して漏れを防ぎます。
[固定タスクトリガースケジューリング]: 指定されたタスクが正常に実行される前または後に、設定された品質ルールを実行します。SQL、オフラインパイプライン、Python、Shell、仮想、DataX、Spark Jar、Hive MR、データベース SQL などのタイプのタスクを選択して、品質ルールタスクをトリガーできます。これは、テーブル変更タスクが固定されているシナリオに適しています。
説明固定タスクトリガーは本番環境のタスクのみを選択できます。強制ルールが設定され、スケジュールされたタスクがチェックに失敗した場合、オンラインタスクが影響を受ける可能性があります。ビジネスニーズに基づいて慎重に進めてください。
[トリガータイミング]: 品質チェックをトリガーするタイミングを選択します。[すべてのタスクが正常に実行された後にトリガー]、[各タスクが正常に実行された後にトリガー]、または [各タスクが実行される前にトリガー] を選択できます。
[トリガータスク]: 本番プロジェクトからタスクノードを選択します。このオプションは、プロジェクト管理者および O&M システムロールを持つユーザーが利用できます。ノードの出力名で検索するか、推奨タスクまたはすべてのタスクから選択できます。
説明すべてのタスクが正常に実行された後にトリガーすることを選択した場合、同じスケジューリングサイクルを持つタスクを選択することをお勧めします。これにより、異なるスケジューリングサイクルによるルール実行と品質チェック結果の遅延を回避できます。
スケジューリング条件
この機能はデフォルトで無効になっています。有効にすると、品質ルールがスケジュールされる前に、システムはスケジューリング条件が満たされているかどうかをチェックします。条件が満たされている場合にのみルールがスケジュールされます。それ以外の場合、スケジュールは無視されます。
[データタイムスタンプ]/[実行日]: スケジュールタイプとして [時間指定スケジューリング] (実行日をサポートしない)、[データ更新トリガースケジューリング]、または [固定タスクトリガースケジューリング] を選択した場合、日付を設定できます。[通常カレンダー] または [カスタムカレンダー] を選択できます。カレンダーのカスタマイズ方法の詳細については、「パブリックカレンダーの作成」をご参照ください。
[通常カレンダー] を選択した場合、[月]、[週]、[日] の条件を設定できます。次の図を参照してください。

[カスタムカレンダー] を選択した場合、[日付タイプ] と [タグ] の条件を設定できます。次の図を参照してください。

[インスタンスタイプ]: スケジュールタイプとして [データ更新トリガースケジューリング] または [固定タスクトリガースケジューリング] を選択した場合、インスタンスタイプを設定できます。[定期インスタンス]、[データバックフィルインスタンス]、または [ワンタイムインスタンス] を選択できます。次の図を参照してください。

説明少なくとも 1 つのルールを設定します。ルールを追加するには、[+ルールを追加] をクリックします。
最大 10 個のスケジューリング条件を設定できます。
スケジューリング条件間の関係は AND または OR に設定できます。
[検証範囲]
時間指定スケジューリングまたは固定タスクトリガースケジューリングを選択した場合、検証範囲はカスタム検証範囲をサポートします。データ更新トリガースケジューリングを選択した場合、検証範囲はタスクによって更新されたパーティションとカスタム検証範囲をサポートします。
[更新されたパーティション]: チェックタスクでパーティションが更新された場合、タスクは更新されたパーティションに基づいて発行されます。
説明動的パーティションのシナリオでは、パーティションが解析されず、品質チェックが実行されない場合があります。
パーティションサイズ、パーティション行数、フィールド統計のチェックなど、変動性チェックルールには指定されたパーティションが必要であり、タスク更新パーティションの検証範囲はサポートされません。
非パーティションテーブルが更新された場合、テーブル全体がチェックされます。
カスタム検証範囲: 解析できないシナリオでは、カスタム検証範囲を使用して、データタイムスタンプまたは実行日に基づいて検証範囲式を指定できます。
[検証範囲式]: これはドロップダウンリストで、
ds='${yyyyMMdd}'のようにチェックする範囲を入力できます。組み込みの検証範囲式を選択して変更し、迅速に設定することもできます。パーティション式の詳細については、「組み込みパーティション式の種類」をご参照ください。説明チェックに複数の条件を使用する場合は、and または or で接続できます。例:
province="Zhejiang" and ds<=${yyyyMMdd}。品質ルールにフィルター条件が設定されている場合、検証範囲式とフィルター条件は AND 関係になります。データがチェックされるとき、両方の条件がフィルタリングに使用されます。
検証範囲式は全表スキャンをサポートします。
注: 全表スキャンは大量のリソースを消費し、一部のテーブルではサポートされていません。全表スキャンを避けるために、パーティションフィルター式を設定することをお勧めします。
[検証範囲予算]: デフォルトは当日のデータタイムスタンプです。
[OK] をクリックして、スケジュール設定を完了します。
スケジュール構成リスト
スケジュールを作成した後、スケジューリング設定リストで表示、編集、クローン、または削除できます。

エリア | 説明 |
①フィルターおよび検索エリア | スケジュール名で迅速に検索できます。 [時間指定スケジューリング]、[データ更新トリガースケジューリング]、および [固定タスクトリガースケジューリング] でフィルタリングできます。 |
②リストエリア | ルール設定リストから、[スケジュール名]、[スケジュールタイプ]、[最終更新者]、および [最終更新日時] を表示します。 |
③操作エリア | スケジュールの編集、複製、または削除ができます。
|
アラートの設定
異なるルールに異なるアラート方法を設定して、アラートを区別できます。たとえば、強制ルールからの例外には電話アラートを設定し、ソフトルールからの例外にはショートメッセージアラートを設定できます。ルールが複数のアラート設定に一致する場合、ポリシーを設定してどのアラートが有効になるかを決定できます。
1 つの監視対象に対して最大 20 のアラート設定を作成できます。
[品質ルールの詳細] ページで、[アラート設定] タブをクリックし、[新しいアラート設定] をクリックして [新しいアラート設定] ダイアログボックスを開きます。

[新しいアラート構成] ダイアログボックスで、パラメーターを構成します。
パラメーター
説明
[カバレッジ]
[すべてのルール]、[すべての強制ルール]、[すべてのソフトルール]、または [カスタム] を選択できます。
説明1 つの監視対象に対して、すべてのルール、すべての強制ルール、すべてのソフトルールの 3 つの範囲それぞれに 1 つのアラートを設定できます。新しいルールは、その強度に基づいて対応するアラートに自動的に一致します。アラート設定を変更するには、既存のものを変更できます。
カスタム範囲には、現在の監視対象の下で設定されたすべてのルールを含めることができ、最大 200 までです。
[アラート構成名]
アラート設定名は、1 つの監視対象に対して一意である必要があり、最大 256 文字です。
[アラート受信者]
アラート受信者とアラートメソッドを設定します。少なくとも 1 人のアラート受信者と 1 つのアラートメソッドを選択する必要があります。
[アラート受信者]: アラート受信者として、カスタム、勤怠表、または品質オーナーを選択できます。
最大 5 人のカスタムアラート受信者と最大 3 つの勤怠表を設定できます。
[アラートメソッド]: 電話、メール、ショートメッセージ、DingTalk、Lark、WeCom、およびカスタムチャンネルなど、さまざまな受信方法を選択できます。この受信方法は、カスタムチャンネルの設定 を通じて制御できます。
[OK] をクリックして、アラート構成を完了します。
アラート構成リスト
アラート設定を完了した後、アラート設定リストで並べ替え、編集、または削除できます。

序数 | 説明 |
① ソートエリア | 品質ルールが複数のアラート設定に一致する場合のアラートポリシーを設定できます:
|
② リストエリア | アラート設定名、有効範囲、各アラートタイプの特定の受信者、および対応するアラート受信方法を表示します。 [有効範囲]: カスタムアラートの場合、設定されたオブジェクトとルール名を表示できます。ルールが削除された場合、オブジェクト名は表示できません。アラート設定を更新することをお勧めします。 |
③ 操作エリア | 構成済みのアラートを編集または削除できます。
|
品質レポートの表示
[品質レポート] をクリックして、現在の品質ルールの[ルールチェックの概要] と [ルールチェックの詳細] を表示します。
例外結果、パーティション時間、またはルール名やオブジェクト名のキーワードでチェック詳細を迅速にフィルタリングできます。
ルールチェック詳細リストの [操作] 列で、
アイコンをクリックして品質ルールのルールチェック詳細を表示します。ルールチェック詳細リストの [操作] 列で、
アイコンをクリックして品質ルールの実行ログを表示します。
品質ルール権限の設定
[権限管理] をクリックし、[詳細の表示] 権限を設定して、どのメンバーがチェックレコード、品質ルールの詳細、品質レポートを表示できるかを指定します。
[詳細の表示]: [すべてのメンバー] または [現在のオブジェクトの品質管理権限を持つメンバーのみ] を選択できます。
[OK] をクリックして、権限管理構成を完了します。
次のステップ
品質ルールを設定した後、メトリックルールリストでそれを表示できます。詳細については、「監視対象オブジェクトリストの表示」をご参照ください。
