Por que meu crawler do AWS Glue não está adicionando novas partições à tabela?

3 minuto de leitura
0

Meu crawler do AWS Glue não adiciona novas partições à tabela.

Descrição breve

Quando o crawler verifica os arquivos de dados de origem em uma nova partição, ele compara os seguintes atributos dos arquivos de origem com os da tabela existente:

  • Formato do arquivo
  • Tipo de compactação
  • Esquema
  • Estrutura das partições do Amazon Simple Storage Service (Amazon S3)

Se algum desses atributos da partição for diferente dos atributos da tabela, a partição será ignorada e não será adicionada aos metadados. Uma diferença no nome, na sequência ou no número de partições no caminho do Amazon S3 é considerada uma alteração no esquema ou na estrutura da partição.

Resolução

Solucionar o problema

Verifique os logs do crawler para identificar o problema:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Crawlers.
  3. Selecione o crawler e, em seguida, escolha o link Logs para visualizar os logs no console do CloudWatch.
  4. Examine os logs para verificar se o crawler ignorou a nova partição.

Por exemplo, suponha que o log inclua entradas parecidas com as seguintes:

Folder partition keys do not match table partition keys, skipped folder: doc-example-bucket/doc-example-path/doc-example-table/year=2021/month=01/sday=05/

Essa entrada sugere que a estrutura de partição para o local do Amazon S3 não corresponde às chaves de partição definidas para a tabela. Isso pode acontecer quando a estrutura da partição não é consistente em todo o local de origem da tabela.

Se o crawler do AWS Glue criar várias tabelas, as entradas de log serão semelhantes às seguintes:

INFO : Created table doc-example-table in database doxtest_db

Se você vir logs semelhantes, compare o esquema e a estrutura de partição da localização dessas tabelas com as da tabela original.

Resolver o problema

Com base nas informações dos logs do CloudWatch, considere uma ou mais das seguintes opções de solução:

  • Se o problema for causado por uma estrutura de partição inconsistente, torne a estrutura consistente renomeando o caminho do S3 manual ou programaticamente.
  • Se a partição for ignorada devido à incompatibilidade no formato de arquivo, formato de compactação ou esquema e se os dados não precisarem ser incluídos na tabela pretendida, considere o seguinte:
  • Use um padrão de exclusão para ignorar qualquer arquivo indesejado.
  • Mova o arquivo indesejado para um local diferente.
  • Se seus dados tiverem esquemas diferentes em alguns arquivos de entrada e esquemas semelhantes em outros arquivos de entrada, combine esquemas compatíveis ao criar o crawler. Na página Configurar a saída do crawler, em Comportamento de agrupamento para dados do S3 (opcional), selecione Criar um único esquema para cada caminho do S3. Quando essa configuração estiver ativada e os dados forem compatíveis, o crawler ignorará a semelhança de esquemas específicos ao avaliar objetos do S3 no caminho de inclusão especificado. Para mais informações, consulte Como criar um único esquema para cada caminho de inclusão do Amazon S3.
  • Se o crawler estiver criando várias tabelas, consulte Como posso evitar que o crawler do AWS Glue crie várias tabelas?

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos