FileFreshness
FileFreshness stellt sicher, dass Ihre Datendateien gemäß den von Ihnen festgelegten Bedingungen aktuell sind. Es verwendet das Datum der letzten Änderung Ihrer Dateien, um sicherzustellen, dass die Datendateien oder der gesamte Ordner auf dem neuesten Stand sind.
Diese Regel erfasst zwei Metriken:
-
FileFreshness-Compliance 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
Mit FileFreshness können Sie sicherstellen, dass Dateien zu bestimmten Zeiten angekommen 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 bewerten.
-
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 auf Zeitbasis 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 es die neueste Datei an erster Stelle behält.
FileFreshness "s3://amzn-s3-demo-bucket/" between (now() - 100 minutes) and (now() + 10 minutes) with recentFiles = 1
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 Data Catalog 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 des Datenrahmens verwendet werden, und erkennen, ob diese aktuell sind.
Anmerkung
Dieses Feature funktioniert nur, wenn Dateien erfolgreich in den DynamicFrame oder DataFrame eingelesen wurden.
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-Pfade oder Amazon-S3-basierte Tabellen in AWS Glue Data Catalog. Es gibt ein paar Überlegungen:
-
In AWS Glue ETL muss die EvaluateDataQuality-Transformation unmittelbar nach einer Amazon-S3- oder AWS-Glue-Data–Catalog-Transformation kommen.
-
Diese Regel funktioniert nicht in interaktiven AWS-Glue-Sitzungen.
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”.