FileMatch - AWS Glue

FileMatch

Mit der FileMatch-Regel können Sie Dateien mit anderen Dateien oder Prüfsummen vergleichen. Dies kann in einigen Szenarien nützlich sein:

  1. Validierung von Dateien aus externen Quellen: Mit FileMatch können Sie durch einen Vergleich mit Prüfsummen sicherstellen, dass Sie die richtigen Dateien aus externen Quellen erhalten haben. Auf diese Weise können Sie die Integrität der Daten überprüfen, die Sie erfassen.

  2. Vergleichen von Daten in zwei verschiedenen Ordnern: Mit FileMatch können Sie Dateien zwischen zwei Ordnern vergleichen.

Diese Regel erfasst eine Metrik: die Anzahl der Dateien, die von der Regel gescannt wurden.

{"Dataset.*.FileCount":1}

Datei mit einer Prüfsumme validieren:

FileMatch akzeptiert eine Datei und festgelegte Prüfsummen, um sicherzustellen, dass mindestens eine Prüfsumme mit der Datei übereinstimmt.

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

Die folgenden Algorithmen werden unterstützt:

  • MD5

  • SHA-1

  • SHA-256

Wenn Sie keinen Algorithmus angeben, ist der Standard SHA-256.

Alle Dateien in einem Ordner mit einer Reihe von Prüfsummen validieren:

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

Dateien in verschiedenen Ordnern vergleichen

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

FileMatch überprüft den Inhalt der Dateien in original_bucket und stellt sicher, dass sie mit dem Inhalt von archive_bucket übereinstimmen. Bei einer nicht vollständigen Übereinstimmung schlägt die Regel fehl. Ebenso kann der Inhalt interner Ordner oder einzelner Dateien überprüft werden.

FileMatch kann außerdem einzelne Dateien miteinander vergleichen.

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

Ableiten von Dateinamen direkt aus Datenrahmen

Sie müssen nicht immer einen Dateipfad angeben. Wenn Sie beispielsweise die Regel im AWS-Glue-Datenkatalog (unterstützt von Amazon S3) erstellen, ist es möglicherweise schwierig, herauszufinden, welche Ordner die Katalogtabellen verwenden. AWS Glue Data Quality kann die spezifischen Ordner oder Dateien finden, die zum Füllen Ihres Datenrahmens verwendet werden.

Anmerkung

Dieses Feature funktioniert nur, wenn Dateien erfolgreich in den DynamicFrame oder DataFrame eingelesen wurden.

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

Wenn sich die angegebene Prüfsumme von der berechneten unterscheidet, weist FileMatch Sie auf den Unterschied hin.

Der Screenshot zeigt eine Regel mit dem DQ-Status „Regel fehlgeschlagen“. FileMatch erklärt den Fehler.

Optionale dateibasierte Regel-Tags:

Mithilfe von Tags können Sie das Verhalten der Regel steuern.

recentFiles

Dieses Tag begrenzt die Anzahl der verarbeiteten Dateien, indem die neueste Datei zuerst angezeigt wird.

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

matchFileName

Dieses Tag stellt sicher, dass Dateien keine doppelten Namen aufweisen. Das Standardverhalten lautet „false“.

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

Es gibt ein paar Überlegungen:

  1. In AWS Glue ETL muss die EvaluateDataQuality-Transformation unmittelbar nach einer Amazon-S3- oder AWS-Glue-Datenkatalog-Transformation kommen.

    Der Screenshot zeigt eine Regel mit dem DQ-Status „Regel fehlgeschlagen“. FileMatch erklärt den Fehler.
  2. Diese Regel funktioniert nicht in interaktiven AWS-Glue-Sitzungen.