Acelerar crawls usando notificações de eventos do Amazon S3 - AWS Glue

Acelerar crawls usando notificações de eventos do Amazon S3

Em vez de listar os objetos de um destino do Amazon S3 ou do Data Catalog, você pode configurar o crawler para usar eventos do Amazon S3 para localizar quaisquer alterações. Esse recurso melhora o tempo de recrawl usando eventos do Amazon S3 para identificar as alterações entre dois crawls listando todos os arquivos da subpasta que disparou o evento em vez de listar o destino completo do Amazon S3 ou do Data Catalog.

O primeiro crawl lista todos os objetos do Amazon S3 do destino. Após o primeiro crawling bem-sucedido, você pode optar pelo recrawling manualmente ou em um cronograma definido. O crawler listará apenas os objetos desses eventos em vez de listar todos os objetos.

Quando o destino é uma tabela do Catálogo de dados, o crawler atualiza as tabelas existentes no Catálogo de dados com as alterações (por exemplo, partições extras em uma tabela).

As vantagens de migrar para um crawler baseado em eventos do Amazon S3 são:

  • Uma recuperação mais rápida, pois a listagem de todos os objetos do destino não é necessária, em vez disso, a listagem de pastas específicas é feita onde os objetos são adicionados ou excluídos.

  • Uma redução no custo geral de crawl à medida que a listagem de pastas específicas é feita onde os objetos são adicionados ou excluídos.

O crawl de eventos do Amazon S3 é executado consumindo eventos do Amazon S3 da fila SQS com base na programação do crawler. Não haverá custo se não houver eventos na fila. Os eventos do Amazon S3 podem ser configurados para ir diretamente para a fila SQS ou nos casos em que vários consumidores precisam do mesmo evento, uma combinação de SNS e SQS. Para obter mais informações, consulte Configurar sua conta para notificações de eventos do Amazon S3.

Depois de criar e configurar o crawler no modo de evento, o primeiro crawl é executado no modo de listagem fazendo uma listagem completa do destino do Amazon S3 ou do Data Catalog. O log a seguir confirma a operação do crawl consumindo eventos do Amazon S3 após o primeiro crawl bem-sucedido: "The crawl is running by consuming Amazon S3 events." (O crawl está sendo executado consumindo eventos do Amazon S3).

Depois de criar o crawl de eventos do Amazon S3 e atualizar as propriedades do crawler que podem afetar o crawl, o crawl opera no modo de lista e o seguinte log é adicionado: "Crawl is not running in S3 event mode" (O crawl não está sendo executado no modo de evento S3).

nota

O número máximo de mensagens a serem consumidas é 100 mil mensagens por operação de crawl.

Considerações e limitações

As considerações e limitações apresentadas a seguir se aplicam ao configurar um crawler para usar notificações de eventos do Amazon S3 na descoberta de alterações.

  • Aspectos relevantes do comportamento ao lidar com partições excluídas

    Ao usar crawlers de eventos do Amazon S3 com as tabelas do Catálogo de Dados:

    • Se você excluir uma partição usando a chamada de API DeletePartition, também deverá excluir todos os objetos do S3 contidos nessa partição e selecionar a opção Todos os eventos de remoção de objetos ao configurar as notificações de eventos do S3. Se os eventos de exclusão não estiverem configurados, o crawler recriará a partição excluída na próxima execução.

  • O crawler só é compatível com um único destino, tanto para destinos do Amazon S3 quanto do Data Catalog.

  • Não há suporte para SQS na VPC privada.

  • Não há suporte para amostragem do Amazon S3.

  • O destino do crawler deve ser uma pasta para um destino do Amazon S3 ou uma ou mais tabelas do AWS Glue Data Catalog para um destino do Data Catalog.

  • Não há suporte para o curinga de caminho ‘everything’ (tudo): s3: //%

  • Para um destino do Data Catalog, todas as tabelas de catálogo devem apontar para o mesmo bucket do Amazon S3 para o modo de evento do Amazon S3.

  • Para um destino do Data Catalog, uma tabela de catálogo não deve apontar para uma localização no Amazon S3 no formato Delta Lake (contendo pastas _symlink ou conferindo o InputFormat da tabela do catálogo).

Configurar sua conta para notificações de eventos do Amazon S3

Complete as tarefas de configuração a seguir. Observe que os valores entre parênteses fazem referência às definições configuráveis do script.

  1. É necessário configurar notificações de eventos para seu bucket do Amazon S3.

    Para obter mais informações, consulte Notificações de eventos do Amazon S3.

  2. Para usar o crawler baseado em eventos do Amazon S3, você deve habilitar a notificação de eventos no bucket do Amazon S3 com eventos filtrados do prefixo que é o mesmo que o destino do S3 e armazenado no SQS. Você pode configurar o SQS e a notificação de eventos por meio do console seguindo as etapas em Passo a passo: configuração de um bucket para notificações.

  3. Adicione a política de SQS a seguir à função usada pelo crawler.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ListDeadLetterSourceQueues", "sqs:ReceiveMessage", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:SetQueueAttributes", "sqs:PurgeQueue" ], "Resource": "arn:aws:sqs:{region}:{accountID}:cfn-sqs-queue" } ] }