

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

 ファイルの一意性によって、データプロデューサーから受け取ったデータに重複したファイルがないことを確認できます。

 次のデータ統計を収集します。

1.  ルールでスキャンされたファイル数 

1.  ファイルの一意性の比率 

```
Dataset.*.FileUniquenessRatio: 1.00, Dataset.*.FileCount: 8.00
```

 **フォルダ内の重複ファイルを検索します:** 

```
FileUniqueness "s3://bucket/" > 0.5
FileUniqueness "s3://bucket/folder/" = 1
```

 **重複を検出するために、データフレームから直接フォルダ名を推測します:** 

 必ずしもファイルパスを指定する必要はありません。例えば、AWS Glue Data Catalog でルールを作成する場合、カタログテーブルが使用しているフォルダを見つけるのが難しい場合があります。 AWSGlue Data Quality は、データフレームへの入力に使用される特定のフォルダまたはファイルを見つけることができます。

**注記**  
 推論を使用する場合、ファイルベースのルールは DynamicFrame または DataFrame に正常に読み取られたファイルのみを検出できます。

```
FileUniqueness > 0.5
```

 **オプションのファイルベースのルールタグ:** 

 タグを使用すると、ルールの動作を制御できます。

 **recentFiles** 

 このタグは、最新のファイルを最初に保持することで、処理されるファイルの数を制限します。

```
FileUniqueness "s3://amzn-s3-demo-bucket/" > 0.5 with recentFiles = 1
```

 **uriRegex** 

**注記**  
 `uriRegex` タグは、AWS Glue 5.0 以降で有効です。

 このタグは、ファイルパスに正規表現パターンを適用してファイルをフィルタリングします。パスがパターンに一致するファイルのみが処理されます。負の先読みを使用して、パターンに一致するファイルを除外することもできます。

```
# Match only files with a .csv extension
FileUniqueness "s3://bucket/" > 0.5 with uriRegex = "\.csv$"
# Exclude files ending in .tmp using a negative lookahead
FileUniqueness "s3://bucket/" > 0.5 with uriRegex = "(?!.*\.tmp$).*"
```

 **filterOrder** 

**注記**  
 `filterOrder` タグは、AWS Glue 5.0 以降で有効です。

 `recentFiles` や `uriRegex` などの複数のフィルタータグを一緒に使用すると、それらが適用される順序が `filterOrder` タグにより制御されます。デフォルトの順序は最初が `recentFiles` で、次が `uriRegex` です。

```
FileUniqueness "s3://bucket/" > 0.5 with recentFiles = 5 with uriRegex = "\.csv$" with filterOrder = ["uriRegex","recentFiles"]
```

 **matchFileName** 

 このタグは、ファイルの名前が重複しないようにするものです。デフォルトの動作は false です。

```
FileUniqueness "s3://amzn-s3-demo-bucket/" > 0.5 with matchFileName = "true"
```

 考慮事項がいくつかあります: 

1.  AWS Glue ETL では、Amazon S3 または AWS Glue Data Catalog 変換の直後に **[EvaluateDataQuality]** 変換が必要です。

1.  このルールは AWS Glue インタラクティブセッションでは機能しません。