

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 中編寫規則時，可能很難找到目錄資料表正在使用的資料夾。 AWS Glue 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 和更新版本中使用。

 此標籤透過將 regex 模式套用至檔案路徑來篩選檔案。只會處理路徑符合模式的檔案。您也可以使用負 lookahead 來排除符合模式的檔案。

```
# 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 或 Glue Data Catalog 轉換後立即進行 **EvaluateDataQuality** AWS 轉換。

1.  此規則無法在 AWS Glue 互動式工作階段中運作。