FileMatch - AWS Glue

FileMatch

La règle FileMatch vous permet de comparer des fichiers à d’autres fichiers ou à des totaux de contrôle. Elle peut être utile dans certains scénarios :

  1. Validation des fichiers reçus de sources externes : vous pouvez utiliser FileMatch pour vous assurer que vous avez reçu les bons fichiers provenant de sources externes en les comparant aux sommes de contrôle. Cela permet de valider l’intégrité des données que vous ingérez.

  2. Comparaison de données dans deux dossiers différents : FileMatch peut être utilisée pour comparer des fichiers entre deux dossiers.

Cette règle regroupe une métrique : le nombre de fichiers analysés par la règle.

{"Dataset.*.FileCount":1}

Valider le fichier avec une somme de contrôle :

FileMatch accepte un fichier et un ensemble de sommes de contrôle pour s’assurer qu’au moins une somme de contrôle correspond au fichier.

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"]

Les algorithmes standard suivants sont pris en charge :

  • MD5

  • SHA-1

  • SHA-256

Si vous ne fournissez aucun algorithme, la valeur par défaut est SHA-256.

Valider tous les fichiers d’un dossier avec un ensemble de sommes de contrôle :

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

Comparer des fichiers dans différents dossiers

FileMatch "s3://original_bucket/" "s3://archive_bucket/" FileMatch "s3://original_bucket/internal-folder/" "s3://original_bucket/other-folder/"

FileMatch vérifiera le contenu des fichiers dans original_bucket et s’assurera qu’ils correspondent à ce qui est contenu dans archive_bucket. La règle échouera s’ils ne correspondent pas exactement. Elle peut également vérifier le contenu de dossiers internes ou de fichiers individuels.

FileMatch peut également comparer des fichiers individuels les uns par rapport aux autres.

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

Déduction des noms de fichiers directement à partir de trames de données

Il n’est pas toujours nécessaire de fournir un chemin d’accès au fichier. Par exemple, lorsque vous créez la règle dans le Catalogue de données AWS Glue (soutenu par Amazon S3), il peut être difficile de trouver les dossiers utilisés par les tables du catalogue. La Qualité des données d’AWS Glue peut trouver les dossiers ou fichiers spécifiques utilisés pour renseigner votre trame de données.

Note

Cette fonctionnalité ne fonctionne que lorsque les fichiers sont correctement lus dans DynamicFrame ou DataFrame.

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

Si la somme de contrôle fournie est différente de celle calculée, FileMatch vous avertira de la différence.

La capture d’écran montre une règle dont l’état DQ est Échec de la règle. FileMatch explique l’échec.

Balises de règles facultatives basées sur des fichiers :

Les balises vous permettent de contrôler le comportement des règles.

recentFiles

Cette balise limite le nombre de fichiers traités en conservant le fichier le plus récent en premier.

FileMatch "s3://amzn-s3-demo-bucket/file.json" in ["3ee0d8617ac04179sam4713e5ef8f319"] with recentFiles = 1

matchFileName

Cette balise garantit que les fichiers ne comportent pas de noms en double. Le comportement par défaut est false.

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

Voici quelques considérations à prendre en compte :

  1. Dans AWS Glue ETL, vous devez disposer de la transformation EvaluateDataQuality immédiatement après une transformation Amazon S3 ou du Catalogue de données AWS Glue.

    La capture d’écran montre une règle dont l’état DQ est Échec de la règle. FileMatch explique l’échec.
  2. Cette règle ne fonctionnera pas dans AWS Glue Interactive Sessions.