# tDQRulesを使ってデータを検証

このシナリオのジョブではtDQRulesコンポーネントを使い、Qlik Talend Data Integrationの[検証ルール](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/Working-with-validation-rules.htm)によってデータを検証します。このコンポーネントは、Talend Studio 8.0 R2025-06以降で利用可能です。

ジョブでは次のルールが使用されます: ![検証ルールの設定。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/tdqrules-rule-conf.png)

## ジョブを設定

### 手順

1. tFixedFlowInputコンポーネント、tDQRulesコンポーネント、および3つのtLogRowコンポーネントを**[Palette] (パレット)**からデザインワークスペースにドロップします。
2. Mainリンクを使って、tFixedFlowInputをtDQRulesにリンクさせます。
3. Flowリンクを使って、tDQRulesをtLogRowにリンクさせます。
4. Not\_Applicableリンクを使って、tDQRulesを別のtLogRowにリンクさせます。
5. Rejectリンクを使って、tDQRulesを最後のtLogRowにリンクさせます。

   ![tDQRulesコンポーネントを使ってデータを検証する5コンポーネントのジョブ。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/tdqrules-job.png)

## tFixedFlowInputコンポーネントを設定

### 手順

1. tFixedFlowInputをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
2. [Schema] (スキーマ)で[Built-In] (組み込み)を選択し、[Edit schema] (スキーマを編集)の横にある[...]をクリックします。
3. カラムを追加する場合は、![\[Add\] (追加)アイコン](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/add.svg)をクリックしてOKをクリックします。

   ![tFixedFlowInputコンポーネントのスキーマ。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/tdqrules-donation-input.png)
4. [Use Inline Content (delimited file)] (インラインコンテンツを使用: 区切りファイル)を選択します。
5. データを入力します。このサンプルでは、次のようになります。
   ```
   Mendoza,Patricia,39,true,44,AB-,Nantes,44000
   Larsen,Sheri,37,true,10,B+,Rennes,35000
   Dupont,Megan,95,false,27,O+,Marseille,13000
   Oconnor,Emily,78,false,50,A-,Nice,06000
   Plisson,Joseph,60,true,5,O-,Perpignan,66000
   Clark,Kirsten,18,true,0,B+,Angers,49000
   Lapointe,Jason,40,true,2,A+,Paris,75100
   Park,Traci,28,true,28,B-,Nantes,14000
   Rodriguez,Glenn,55,false,29,B+,Rouen,76000
   ```

## tDQRulesコンポーネントを設定

### 始める前に

* Qlik Talend Data Integrationで[検証ルール](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/Working-with-validation-rules.htm)を少なくとも1つ作成済みであること。
* APIキーを生成済みであること。詳細は、[Generating an API key](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-generate-api-keys.htm)をご覧ください。

### このタスクについて

ルールを取得するためには、次の項目が必要です。

* そのルールが保存されているスペースへのアクセス権。
* [Rules - View] (ルール - 表示)権限。

### 手順

1. [Property Type] (プロパティタイプ)と[Schema] (スキーマ)に[Built-in] (組み込み)を選択します。
2. 入力コンポーネントからスキーマを取得するためには、[Sync columns] (カラムを同期)ボタンをクリックします。
3. Qlik Talend Data IntegrationへのURLを入力します。たとえば、http://qcs.us.qlikcloud.com/となります。
4. APIキーを入力する場合は、[...]をクリックします。
5. ルールを取得する場合は、[Fetch rules] (ルールをフェッチ)をクリックします。[Rule library timestamp] (ルールライブラリーのタイムスタンプ)フィールドに入力されます。

   [Fetch rules] (ルールをフェッチ)をクリックすると、ルール定義が含まれているJARファイルが以下で作成されます:
   ```
   studio-path\configuration\.m2\repository\org\talend\libraries\rule-number
   ```

   Qlik Talend Data Integrationでルールをアップデートする時は、[Fetch rules] (ルールをフェッチ)をクリックして最新バージョンを取得します。
