検証ルールの操作
検証ルールとは、データセット内にある異常の検出に役立つビジネス要件のセットのことです。データが準拠する必要のある値を定義します。条件を追加すれば、特定のデータのみに検証ルールが適用されるようになります。
- 検証ルールをスタンドアロン オブジェクトとして作成します。ルールを定義する時に、変数と特定の値を使用できます。
検証ルールは汎用的であるため、変数とデータモデルの属性を関連付けることで各データセットにルールを適応させることができます。
特定値の場合は、ルールを適用した全データセットで同じ値を使用できます。
- 検証ルールを適用し、フィールドに応じて変更します。
検証ルールの変数とフィールドを関連付けます。あるフィールドにルールを適用すれば、他のフィールドのデータを検証できます。
- 検証ルールは値を分類して、データを検証します。
- 値は有効です。ルールステートメントをすべて満たしています。
- 値は適用できません。条件を満たしておらず、代替の検証式が定義されていません。
- 値は無効です。条件式は満たしていますが、検証式は満たしていないか、これらの値でルールを実行できません。たとえば、ルールで文字列と数値を比較する必要がある場合などです。
- 値は実行不可です。これらの値に対してルールを実行できません。たとえば、値が整数であるにもかかわらず、「yes」であるかどうかを検証しなければならない場合などです。
同じデータセット内であっても、必要な数の項目に同じ検証ルールを適用できます。
検証ルールはデータセットの品質と Qlik Trust Score™ に影響します。詳細については、「データ品質の評価」および「Qlik Trust Score™」を参照してください。
Talend Studio で検証ルールを使用できます。詳細については、「tDQRules プロパティ」を参照してください。
検証ルールの作成
ルールを作成するには、[検証ルール]タブから行うか、データセットにルールを適用します。AI が作成した提案からルールを作成することもできます。詳細は、「データセットに検証ルールを適用する」を参照してください。
ルールを作成したら、そのルールをデータセットに適用できます。
このユース ケースでは、次の条件を満たす全員が献血候補者としてマークされていることを、献血センターの職員が確認する必要があります
- 血液型が空ではなく、末尾が「+」または「-」で終わっていること。
- 年齢が 18 歳以上かつ 71 歳未満であること。
- [データ品質] を開き、 [検証ルール] タブを選択します。
- 検証ルールがない場合は、 [追加] をクリックします。そうでない場合は、 [検証ルールを作成] をクリックします。
- 「BloodDonation」という名前を入力します。
- ルールを保存するスペースを選択します。
- 重大度として [Critical] (重大)] を選択し、カテゴリに [有効性] を選択します。これらの設定により、ルールがデータセットの品質に与える影響を調整できます。詳細については、「カテゴリと重大度のレベル」を参照してください。
- 説明を入力します。これはオプションですが、検証ルールの目的を明確にするために入力を推奨します。
- 条件を追加するには、 [条件を定義] をオンにします。[If] セクションと [Else] セクションがアクティブになります。
- [If] セクションでの設定:
- 変数名に「bloodgroup」と入力します。後でこの変数をデータセットのフィールドに関連付けます。
- [汎用] > [Is not empty] (空ではない) という演算子を選択します。
- [グループを追加] をクリックします。
- [If] セクションの上部で、グループには論理演算子 [Or ] (または)、すべての条件には [And] (かつ) を選択します。
- グループでは、前の手順を繰り返し、Rh 因子に関する条件を追加します。
- bloodgroup が「+」で終わる。
- bloodgroup が「-」で終わる。
- 前の手順を繰り返し、年齢に関する条件を追加します。
- age >= 18。
- age < 71。
- [Then] セクションでの設定:
- 変数名「cangive」を入力します。後でこの変数をデータセットのフィールドに関連付けます。
- Text > = true の演算子を選択します。
Text 演算子は大文字と小文字を区別します。
- [Else] セクションは空のままにします。
ルールの構成は次のようになります。

