Especificar o número máximo de tabelas que o crawler pode criar - AWS Glue

Especificar o número máximo de tabelas que o crawler pode criar

Opcionalmente, você pode especificar o número máximo de tabelas que o crawler pode criar especificando um TableThreshold por meio do console do AWS Glue ou a AWS CLI. Se as tabelas detectadas pelo crawler durante o rastreamento forem maiores que esse valor de entrada, o rastreamento falhará e nenhum dado será gravado no Data Catalog.

Esse parâmetro é útil quando as tabelas que seriam detectadas e criadas pelo crawler são muito maiores do que o esperado. Pode haver vários motivos para isso, por exemplo:

  • Ao usar um trabalho do AWS Glue para preencher seus locais do Amazon S3, você pode acabar com arquivos vazios no mesmo nível de uma pasta. Nesses casos, quando você executa um crawler nesse local do Amazon S3, o crawler cria várias tabelas devido a arquivos e pastas presentes no mesmo nível.

  • Se você não configurar "TableGroupingPolicy": "CombineCompatibleSchemas", pode acabar com mais tabelas do que o esperado.

Você especifica o TableThreshold como um valor inteiro maior que 0. Esse valor é configurado para cada crawler. Ou seja, esse valor é considerado para cada rastreamento. Por exemplo: um crawler tem o valor TableThreshold definido como 5. Em cada rastreamento, o AWS Glue vai comparar o número de tabelas detectadas com esse valor limite da tabela (5). Se o número de tabelas detectadas for menor que 5, o AWS Glue vai gravar as tabelas no Data Catalog. Caso contrário, o rastreamento falhará sem gravar no Data Catalog.

AWS Management Console
Para definir TableThreshold usando o AWS Management Console:
  1. Faça login no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

  2. Ao configurar um crawler, em Saída e programação, defina o Limite máximo da tabela para o número de tabelas que o crawler pode gerar.

    A seção Output and scheduling (Saída e agendamento) do console da AWS mostrando o parâmetro Maximum table threshold (Limite máximo da tabela).
AWS CLI

Para definir TableThreshold usando a AWS CLI:

aws glue update-crawler \ --name myCrawler \ --configuration '{"Version": 1.0, "CrawlerOutput": {"Tables": { "TableThreshold": 5 }}}'
API

Para definir TableThreshold usando a API:

"{"Version":1.0, "CrawlerOutput": {"Tables":{"AddOrUpdateBehavior":"MergeNewColumns", "TableThreshold":5}}}";

As mensagens de erro são registradas para ajudar você a identificar os caminhos da tabela e a limpar seus dados. Exemplo: faça login em sua conta se o crawler falhar porque a contagem da tabela foi maior do que o valor limite da tabela fornecido:

Table Threshold value = 28, Tables detected - 29

No CloudWatch, registramos em log todas as localizações de tabelas detectadas como uma mensagem INFO. Um erro é registrado como o motivo da falha.

ERROR com.amazonaws.services.glue.customerLogs.CustomerLogService - CustomerLogService received CustomerFacingException with message The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. Failing crawler without writing to Data Catalog. com.amazonaws.services.glue.exceptions.CustomerFacingInternalException: The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. Failing crawler without writing to Data Catalog.