6. ルールを選択する場合は、[Rule name] (ルール名)の横にある[...]をクリックします。

   利用できるルールや入力カラムがない時は、次の点をご確認ください:
   * [Rule library timestamp] (ルールライブラリーのタイムスタンプ)でルールが取得されていること。
   * 入力スキーマが正しいこと
7. ルールを選択し、OKをクリックしてウィンドウを閉じます。選択できるルールは1つだけです。
8. [Refresh table] (テーブルを更新)をクリックします。
9. ルール変数を入力カラムに関連付けます。

   ![変数を関連付ける\[Configuration\] (設定)ウィンドウ。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/tdqrules-config-variables.png)

   Talend Studioのデータ型はQlik Talend Data Integrationのデータ型の一部に関連付けることができます。詳細は、Qlik Talend Data Integrationで利用できる[演算子](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/Working-with-validation-rules.htm#anchor-10)をご覧ください。

## tLogRowコンポーネントを設定

### 手順

1. tLogRowコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
2. [Schema] (スキーマ)で[Built-In] (組み込み)を選択し、[Sync columns] (カラムを同期)をクリックします。
3. [Mode] (モード)エリアで、[Table (print values in cells of a table)] (テーブル(テーブルのセルの出力値))を選択します。

   ![tLogRowコンポーネントの設定。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/tLogRow_BasicSettings.png)

## ジョブを保存して実行

### 手順

**F6**を押してジョブを保存し、実行します。

### タスクの結果

FlowリンクからのtLogRowは、血液型が利用可能であり、+または-で終わる、18歳から70歳までの献血者を返します。

```
|=-------+---------+---+-----+-----------+----------+---------+---------=|
|Name    |FirstName|Age|Giver|NbrDonation|BloodGroup|City     |PostalCode|
|=-------+---------+---+-----+-----------+----------+---------+---------=|
|Mendoza |Patricia |39 |true |44         |AB-       |Nantes   |44000     |
|Larsen  |Sheri    |37 |true |10         |B+        |Rennes   |35000     |
|Plisson |Joseph   |60 |true |5          |O-        |Perpignan|66000     |
|Clark   |Kirsten  |18 |true |0          |B+        |Angers   |49000     |
|Lapointe|Jason    |40 |true |2          |A+        |Paris    |75100     |
|Park    |Traci    |28 |true |28         |B-        |Nantes   |14000     |
```

Not\_ApplicableリンクからのtLogRowは、条件要件によってデータが検証できない献血者を返します。例: 血液型の末尾が+または-でない、あるいは献血者の年齢が低すぎるか高すぎる。

```
|=------+---------+---+-----+-----------+----------+---------+---------=|
|Name   |FirstName|Age|Giver|NbrDonation|BloodGroup|City     |PostalCode|
|=------+---------+---+-----+-----------+----------+---------+---------=|
|Doe    |John     |25 |true |44         |O         |Grenoble |68000     |
|Dupont |Megan    |95 |false|27         |O+        |Marseille|13000     |
|Oconnor|Emily    |16 |false|50         |A-        |Nice     |6000      |
```

RejectリンクからのtLogRowは、各条件を満たしているもののfalseとしてマークされており、本来なら献血者(true)としてマークされるべきである人を返します。

```
|=--------+---------+---+-----+-----------+----------+-----+----------+-----------------------------------------------------------------------------------------------------------------------------------------------=|
|Name     |FirstName|Age|Giver|NbrDonation|BloodGroup|City |PostalCode|INVALID_STATUS                                                                                                                                  |
|=--------+---------+---+-----+-----------+----------+-----+----------+-----------------------------------------------------------------------------------------------------------------------------------------------=|
|Rodriguez|Glenn    |55 |false|29         |B+        |Rouen|76000     |[{"FieldNames":["Name","FirstName","Age","Giver","NbrDonation","BloodGroup","City","PostalCode"],"ruleName":"BloodDonation","status":"INVALID"}]   
```