- [作成] をクリックします。
データセットに検証ルールを適用する
同じデータセット内であっても、異なるフィールドに同じ検証ルールを適用できます。同じフィールドに異なるルールを適用することもできます。
- データセットを開きます。
- [データ プレビュー] タブを選択します。
- フィールドをクリックします。右側にパネルが表示されます。
- [検証ルール] セクションから
をクリックします。 - 適用するルールのチェックボックスを選択し、 [次へ] をクリックします。
このウィンドウからルールを作成し、現在のデータセットにすぐに適用することもできます。このルールは、後で他のデータセットに適用することもできます。
- 以下のように検証ルールを適用または作成します。
- 既存のルールを適用するには: 適用するルールのチェックボックスを選択し、 [次へ] をクリックします。
AI を使ってルールを作成するには:
情報メモAI データ品質検証ルール生成を使用するには、クロスリージョン データ処理にオプトインする必要があります。これにより、Qlik Cloud がテナントのリージョン外で一時的にデータを処理できるようになります。
処理場所の詳細および最新情報については、「クロスリージョン データ処理の有効化」を参照してください。
- このデータセットの提案をまだ作成していない場合は、[ルールを提案] を使用してください。
- ルール提案がすでに生成されている場合は、[提案を表示] を使用します。
- [新規作成] をクリックし、[新しいルールを提案] を選択して、新しいルール提案を生成します。提案は、サンプル データから最大 5 つの値に基づいて、データに一致した提案を生成します。
この情報は顧客データとして扱われ、Qlik Cloud または GenAI モデルのトレーニングには使用されません。
警告メモこの機能は生成人工知能 (GenAI) を使用します。GenAI 出力を使用または共有する前に、それを確認および検証し、その使用が特定のユース ケースに適切かどうか、および適用法に準拠しているかどうかを評価することはユーザーの責任です。 - 手動でルールを作成するには: このウィンドウからルールを直接作成し、現在のデータセットにすぐに適用することもできます。
情報メモデータセットに直接作成したルールは、他のデータセットにも適用できます。すべてのルールは [データ品質] > [検証ルール] にあります。 - 各変数をフィールドに関連付けます。このユース ケースでは、次のようになります。
- bloodgroup を BloodGroup に関連付けます。
- age を Age に関連付けます。
- cangive を Giver に関連付けます。
- 変更を適用してデータ品質を自動的に更新するには、 [品質を更新] チェックボックスを選択します。
- [適用] をクリックします。
- [品質を更新] を選択しなかった場合、ルールはグレーで表示されます。変更を適用し、データ品質を更新するには、右側のパネルの上にある [更新] をクリックします。
ルールはデータセットに適用され、データセットの品質と、変数が関連付けられているフィールドの品質を評価できます。
ルールが適用されるフィールドの列ヘッダーには、
アイコンが表示されます。アイコンにカーソルを合わせると、そのフィールドに適用されるルールの数が表示されます。
データセットとフィールドの品質を評価する
クオリティ バーでは、無効な値、 適用外の値、有効な値の割合を確認できます。パーセンテージはサンプルのみではなく、フィールドのすべてのデータに基づいて計算されます。
データセットのクオリティ バー
- データセットを開きます。
- [データ プレビュー] タブを選択します。
- 右側のパネルを開くには、ルールが適用されているフィールドをクリックします。
- パーセンテージを表示するには、クオリティ バーの色の上にカーソルを合わせます。
- 左から右に最大 3 つの色が表示されます。
- 赤: 無効な値。条件式は満たしていますが、検証式は満たしていないか、これらの値でルールを実行できません。たとえば、ルールで文字列と数値を比較する必要がある場合などです。
- 薄緑: 適用外の値。値が条件を満たしておらず、代替の検証式が定義されていません。
- 緑: 有効な値。ルールステートメントをすべて満たしています。
このユース ケースでは、次のようになります。
- 21.1% の値は無効です。たとえば、献血可能者としてマークされているが、血液型が未入力の場合などです。
- 5.3% の値は適用外です。条件が満たされておらず、代替式も定義されていません。
- 73.6% の値は有効です。血液型が入力されており、「+」または「-」で終わっていて、年齢が 18 歳以上 71 歳未満であり、その人が献血可能者としてマークされています。

