Meu crawler do AWS Glue não adiciona novas partições à tabela.
Breve descrição
O AWS Glue considera uma diferença no nome, sequência ou número de partições no caminho do Amazon Simple Storage Service (Amazon S3) como uma alteração no esquema ou na estrutura da partição. Os crawlers verificam os arquivos de dados de origem em uma nova partição e comparam 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 S3
Se algum desses atributos de partição for diferente dos atributos da tabela, o AWS Glue ignorará a partição e não atualizará os metadados.
Resolução
Solucionar o problema
Para verificar os logs do crawler para identificar o problema, conclua as seguintes etapas:
- Abra o console do AWS Glue.
- No painel de navegação, escolha Crawlers.
- Selecione o crawler e, em seguida, escolha Logs para visualizar os logs no console do Amazon CloudWatch.
- 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. Essa diferença 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
Atualizar a estrutura da partição
Se o problema for causado por uma estrutura de partição inconsistente, renomeie manualmente ou programaticamente a estrutura para que fique consistente.
Excluir arquivos específicos
O AWS Glue pode ignorar uma partição por um dos seguintes motivos:
- Formatos de arquivo incompatíveis
- Formatos de compressão
- Problemas de esquema
Se o AWS Glue ignorar uma partição por um desses motivos e os dados não forem necessários na tabela, conclua uma das seguintes ações:
Combine esquemas compatíveis
Se seus dados tiverem esquemas semelhantes em arquivos de entrada diferentes, 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 você ativa essa configuração e os dados são compatíveis, o crawler ignora a semelhança de esquemas específicos para objetos do S3 no caminho especificado. Para obter mais informações, consulte Criação de um único esquema para cada caminho de inclusão do Amazon S3.
Evitar várias tabelas
Se o crawler estiver criando várias tabelas, consulte Como evito a criação de várias tabelas durante a execução de um crawler do AWS Glue?