

# DatasetMatch
<a name="dqdl-rule-types-DatasetMatch"></a>

 プライマリデータセットのデータが参照データセットのデータと一致するかをチェックします。これら 2 つのデータセットは、入力されたキー列マッピングを使用して結合されます。これらの列のみでデータが等しいかを確認する場合は、追加の列マッピングを提供できます。**DataSetMatch** を操作するときは、結合キーは NULL ではなく一意でなければなりません (プライマリキーであること)。これらの条件を満たしていないと、「Provided key map not suitable for given data frames」というエラーメッセージが表示されます。一意の結合キーを使用できない場合は、**AggregateMatch** のような他のルール型を使用してサマリーデータで照合することを検討します。

**[Syntax]** (構文)

```
DatasetMatch <REFERENCE_DATASET_ALIAS> <JOIN CONDITION WITH MAPPING> <OPTIONAL_MATCH_COLUMN_MAPPINGS> <EXPRESSION>
```
+ **REFERENCE\$1DATASET\$1ALIAS** – プライマリデータセットのデータと比較する、参照データセットのエイリアス。
+ **KEY\$1COLUMN\$1MAPPINGS** – データセットのキーとなる列名のカンマ区切りリスト。列名が両方のデータセットで同一でない場合は、`->` で区切る必要があります。
+ **OPTIONAL\$1MATCH\$1COLUMN\$1MAPPINGS** – 特定の列のみでデータの一致を確認したい場合はこのパラメータを指定します。これは、キー列のマッピングと同じ構文を使用します。このパラメータを指定しないと、残りすべての列のデータと照合されます。残りの非キー列は、両方のデータセットで同じ名前を持っている必要があります。
+ **EXPRESSION** – ルールタイプの応答に対して実行し、論地値を生成するための式。詳細については、「[表現](dqdl.md#dqdl-syntax-rule-expressions)」を参照してください。

**例: ID 列を使用したセットデータセットの照合**

次のルール例では、[ID] 列を使用して 2 つのデータセットを結合し、プライマリデータセットの 90% 以上が参照データセットと一致していることを確認します。この場合、すべての列を比較します。

```
DatasetMatch "reference" "ID" >= 0.9
```

**例: 複数のキー列を使用したセットデータセットの照合**

次の例では、プライマリデータセットと参照データセットで、キー列の名前が異なります。`ID_1` と `ID_2` は、結合して、プライマリデータセットの複合キーを構成します。`ID_ref1` と `ID_ref2` は、結合して、参照データセットの複合キーを構成します。このシナリオでは、特殊な構文を使用して列名を指定できます。

```
DatasetMatch "reference" "ID_1->ID_ref1,ID_2->ID_ref2" >= 0.9
```

**例: 複数のキー列を使用してセットデータセットを照合し、特定の列が一致していることを確認する**

この例は、前述の例に基づいています。金額を含む列のみが一致しているかを、確認しようとしています。この列の名前は、プライマリデータセットでは `Amount1`、参照データセットでは `Amount2` です。これらを完全に一致させたいと思います。

```
DatasetMatch "reference" "ID_1->ID_ref1,ID_2->ID_ref2" "Amount1->Amount2" >= 0.9
```