

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# FileMatch


 FileMatch Aturan ini memungkinkan Anda membandingkan file dengan file atau checksum lain. Ini dapat berguna dalam beberapa skenario: 

1.  Memvalidasi file yang diterima dari sumber eksternal: Anda dapat menggunakan FileMatch untuk memastikan bahwa Anda telah menerima file yang benar dari sumber eksternal dengan membandingkan dengan checksum. Ini membantu memvalidasi integritas data yang Anda konsumsi. 

1.  Membandingkan data dalam dua folder yang berbeda: FileMatch dapat digunakan untuk membandingkan file antara dua folder. 

 Aturan ini mengumpulkan satu metrik: jumlah file yang dipindai oleh aturan. 

```
{"Dataset.*.FileCount":1}
```

 **Validasi file dengan checksum:** 

 FileMatch menerima file dan set checksum untuk memastikan bahwa setidaknya satu checksum cocok dengan 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"]
```

 Algoritma standar berikut didukung: 
+ MD5
+ SHA-1
+ SHA-256

 Jika Anda tidak menyediakan algoritma, defaultnya adalah SHA-256. 

 **Validasi semua file dalam folder dengan set checksum:** 

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

 **Bandingkan file di folder yang berbeda** 

```
# 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 akan memeriksa isi file `original_bucket` dan memastikan mereka cocok dengan apa yang ada di dalamnya`archive_bucket`. Aturan akan gagal jika mereka tidak benar-benar cocok. Itu juga dapat memeriksa isi folder internal atau file individual. 

 FileMatch juga dapat memeriksa file individual terhadap satu sama lain. 

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

 **Menyimpulkan nama file langsung dari bingkai data** 

 Anda tidak selalu harus menyediakan jalur file. Misalnya, saat Anda membuat aturan di Katalog Data AWS Glue (didukung oleh Amazon S3), mungkin sulit untuk menemukan folder mana yang digunakan tabel katalog. AWS Glue Data Quality dapat menemukan folder atau file tertentu yang digunakan untuk mengisi bingkai data Anda. 

**catatan**  
 Fitur ini hanya akan berfungsi ketika file berhasil dibaca ke dalam DynamicFrame atau DataFrame. 

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

 Jika checksum yang disediakan berbeda dari yang dihitung, FileMatch akan mengingatkan Anda akan perbedaannya. 

![\[Tangkapan layar menunjukkan aturan dengan status DQ dari Aturan gagal. FileMatch menjelaskan kegagalan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-quality-file-match.png)


 **Tag Aturan Berbasis File Opsional:** 

 Tag memungkinkan Anda untuk mengontrol perilaku aturan. 

 **RecentFiles** 

 Tag ini membatasi jumlah file yang diproses dengan menyimpan file terbaru terlebih dahulu. 

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

 **UriRegex** 

**catatan**  
 `uriRegex`Tag tersedia di AWS Glue 5.0 dan yang lebih baru. 

 Tag ini memfilter file dengan menerapkan pola regex ke jalur file. Hanya file yang jalurnya cocok dengan pola yang diproses. Anda juga dapat menggunakan lookahead negatif untuk mengecualikan file yang cocok dengan pola. 

```
# 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$).*"
```

 **FilterOrder** 

**catatan**  
 `filterOrder`Tag tersedia di AWS Glue 5.0 dan yang lebih baru. 

 Bila Anda menggunakan beberapa tag filter seperti `recentFiles` dan `uriRegex` bersama-sama, `filterOrder` tag mengontrol urutan penerapannya. Urutan default adalah yang `recentFiles` pertama, lalu`uriRegex`. 

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

 **matchFileName** 

 Tag ini memastikan bahwa file tidak memiliki nama duplikat. Perilaku default adalah false. 

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

 Ada beberapa pertimbangan: 

1.  Di AWS Glue ETL, Anda harus memiliki **EvaluateDataQuality**Transform segera setelah transformasi Amazon S3 atau AWS Glue Data Catalog.   
![\[Tangkapan layar menunjukkan aturan dengan status DQ dari Aturan gagal. FileMatch menjelaskan kegagalan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-quality-file-match-transform.png)

1.  Aturan ini tidak akan berfungsi di AWS Glue Interactive Sessions. 