Por que meu crawler do AWS Glue falha com uma exceção de serviço interno?

8 minuto de leitura
0

Meu crawler do AWS Glue falha com o erro “ERRO: Exceção de serviço interno”.

Resolução

Exceções de serviços internos do crawler podem ser causadas por problemas transitórios. Antes de começar a solucionar problemas, execute o crawler novamente. Se você ainda tiver uma exceção de serviço interno, verifique os seguintes problemas comuns.

Problemas de dados

Se o seu crawler do AWS Glue estiver configurado para processar uma grande quantidade de dados, ele poderá enfrentar uma exceção de serviço interno. Analise as causas dos problemas de dados para remediar:

  • Se você tiver um grande número de arquivos pequenos, o crawler poderá falhar com uma exceção de serviço interno. Para evitar esse problema, use a ferramenta S3DistCp para combinar arquivos menores. Há cobranças adicionais do Amazon EMR ao usar S3DistCp. Ou, você pode definir padrões de exclusão e rastrear os arquivos de forma iterativa. Por fim, considere ativar a amostragem para evitar a verificação de todos os arquivos dentro de um prefixo.
  • Se o crawler estiver se aproximando do valor do tempo limite de 24 horas, divida o fluxo de trabalho para evitar problemas de memória. Para mais informações, consulte Por que o crawler do AWS Glue está funcionando por muito tempo?

Observação: a melhor maneira de resolver problemas de escala de dados é reduzir a quantidade de dados processados.

Estrutura inconsistente de pastas do Amazon Simple Storage Service (Amazon S3)

Com o tempo, seu crawler do AWS Glue encontra seus dados em um formato específico. No entanto, inconsistências em aplicações upstream podem desencadear um erro interno de exceção de serviço.

Pode haver inconsistência entre uma definição de partição de tabela no Catálogo de dados e uma estrutura de partição do Hive no Amazon S3. Diferenças como essa podem causar problemas para o seu crawler. Por exemplo, o crawler pode esperar que os objetos sejam particionados como “s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/dd=xx/[files]”. Porém, suponha que alguns dos objetos se enquadrem em “s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/[files]” em vez disso. Quando isso acontece, o crawler falha e o erro interno de exceção do serviço é gerado.

Se você modificar um local de dados previamente rastreado, poderá ocorrer um erro interno de exceção de serviço com um rastreamento incremental. Isso acontece porque uma dessas condições é atendida:

  • Um local do Amazon S3 que é conhecido por estar vazio é atualizado com arquivos de dados
  • Os arquivos são removidos de um local do Amazon S3 que é conhecido por ser preenchido com arquivos de dados

Se você fizer alterações na estrutura de prefixos do Amazon S3, essa exceção será acionada.

Se você acha que houve alterações no seu datastore do S3, é uma prática recomendada excluir o crawler atual. Depois de excluir o crawler atual, crie um novo crawler no mesmo destino do S3 usando a opção Rastrear todas as pastas.

Problemas com o AWS Key Management Service (AWS KMS)

Se o seu datastore estiver configurado com a criptografia do AWS KMS, verifique o seguinte:

  • Confirme se o perfil do AWS Identity and Access Management (IAM) do seu crawler tem as permissões necessárias para acessar a chave do AWS KMS.
  • Confirme se sua política de chaves do AWS KMS está delegando permissões adequadamente.
  • Confirme se a chave do AWS KMS ainda existe e está no status Disponível. Se a chave do AWS KMS estiver pendente de exclusão, a exceção do serviço interno será acionada.

Para mais informações, consulte Trabalhar com configurações de segurança no console do AWS Glue e Configurar a criptografia no AWS Glue.

Problemas com o AWS Glue Data Catalog

