FileFreshness - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

FileFreshness

FileFreshness stellt sicher, dass Ihre Datendateien auf der Grundlage der von Ihnen angegebenen Bedingungen aktuell sind. Es verwendet den Zeitpunkt der letzten Änderung Ihrer Dateien, um sicherzustellen, dass die Datendateien oder der gesamte Ordner korrekt sind up-to-date.

Diese Regel erfasst zwei Metriken:

  • FileFreshness Einhaltung der Vorschriften auf der Grundlage der von Ihnen eingerichteten Regel

  • Die Anzahl der Dateien, die von der Regel gescannt wurden

{"Dataset.*.FileFreshness.Compliance":1,"Dataset.*.FileCount":1}

Die Anomalieerkennung berücksichtigt diese Metriken nicht.

Überprüfen der Aktualität von Dateien

Die folgende Regel stellt sicher, dass tickets.parquet innerhalb der letzten 24 Stunden erstellt wurde.

FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/tickets.parquet" > (now() - 24 hours)

Überprüfen der Aktualität von Ordnern

Die folgende Regel gilt, wenn alle Dateien im Ordner innerhalb der letzten 24 Stunden erstellt oder geändert wurden.

FileFreshness "s3://bucket/" >= (now() -1 days) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" >= (now() - 24 hours)

Überprüfen der Aktualität von Ordnern oder Dateien anhand eines Schwellenwerts

Die folgende Regel gilt, wenn 10 % der Dateien im Ordner „Tickets“ in den letzten 10 Tagen erstellt oder geändert wurden.

FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" < (now() - 10 days) with threshold > 0.1

Überprüfen von Dateien oder Ordnern mit bestimmten Daten

Sie können die Aktualität von Dateien für bestimmte Tage überprüfen.

FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "2020-01-01" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "2023-01-01" and "2024-01-01"

Überprüfen von Dateien oder Ordnern mit Zeitpunkten

Sie können FileFreshness damit sicherstellen, dass Dateien zu bestimmten Zeiten eingetroffen sind.

FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between now() and (now() - 45 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "9:30 AM" and "9:30 PM" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > (now() - 10 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > now() FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between (now() - 2 hours) and (now() + 15 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between (now() - 3 days) and (now() + 15 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "2001-02-07" and (now() + 15 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "2024-01-01" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "02:30" and "04:30" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "9:30 AM" and "22:15"

Wesentliche Überlegungen:

  • FileFreshness kann Dateien anhand von Tagen, Stunden und Minuten auswerten

  • AM/PM und 24-Stunden-System werden unterstützt.

  • Die Zeiten werden in UTC berechnet, sofern keine Überschreibung angegeben ist.

  • Datumsangaben werden in UTC zur Uhrzeit 00:00 berechnet.

FileFreshness das ist zeitbasiert und funktioniert wie folgt:

FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"
  • Zunächst wird die Uhrzeit „21:45“ mit dem heutigen Datum im UTC-Format kombiniert, um ein Datums-/Zeitfeld zu erstellen.

  • Als Nächstes wird das Datum und die Uhrzeit in die von Ihnen angegebene Zeitzone umgewandelt.

  • Schließlich wird die Regel ausgewertet.

Optionale dateibasierte Regel-Tags:

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

FileFreshness "s3://amzn-s3-demo-bucket/" between (now() - 100 minutes) and (now() + 10 minutes) with recentFiles = 1

uriRegex

Anmerkung

Das uriRegex Tag ist in AWS Glue 5.0 und höher verfügbar.

Dieses Tag filtert Dateien, indem es ein Regex-Muster auf den Dateipfad anwendet. Es werden nur Dateien verarbeitet, deren Pfade dem Muster entsprechen. Sie können auch einen negativen Lookahead verwenden, um Dateien auszuschließen, die einem Muster entsprechen.

# Match only files with a .csv extension FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with uriRegex = "\.csv$" # Match Parquet files that contain "orders_" in the path FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with uriRegex = ".*orders_.*\.parquet" # Exclude files ending in .tmp using a negative lookahead FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with uriRegex = "(?!.*\.tmp$).*"

Reihenfolge filtern

Anmerkung

Das filterOrder Tag ist in AWS Glue 5.0 und höher verfügbar.

Wenn Sie mehrere Filter-Tags wie recentFiles und uriRegex zusammen verwenden, steuert das filterOrder Tag die Reihenfolge, in der sie angewendet werden. Die Standardreihenfolge ist recentFiles zuerst, dannuriRegex.

FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with recentFiles = 1 with uriRegex = "inventory_" with filterOrder = ["uriRegex","recentFiles"]

Im obigen Beispiel wird der uriRegex Filter zuerst angewendet, um nur Dateien auszuwählen, die mit „inventory_“ übereinstimmen, und recentFiles = 1 nimmt dann die neueste Datei aus diesem gefilterten Satz. filterOrderAndernfalls würde das Standardverhalten zuerst die neueste Datei verwenden und dann den regulären Ausdruck anwenden. Dies könnte dazu führen, dass keine Dateien übereinstimmen, wenn die neueste Datei nicht dem Muster entspricht.

Anmerkung

Alle Werte in der filterOrder Liste müssen auf andere Filter-Tags (recentFilesoderuriRegex) verweisen, die ebenfalls in derselben Regel vorhanden sind. Nichtfilter-Tags wie timeZone oder failFast sind nicht gültig infilterOrder.

FailFast

Wenn diese Option auf gesetzt ist"true", gibt die Regel bei der ersten Datei, die die Aktualisierungsbedingung nicht erfüllt, sofort einen Fehler zurück, anstatt alle Dateien zu bewerten und eine Konformitätsquote zu berechnen.

FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with failFast = "true"

timeZone

Akzeptierte Zeitzonenüberschreibungen. Unterstützte Zeitzonen finden Sie unter Zulässige Zeitzonen.

FileFreshness "s3://path/" > "21:45" with timeZone = "America/New_York"
FileFreshness "s3://path/" > "21:45" with timeZone = "America/Chicago"
FileFreshness "s3://path/" > "21:45" with timeZone = "Europe/Paris"
FileFreshness "s3://path/" > "21:45" with timeZone = "Asia/Shanghai"
FileFreshness "s3://path/" > "21:45" with timeZone = "Australia/Darwin"

Direktes Ableiten von Dateinamen aus Datenrahmen

Sie müssen nicht immer einen Dateipfad angeben. Wenn Sie beispielsweise die Regel im AWS Glue-Datenkatalog erstellen, kann es schwierig sein, herauszufinden, welche Ordner die Katalogtabellen verwenden. AWS Glue Data Quality kann die spezifischen Ordner oder Dateien finden, die zum Auffüllen Ihres Datenrahmens verwendet wurden, und erkennt, ob sie aktuell sind.

Anmerkung

Diese Funktion funktioniert nur, wenn Dateien erfolgreich in das Feld oder eingelesen wurden. DynamicFrame DataFrame

FileFreshness > (now() - 24 hours)

Diese Regel findet den Ordnerpfad oder die Dateien, die zum Füllen des dynamischen Rahmens oder Datenrahmens verwendet werden. Dies funktioniert für Amazon S3 S3-Pfade oder Amazon S3-basierte AWS Glue Data Catalog-Tabellen. Es gibt ein paar Überlegungen:

  1. In AWS Glue ETL müssen Sie die EvaluateDataQualityTransformation unmittelbar nach einer Amazon S3- oder AWS Glue Data Catalog-Transformation haben.

    Der Screenshot zeigt einen Knoten „Evaluate Data Quality“, der mit einem Amazon-S3-Knoten verbunden ist.
  2. Diese Regel funktioniert nicht in AWS Glue Interactive Sessions.

Wenn Sie dies in beiden Fällen versuchen oder wenn AWS Glue die Dateien nicht finden kann, gibt AWS Glue den folgenden Fehler aus: “Unable to parse file path from DataFrame”