O FileFreshness garante que os arquivos de dados estejam atualizados com base nas condições que você fornece. Ele usa a hora da última modificação dos arquivos para garantir que os arquivos de dados ou a pasta inteira esteja atualizada.
Essa regra reúne duas métricas:
-
Conformidade com o FileFreshness com base na regra que você configurou
-
O número de arquivos que foram verificados pela regra
{"Dataset.*.FileFreshness.Compliance":1,"Dataset.*.FileCount":1}
A detecção de anomalias não considera essas métricas.
Verificação da atualização do arquivo
A regra a seguir garante que o tickets.parquet tenha sido criado nas últimas 24 horas.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/tickets.parquet" > (now() - 24 hours)
Verificação da atualização da pasta
A regra a seguir será válida se todos os arquivos da pasta tiverem sido criados ou modificados nas últimas 24 horas.
FileFreshness "s3://bucket/" >= (now() -1 days)
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" >= (now() - 24 hours)
Verificação da atualização da pasta ou do arquivo com limite
A regra a seguir é válida se 10% dos arquivos da pasta “tiquetes” tiverem sido criados ou modificados nos últimos 10 dias.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" < (now() - 10 days) with threshold > 0.1
Verificação de arquivos ou pastas com datas específicas
Você pode verificar a atualização de arquivos em dias 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"
Verificação de arquivos ou pastas com hora
É possível usar FileFreshness para garantir que os arquivos chegaram com base em determinadas horas.
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"
Considerações importantes:
-
O FileFreshness pode avaliar arquivos usando unidades de dias, horas e minutos
-
Para horários, ele oferece suporte aos formatos AM/PM e de 24 horas
-
Os horários são calculados em UTC, a menos que algo diferente seja especificado
-
As datas são calculadas em UTC no horário 00:00
O FileFreshness baseado em hora funciona da seguinte forma:
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"
-
Primeiro, o horário "21h45" é combinado com a data de hoje no formato UTC para criar um campo de data e hora
-
Em seguida, a data e hora são convertidas para um fuso horário que você especificou
-
Finalmente, a regra é avaliada
Tags de regras opcionais baseadas em arquivos:
As tags permitem controlar o comportamento da regra.
recentFiles
Essa tag limita o número de arquivos processados ao manter primeiro o arquivo mais recente.
FileFreshness "s3://amzn-s3-demo-bucket/" between (now() - 100 minutes) and (now() + 10 minutes) with recentFiles = 1
timeZone
Substituições de fuso horário aceitas, consulte Fusos horários permitidos
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"
Dedução de nomes de arquivos diretamente de quadros de dados
Você nem sempre precisa fornecer um caminho de arquivo. Por exemplo, quando você está criando a regra no Catálogo de Dados do AWS Glue, pode ser difícil descobrir quais pastas as tabelas do catálogo estão usando. O AWS Glue Data Quality pode encontrar as pastas ou arquivos específicos usados para o preenchimento do quadro de dados e detectar se eles estão atualizados.
nota
Esse recurso só funcionará quando os arquivos forem lidos com sucesso no DynamicFrame ou no DataFrame.
FileFreshness > (now() - 24 hours)
Essa regra descobrirá o caminho da pasta ou os arquivos usados para preencher o quadro dinâmico ou o quadro de dados. Isso funciona para caminhos do Amazon S3 ou para tabelas do Catálogo de Dados do AWS Glue baseadas no Amazon S3. Existem algumas considerações:
-
No ETL do AWS Glue, você deve ter a transformação EvaluateDataQuality imediatamente após uma transformação do Amazon S3 ou do Catálogo de Dados do AWS Glue.
-
Essa regra não funcionará nas sessões interativas do AWS Glue.
Se você tentar isso em ambos os casos, ou quando o AWS Glue não conseguir encontrar os arquivos, o AWS Glue irá gerar o seguinte erro: “Unable to parse file path from DataFrame”