Por que meu crawler do AWS Glue falha com uma exceção de serviço interno?
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
- Verifique se o caminho do Amazon S3 não contém caracteres especiais.
- Confirme se o perfil do IAM para o crawler tem permissões para acessar o caminho do Amazon S3. Para mais informações, consulte Criar um perfil do IAM para o AWS Glue.
- Remova caracteres ASCII especiais como ^,% e ~ dos seus dados sempre que possível. Ou use classificadores personalizados para classificar seus dados.
- Confirme se os objetos do S3 usam a classe de armazenamento STANDARD. Para restaurar objetos na classe de armazenamento STANDARD, consulte Restaurar um objeto arquivado.
- Confirme se os padrões de inclusão e exclusão na configuração do crawler correspondem aos caminhos do bucket do S3.
- Se você estiver rastreando um bucket do S3 criptografado, confirme se o perfil do IAM para o crawler tem as permissões apropriadas para a chave do AWS KMS. Para mais informações, consulte Trabalhar com configurações de segurança no console do AWS Glue e Configurar a criptografia no AWS Glue.
- Se estiver rastreando um bucket do S3 criptografado, certifique-se de que o bucket, a chave do AWS KMS e a tarefa do AWS Glue estejam na mesma região da AWS.
- Verifique a taxa de solicitação no bucket do S3 que você está rastreando. Se for alta, considere criar mais prefixos para paralelizar as leituras. Para obter mais informações, consulte Padrões de projeto com práticas recomendadas: otimização da performance do Amazon S3.
- Verifique se o comprimento do caminho do recurso do S3 seja inferior a 700 caracteres.
Problemas com o Amazon DynamoDB
- Verifique se a tabela tem unidades de capacidade de leitura suficientes.
- Certifique-se de que o perfil do IAM que você usa para executar o crawler tenha a permissão dynamodb:Scan. Para mais informações, consulte Referência de permissões da API do DynamoDB: ações, recursos e condições.
- Certifique-se de que o nome da tabela não inclua caracteres de espaço em branco.
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
Conteúdo relevante
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 3 anos