Se seu catálogo de dados tiver um grande número de colunas ou estruturas aninhadas, o tamanho do esquema poderá exceder o limite de 400 KB. Para tratar das exceções relacionadas ao Catálogo de Dados, verifique o seguinte:

  • Certifique-se de que o tamanho do nome da coluna não exceda 255 caracteres e não contenha caracteres especiais. Para mais informações sobre os requisitos da coluna, consulte Coluna.
  • Verifique se há colunas com comprimento de 0. Isso pode ocorrer se as colunas nos dados de origem não corresponderem ao formato de dados da tabela do Catálogo de Dados.
  • Na definição do esquema da sua tabela, certifique-se de que o valor do Tipo de cada uma das suas colunas não exceda 131.072 bytes. Se esse limite for ultrapassado, seu crawler poderá enfrentar uma exceção de serviço interno. Para mais informações, consulte Estrutura de colunas.
  • Verifique se há dados malformados. Por exemplo, se o nome da coluna não estiver de acordo com o padrão de expressão regular "[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]", o crawler não funcionará.
  • Se seus dados contiverem colunas DECIMAL no formato (precisão, escala), confirme se o valor da escala é menor ou igual ao valor de precisão.
  • Seu crawler pode falhar com uma mensagem de erro “Não foi possível criar a tabela no catálogo” ou “O tamanho da carga útil da solicitação excedeu o limite”. Quando isso acontecer, monitore o tamanho da definição do esquema da tabela. Não há limitação no número de colunas que uma tabela no Catálogo de Dados pode ter. Porém, há um limite de 400 KB no tamanho total do esquema. Um grande número de colunas contribui para que o tamanho total do esquema exceda o limite de 400 KB. As possíveis soluções alternativas incluem dividir o esquema em várias tabelas e remover as colunas desnecessárias. Você também pode considerar diminuir o tamanho dos metadados reduzindo os nomes das colunas.

Problemas com o Amazon S3

Problemas com o Amazon DynamoDB

Problemas com o JDBC

  • Se você estiver rastreando uma fonte de dados JDBC criptografada com o AWS KMS, verifique a sub-rede que você está usando para a conexão. A tabela de rotas da sub-rede deve ter uma rota para o endpoint do AWS KMS. Essa rota pode passar por um endpoint de nuvem privada virtual (VPC) compatível com o AWS KMS ou por um gateway NAT.
  • Verifique se você está usando a sintaxe correta do Caminho de inclusão. Para mais informações, consulte Definir crawlers.
  • Se você estiver rastreando um datastore JDBC, confirme se a conexão SSL está definida corretamente. Se você não estiver usando uma conexão SSL, certifique-se de que a opção Exigir conexão SSL não esteja selecionada ao configurar o crawler.
  • Confirme se o nome do banco de dados na conexão do AWS Glue corresponde ao nome do banco de dados no Caminho de inclusão do crawler. Além disso, certifique-se de inserir o Caminho de inclusão. Para mais informações, consulte Padrões de exclusão e inclusão.
  • Certifique-se de que a sub-rede que você está usando esteja em uma zona de disponibilidade compatível com o AWS Glue.
  • Certifique-se de que a sub-rede que você está usando tenha endereços IP privados suficientes disponíveis.
  • Confirme se a fonte de dados JDBC é compatível com o driver JDBC integrado do AWS Glue.

Problemas com o AWS KMS ao usar um endpoint de VPC

  • Se você estiver usando o AWS KMS, o crawler do AWS Glue deverá ter acesso ao AWS KMS. Para conceder acesso, selecione a opção Habilitar nome DNS privado ao criar o endpoint do AWS KMS. Em seguida, adicione o endpoint do AWS KMS à configuração da sub-rede VPC para a conexão do AWS Glue. Para mais informações, consulte Conectar-se ao AWS KMS por meio de um endpoint de VPC.

Informações relacionadas

Trabalhar com crawleres no console do AWS Glue

Criptografar dados gravados por crawlers, trabalhos e endpoints de desenvolvimento

AWS OFICIAL
AWS OFICIALAtualizada há um ano