FileFreshness
FileFreshness garantiza que sus archivos de datos estén actualizados en función de la condición que proporcione. Utiliza la hora de la última modificación de los archivos para garantizar que los archivos de datos o toda la carpeta estén actualizados.
Esta regla recopila dos métricas:
-
El cumplimiento de FileFreshness se basa en la regla que haya configurado
-
El número de archivos que ha analizado la regla
{"Dataset.*.FileFreshness.Compliance":1,"Dataset.*.FileCount":1}
La detección de anomalías no tiene en cuenta estas métricas.
Cómo comprobar si los archivos están actualizados
La siguiente regla garantiza que tickets.parquet se haya creado en las últimas 24 horas.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/tickets.parquet" > (now() - 24 hours)
Cómo comprobar si la carpeta está actualizada
La siguiente regla se aplica si todos los archivos de la carpeta se crearon o modificaron en las últimas 24 horas.
FileFreshness "s3://bucket/" >= (now() -1 days) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" >= (now() - 24 hours)
Cómo comprobar si una carpeta o un archivo está actualizado (con umbral)
La siguiente regla se aplica si el 10 % de los archivos de la carpeta “tickets” se crearon o modificaron en los últimos 10 días.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" < (now() - 10 days) with threshold > 0.1
Cómo comprobar archivos o carpetas con fechas específicas
Puede comprobar si los archivos se actualizaron en días específicos.
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"
Cómo comprobar archivos o carpetas con fechas y horas
Puede usar FileFreshness para asegurarse de que los archivos lleguen dentro de las horas previstas.
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"
Consideraciones clave:
-
FileFreshness puede evaluar los archivos utilizando unidades de días, horas y minutos
-
Es compatible con los formatos de tiempo AM/PM y 24 horas
-
Los horarios se calculan en UTC, a menos que se especifique una anulación
-
Las fechas se calculan en UTC a las 00:00 h
El análisis de FileFreshness basado en la fecha y la hora funciona de la siguiente manera:
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"
-
En primer lugar, la hora “21:45” se combina con la fecha de hoy en formato UTC para crear un campo de fecha y hora
-
A continuación, la fecha y la hora se convierten en la zona horaria que haya especificado
-
Por último, se evalúa la regla
Etiquetas de reglas opcionales basadas en archivos:
Las etiquetas permiten controlar el comportamiento de las reglas.
recentFiles
Esta etiqueta limita el número de archivos procesados dejando primero el archivo más reciente.
FileFreshness "s3://amzn-s3-demo-bucket/" between (now() - 100 minutes) and (now() + 10 minutes) with recentFiles = 1
timeZone
Indica las anulaciones de zonas horaria aceptadas; consulte 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"
Cómo inferir los nombres de los archivos directamente de los marcos de datos
No siempre tiene que proporcionar una ruta de archivo. Por ejemplo, al crear la regla en el catálogo de datos de AWS Glue, puede resultar difícil encontrar qué carpetas usan las tablas del catálogo. AWS Calidad de datos de Glue puede encontrar las carpetas o archivos específicos que se usan para rellenar su marco de datos y puede detectar si están actualizados.
nota
Esta característica solo funcionará cuando los archivos se lean correctamente en DynamicFrame o DataFrame.
FileFreshness > (now() - 24 hours)
Esta regla encontrará la ruta de la carpeta o los archivos que se usan para rellenar el marco dinámico o el marco de datos. Esto funciona para las rutas de Amazon S3 o las tablas de Catálogo de datos de AWS Glue basadas en Amazon S3. Existen algunas consideraciones:
-
En la ETL de AWS Glue, debe tener la transformación EvaluateDataQuality inmediatamente después de una transformación de Amazon S3 o del Catálogo de datos de AWS Glue.
-
Esta regla no funcionará en las sesiones interactivas de AWS Glue.
Si lo intenta en ambos casos, o si AWS Glue no encuentra los archivos, AWS Glue devolverá el siguiente error: “Unable to parse file path from DataFrame”