FileFreshness
La règle FileFreshness garantit que vos fichiers de données sont à jour en fonction de la condition que vous fournissez. Elle utilise l’heure de dernière modification de vos fichiers pour garantir que les fichiers de données ou l’ensemble du dossier sont à jour.
Cette règle regroupe deux métriques :
-
Conformité à FileFreshness en fonction de la règle que vous avez définie
-
Nombre de fichiers analysés par la règle.
{"Dataset.*.FileFreshness.Compliance":1,"Dataset.*.FileCount":1}
La détection des anomalies ne prend pas en compte ces métriques.
Vérification de l’actualité des fichiers
La règle suivante garantit que tickets.parquet a été créé au cours des dernières 24 heures.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/tickets.parquet" > (now() - 24 hours)
Vérification de l’actualité du dossier
La règle suivante s’applique si tous les fichiers du dossier ont été créés ou modifiés au cours des dernières 24 heures.
FileFreshness "s3://bucket/" >= (now() -1 days) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" >= (now() - 24 hours)
Vérification de l’actualité d’un dossier ou d’un fichier avec un seuil
La règle suivante s’applique si 10 % des fichiers du dossier « tickets » ont été créés ou modifiés au cours des 10 derniers jours.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" < (now() - 10 days) with threshold > 0.1
Vérification de fichiers ou de dossiers avec des dates spécifiques
Vous pouvez vérifier l’actualité des fichiers pour des jours spécifiques.
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"
Vérification de fichiers ou de dossiers avec l’heure
Vous pouvez utiliser FileFreshness pour vous assurer que les fichiers sont arrivés à certaines heures.
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"
Considérations clés :
-
FileFreshness peut évaluer les fichiers en utilisant des unités de jours, d’heures et de minutes.
-
Parfois, elle prend en charge le format matins/après-midi et 24 heures
-
Les heures sont calculées en UTC, sauf si une dérogation est spécifiée.
-
Les dates sont calculées en UTC à 00:00.
Les valeurs FileFreshness basées sur le temps fonctionnent comme suit :
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"
-
Tout d’abord, l’heure « 21:45 » est combinée à la date du jour au format UTC pour créer un champ date-heure.
-
Ensuite, le champ date-heure est converti en un fuseau horaire que vous avez spécifié.
-
Enfin, la règle est évaluée.
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.
FileFreshness "s3://amzn-s3-demo-bucket/" between (now() - 100 minutes) and (now() + 10 minutes) with recentFiles = 1
timeZone
Dérogations de fuseau horaire acceptées, consultez Allowed Time Zones
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"
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, il peut être difficile de trouver les dossiers utilisés par les tables du catalogue. La Qualité des données d’AWS La Qualité des données de Glue peut trouver les dossiers ou fichiers spécifiques utilisés pour remplir votre trame de données et détecter s’ils sont récents.
Note
Cette fonctionnalité ne fonctionne que lorsque les fichiers sont correctement lus dans DynamicFrame ou DataFrame.
FileFreshness > (now() - 24 hours)
Cette règle permet de trouver le chemin d’accès au dossier ou aux fichiers utilisés pour renseigner l’image dynamique ou la trame de données. Cela fonctionne pour les chemins Amazon S3 ou les tables du Catalogue de données AWS basées sur Amazon S3. Voici quelques considérations à prendre en compte :
-
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.
-
Cette règle ne fonctionnera pas dans AWS Glue Interactive Sessions.
Si vous essayez de le faire dans les deux cas, ou lorsque AWS Glue ne trouve pas les fichiers, AWS Glue générera le message d’erreur suivant : “Unable to parse file path from DataFrame”.