FileUniqueness - AWS Glue

FileUniqueness

O FileUniqueness permite que você garanta que não haja arquivos duplicados nos dados que você recebeu dos produtores de dados.

A regra reúne as seguintes estatísticas de dados:

  1. O número de arquivos que foram verificados pela regra

  2. A taxa de exclusividade dos arquivos

Dataset.*.FileUniquenessRatio: 1.00, Dataset.*.FileCount: 8.00

Encontrar arquivos duplicados em uma pasta:

FileUniqueness "s3://bucket/" > 0.5 FileUniqueness "s3://bucket/folder/" = 1

Inferir nomes de pastas diretamente dos quadros de dados para detectar duplicatas:

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.

nota

Quando a inferência é usada, as regras baseadas em arquivos só podem detectar arquivos lidos com sucesso no DynamicFrame ou no DataFrame.

FileUniqueness > 0.5

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.

FileUniqueness "s3://amzn-s3-demo-bucket/" > 0.5 with recentFiles = 1

uriRegex

nota

A tag uriRegex está disponível no AWS Glue 5.0 e em versões posteriores.

Essa tag filtra os arquivos aplicando um padrão regex ao caminho do arquivo. Somente são processados os arquivos cujos caminhos correspondam ao padrão. Você também pode usar um lookahead negativo para excluir os arquivos que correspondam a um padrão.

# Match only files with a .csv extension FileUniqueness "s3://bucket/" > 0.5 with uriRegex = "\.csv$" # Exclude files ending in .tmp using a negative lookahead FileUniqueness "s3://bucket/" > 0.5 with uriRegex = "(?!.*\.tmp$).*"

filterOrder

nota

A tag filterOrder está disponível no AWS Glue 5.0 e em versões posteriores.

Quando você usa várias tags de filtro juntas, como recentFiles e uriRegex, a tag filterOrder controla a ordem na qual elas são aplicadas. A ordem padronizada é primeiro recentFiles e depois uriRegex.

FileUniqueness "s3://bucket/" > 0.5 with recentFiles = 5 with uriRegex = "\.csv$" with filterOrder = ["uriRegex","recentFiles"]

matchFileName

Essa tag garante que os arquivos não tenham nomes duplicados. O comportamento padrão é falso.

FileUniqueness "s3://amzn-s3-demo-bucket/" > 0.5 with matchFileName = "true"

Existem algumas considerações:

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

  2. Essa regra não funcionará nas sessões interativas do AWS Glue.