フィールドのクオリティ バー。
- データセットを開きます。
- [データ プレビュー] タブを選択します。
- パーセンテージを表示するには、クオリティ バーの色の上にカーソルを合わせます。
- 左から右に最大 3 つの色が表示されます。
- 赤: 無効な値。
- 黒: 空の値。
- 緑: 有効な値。

- 各色の詳細については、色をクリックしてください。右側のパネルが開き、検証ルールのセマンティック タイプとパーセンテージが表示されます。
無効な値は、左側に赤いバーが表示されます。
エラーの詳細については、赤いバーをクリックしてください。エラーは、検証ルール、セマンティック タイプ、またはその両方から発生する可能性があります。
データセットから検証ルールを編集する
この手順では、データセットから検証ルールのみを編集し、ルールを適用するフィールドを変更できます。
ルールの定義を編集する場合は、「検証ルールの編集」を参照してください。
- データセットを開きます。
- [データ プレビュー] タブを選択します。
- ルールを適用するフィールドをクリックします。
- 右側のパネルで、 [検証ルール] セクションにある
をクリックします。 - 必要に応じてルールを編集します。
- 変更を適用してデータ品質を自動的に更新するには、 [品質を更新] チェックボックスを選択します。
- [適用] をクリックします。
- [品質を更新] を選択しなかった場合は、右側のパネルの上にある [更新] をクリックして変更を適用し、データ品質を更新します。
データセットから検証ルールを削除する
この手順では、スペースからルールを削除せずに、データセットからルールを削除できます。
スペースからルールを削除するには、「検証ルールの削除」を参照してください。
- データセットを開きます。
- [データ プレビュー] タブを選択します。
- ルールを削除するフィールドをクリックします。
- 右側のパネルで、
> [削除] をクリックします。 - 削除を確定します。
- 変更を適用し、データ品質を更新するには、右側のパネルの上にある [更新] をクリックします。
検証ルールのアクティブ化/非アクティブ化
データセットから検証ルールを削除する代わりに、次の 2 つのメニューから検証ルールを非アクティブ化できます。
- [検証ルール] タブから:
- ルールにカーソルを合わせます。
- 右側で、
> [非アクティブ化] をクリックします。 これにより、ルールが適用されるすべてのデータセットでルールが非アクティブ化されます。
- 影響を受けるデータセットのデータ品質を更新します。
- データセットから:
- 非アクティブ化するルールを適用する項目をクリックします。
- 右側のパネルで、
> [非アクティブ化] をクリックします。 - 変更を適用し、データ品質を更新するには、右側のパネルの上にある [更新] をクリックします。
ルールはグレーアウトされ、
のアイコンは列ヘッダーに表示されなくなりました。いつでも再度アクティブ化できます。[アクティブ化] がグレー表示されている場合、ルールはすべてのデータセットに対して非アクティブ化されています。ルールはこのデータセットに対してのみ非アクティブ化され、他のデータセットには引き続き適用できます。
ルールをアクティブ化するには、同じ手順に従って [アクティブ化] をクリックします。
検証ルールを編集する
この手順では、検証ルールを編集でき、そのルールが適用されるすべてのデータセットに影響を与えます。
ルールが適用される項目のみを編集する場合は、「データセットから検証ルールを編集する」を参照してください。
編集できるのは、アクセス権を持つスペース内のルールのみです。
- [データ品質] を開き、 [検証ルール] タブを選択します。
- リストから、ルールまたは
> [編集] をクリックします。 - 必要に応じてルールを編集します。 情報メモカテゴリまたは重大度を変更すると、ルールがデータセットの品質に与える影響も変わります。詳細については、「カテゴリと重大度のレベル」を参照してください。
- [Save] (保存)をクリックします。
- ルールがデータセットに適用される場合、各データセットを開いて品質を更新します。
検証ルールを削除する
この手順は、ルールが適用されるすべてのデータセットに影響します。
データセットからルールのみを削除する場合は、「データセットから検証ルールを削除する」を参照してください。
削除できるのは、アクセス権を持つスペース内のルールのみです。
- [データ品質] を開き、 [検証ルール] タブを選択します。
- リストから、
> [削除] をクリックします。 - 削除を確定します。
- ルールがデータセットに適用される場合、各データセットを開いて品質を更新します。
カテゴリと重大度のレベル
カテゴリと重大度により、データセットの品質と Qlik Trust Score™ に対するルールの影響を調整できます。重大度のレベルによっては、他よりも影響が大きい場合があります。
[Categories] (カテゴリー)
あるカテゴリが他のカテゴリより重視されるわけではなく、すべてのカテゴリがデータセットの品質と Qlik Trust Score™ の [有効性] 軸に影響を及ぼします。
ルールが正確度カテゴリにある場合、それは正確度軸にも影響します。
詳細については、「データ品質の評価」および「Qlik Trust Score™」を参照してください。
重大度
重みが低いルールは、重みが高いルールよりもデータセットの品質と Qlik Trust Score™ に与える影響が少なくなります ([Critical] (重大) > [Major] (大) > [Standard] (標準) > [Minor] (小))。
例: 重大度が「重大度: Minor (小) 」に設定されたルールに対して 55 件の無効なレコードがあるデータセットでは、同じルールを「重大度: Major (大)」に設定した場合と比較して、スコアの低下が少なくなります。
演算子
ルールを定義するときに、データを検証するためのさまざまな演算子を選択できます。
| カテゴリ | 演算子 | 説明 | タイプ | 例 |
|---|---|---|---|---|
| Generic | is empty | [Text/is blank] とは異なります | すべてのタイプ | null 値と値 "" は空とみなされるため、有効です。 |
| Generic | is not empty | [Text/is not blank] とは異なります | すべてのタイプ | null 値と値 "" は空とみなされるため、無効です。 |
| Text | is blank | [Generic/is empty] とは異なります | テキスト | null 値、値 ""、値 " " は空とみなされるため、有効です。 |
| Text | is not blank | [Generic/is not empty] とは異なります | Text | null 値、値 ""、値 " " は空とみなされるため、無効です。 |
| Text | = | 等しい | Text | OrderID = ORD#10 |
| Text | != | 異なる | Text | OrderID != ORD#10 |
| Text | Contains | 該当せず | Text | OrderID Contains ORD#10 |
| Text | Does not contain | 利用不可 | Text | OrderID Does not contain ORD#10 |
| [Text] (テキスト) | Starts with | 該当せず | Text | OrderID Starts with ORD# |
| [Text] (テキスト) | で開始しない | 該当せず | Text | OrderID Does not start with ORD# |
| [Text] (テキスト) | Ends with | 該当せず | Text | OrderID Ends with _XX |
| Text | DOES NOT END WITH | 該当せず | Text | OrderID Does not end with _XX |
| [Text] (テキスト) | 正規表現に一致 | 詳細は、RE2/J documentationをご覧ください。 | テキスト | PostalCode Matches regex ^[0-9]{5}(-[0-9]{4})?$ |
| [Text] (テキスト) | 正規表現と一致しない | 詳細は、RE2/J documentationをご覧ください。 | テキスト | PostalCode Does not match regex ^[0-9]{5}(-[0-9]{4})?$ |
| [Text] (テキスト) | いずれかに一致する | セマンティック タイプではなく、制限された値のリストを使用する必要がある場合に、この演算子を選択します。 最大 150 個の値を追加でき、それぞれ最大 200 文字まで含めることができます。150 個を超える値が必要な場合は、セマンティック タイプを使用します。 | Text | Country Is one of USA France Canada China |
| [Text] (テキスト) | いずれにも一致しない | セマンティック タイプではなく、制限された値のリストを使用する必要がある場合に、この演算子を選択します。 最大 150 個の値を追加でき、それぞれ最大 200 文字まで含めることができます。150 個を超える値が必要な場合は、セマンティック タイプを使用します。 | Text | Country Is not one of USA France Canada China |
| Number | = | 等しい | 数値 | Age = 21 |
| Number | != | 異なる | 数値 | Age != 0 |
| Number | < | 未満 | 数値 | Age < 21 |
| Number | <= | 以下 | 数値 | Age <= 20 |
| Number | > | 超える | 数値 | Age > 20 |
| 数値 | >= | 以上 | 数値 | Age >= 21 |
| Boolean | is true | 該当せず | Boolean | User deleted is true |
| Boolean | is false | 該当せず | Boolean | User activated is false |
| Boolean | = | 2 つのブール値項目のリレーションシップ | Boolean | User deleted = Account deactivated |
| Boolean | != | 2 つのブール値項目のリレーションシップ | Boolean | User activated != User deleted |
| [Type] (タイプ) | is of semantic type | 選択したセマンティック タイプで値は定義されます。 | すべてのタイプ | Country is of semantic type Country Code ISO3 |
| [Type] (タイプ) | is not of semantic type | 選択したセマンティック タイプでは値が定義されていません。 | すべてのタイプ | Phone is not of semantic type US Phone |
| Date | Is in the last | 正の整数を入力し、単位を選択します。 | すべてのタイプ | Shipment Is in the last 4 Hours |
| Date | Is not in the last | 正の整数を入力し、単位を選択します。 | すべてのタイプ | Shipment Is not in the last 110 Minutes |
| Date | Is in the next | 正の整数を入力し、単位を選択します。 | すべてのタイプ | Shipment Is in the next 90 Seconds |
| Date | Is not in the next | 正の整数を入力し、単位を選択します。 | すべてのタイプ | Shipment Is not in the next 28 Days |
| Date | Is before | カレンダーを開き、日付と時刻を選択します。UTC+00 タイム ゾーンを使用して日付/時刻を選択する必要があります。 | すべてのタイプ | Birthdate Is before 1/1/2008 12:00 AM |
| Date | Is before or equal to | カレンダーを開き、日付と時刻を選択します。UTC+00 タイム ゾーンを使用して日付/時刻を選択する必要があります。 | すべてのタイプ | Birthdate Is before or equal to 1/1/2008 12:00 AM |
| Date | Is after | カレンダーを開き、日付と時刻を選択します。UTC+00 タイム ゾーンを使用して日付/時刻を選択する必要があります。 | すべてのタイプ | Birthdate Is after 1/1/2008 12:00 AM |
| Date | Is after or equal to | カレンダーを開き、日付と時刻を選択します。UTC+00 タイム ゾーンを使用して日付/時刻を選択する必要があります。 | すべてのタイプ | Birthdate Is after or equal to 1/1/2008 12:00 AM |
| Date | Is equal to | カレンダーを開き、日付と時刻を選択します。UTC+00 タイム ゾーンを使用して日付/時刻を選択する必要があります。 | すべてのタイプ | Birthdate Is equal to 1/1/2008 12:00 AM |
| Date | Is not equal to | カレンダーを開き、日付と時刻を選択します。UTC+00 タイム ゾーンを使用して日付/時刻を選択する必要があります。 | すべてのタイプ | Birthdate Is not equal to 1/1/2008 12:00 AM |
| Date | Is in the past | この演算子はプッシュダウン モードではサポートされていません。値は実行不可としてマークされます。 | すべてのタイプ | Shipment Is in the past |
| Date | Is in the future | この演算子はプッシュダウン モードではサポートされていません。値は実行不可としてマークされます。 | すべてのタイプ | Shipment Is in the future |