FileMatch - AWS Glue

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

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.

  2. 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.

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 primouriRegex.

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 EvaluateDataQualityTransform 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.
  2. Questa regola non funzionerà nelle sessioni interattive di AWS Glue.