

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

 파일 고유성을 사용하면 데이터 생산자로부터 수신한 데이터에 중복 파일이 없는지 확인할 수 있습니다.

 다음 데이터 통계를 수집합니다.

1.  규칙에 따라 스캔된 파일 수 

1.  파일의 고유성 비율 

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

 **폴더에서 중복 파일 찾기:** 

```
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 이상에서 사용할 수 있습니다.

 이 태그는 파일 경로에 정규식 패턴을 적용하여 파일을 필터링합니다. 경로가 패턴과 일치하는 파일만 처리됩니다. 부정적 예측을 사용하여 패턴과 일치하는 파일을 제외할 수도 있습니다.

```
# 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 대화형 세션에서 작동하지 않습니다.