

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

 La FileMatch regola consente di confrontare i file con altri file o checksum. Questo può essere utile in alcuni scenari: 

1.  Convalida dei file ricevuti da fonti esterne: è possibile eseguire il confronto con i checksum FileMatch per assicurarsi di aver ricevuto i file corretti da fonti esterne. Ciò contribuisce a verificare l'integrità dei dati che stai acquisendo. 

1.  Confronto dei dati in due cartelle diverse: FileMatch può essere utilizzato per confrontare i file tra due cartelle. 

 Questa regola include una metrica: il numero di file che sono stati scansionati dalla regola. 

```
Dataset.*.FileCount: 1
```

 **Convalidare i file con un checksum:** 

 FileMatch accetta un file e un set di checksum per garantire che almeno un checksum corrisponda al file. 

```
FileMatch "s3://amzn-s3-demo-bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "MD5"
FileMatch "s3://amzn-s3-demo-bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-1"
FileMatch "s3://amzn-s3-demo-bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-256"
FileMatch "s3://amzn-s3-demo-bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"]
```

 Sono supportati i seguenti algoritmi standard: 
+ MD5
+ SHA-1
+ SHA-256

 Se non fornisci un algoritmo, quello predefinito è SHA-256. 

 **Convalidare tutti i file in una cartella con un set di checksum:** 

```
FileMatch "s3://amzn-s3-demo-bucket /" in ["3ee0d8617ac041793154713e5ef8f319", "7e8617ac041793154713e5ef8f319"] with hashAlgorithm = "MD5"
FileMatch "s3://amzn-s3-demo-bucket /internal-folder/" in ["3ee0d8617ac041793154713e5ef8f319", "7e8617ac041793154713e5ef8f319"]
```

 **Confrontare i file in diverse cartelle** 

```
# Compare all files across two buckets
FileMatch "s3://original_bucket/" "s3://archive_bucket/"
# Compare files within specific subfolders
FileMatch "s3://original_bucket/internal-folder/" "s3://original_bucket/other-folder/"
# Compare only .json files across two folders
FileMatch "s3://original_bucket/" "s3://archive_bucket/" with uriRegex = "\.json$"
# Compare only the 5 most recent .csv files
FileMatch "s3://original_bucket/" "s3://archive_bucket/" with recentFiles = 5 with uriRegex = "\.csv$" with filterOrder = ["uriRegex","recentFiles"]
```

 FileMatch controllerà il contenuto dei file `original_bucket` e si assicurerà che corrispondano a ciò che c'è dentro. `archive_bucket` Se non corrispondono esattamente, la regola non verrà applicata. Può anche verificare il contenuto delle cartelle interne o dei singoli file. 

 FileMatch possono anche confrontare i singoli file l'uno con l'altro. 

```
FileMatch "s3://amzn-s3-demo-bucket /file_old.json" "s3://amzn-s3-demo-bucket /file_new.json"
```

 **Dedurre i nomi dei file direttamente dai data frame** 

 Non è sempre necessario fornire un percorso del file. Ad esempio, quando crei la regola nel AWS Glue Data Catalog (supportato da Amazon S3), potrebbe essere difficile trovare le cartelle utilizzate dalle tabelle del catalogo. AWS Glue Data Quality può trovare le cartelle o i file specifici utilizzati per popolare il tuo frame di dati. 

**Nota**  
 Questa funzione funziona solo quando i file vengono letti correttamente in sala operatoria DynamicFrame . DataFrame 

```
FileMatch in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "MD5"
FileMatch in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-1"
FileMatch in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-256"
FileMatch in ["3ee0d8617ac041793154713e5ef8f319"]
```

 Se il checksum fornito è diverso da quello calcolato, ti FileMatch avviserà della differenza. 

![\[La schermata mostra una regola con lo stato DQ di Rule failed. FileMatch spiega l'errore.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/data-quality-file-match.png)


 **Tag delle regole opzionali basati su file:** 

 I tag permettono di controllare il comportamento delle regole. 

 **recentFiles** 

 Questo tag limita il numero di file elaborati mantenendo il file più recente per primo. 

```
FileMatch "s3://bucket/" in ["3ee0d8617ac04179sam4713e5ef8f319"] with recentFiles = 1
```

 **uriRegex** 

**Nota**  
 Il `uriRegex` tag è disponibile in AWS Glue 5.0 e versioni successive. 

 Questo tag filtra i file applicando un pattern regex al percorso del file. Vengono elaborati solo i file i cui percorsi corrispondono al modello. Puoi anche usare un lookahead negativo per escludere i file che corrispondono a uno schema. 

```
# Match only files with a .json extension
FileMatch "s3://bucket/" in ["3ee0d8617ac04179sam4713e5ef8f319"] with uriRegex = "\.json$"
# Exclude files ending in .tmp using a negative lookahead
FileMatch "s3://bucket/" in ["3ee0d8617ac04179sam4713e5ef8f319"] with uriRegex = "(?!.*\.tmp$).*"
```

 **Ordinamento del filtro** 

**Nota**  
 Il `filterOrder` tag è disponibile in AWS Glue 5.0 e versioni successive. 

 Quando si utilizzano più tag di filtro, `recentFiles` `uriRegex` singolarmente e contemporaneamente, il `filterOrder` tag controlla l'ordine in cui vengono applicati. L'ordine predefinito è quindi il `recentFiles` primo`uriRegex`. 

```
FileMatch "s3://bucket/" in ["3ee0d8617ac04179sam4713e5ef8f319"] with recentFiles = 1 with uriRegex = "\.json$" with filterOrder = ["uriRegex","recentFiles"]
```

 **matchFileName** 

 Questo tag garantisce che i file non abbiano nomi duplicati. Il comportamento predefinito è false. 

```
FileMatch "s3://amzn-s3-demo-bucket/file.json" in ["3ee0d8617ac04179sam4713e5ef8f319"] with matchFileName = "true"
```

 Occorre tenere presente alcuni aspetti: 

1.  In AWS Glue ETL, è necessario disporre di **EvaluateDataQuality**Transform subito dopo una trasformazione di Amazon S3 o AWS Glue Data Catalog.   
![\[La schermata mostra una regola con lo stato DQ di Rule failed. FileMatch spiega l'errore.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/data-quality-file-match-transform.png)

1.  Questa regola non funzionerà nelle sessioni interattive di AWS Glue. 