Accélération des analyseurs à l'aide des notifications d'événements Amazon S3 - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accélération des analyseurs à l'aide des notifications d'événements Amazon S3

Au lieu de répertorier les objets d'une cible Amazon S3 ou de Catalogue de données, vous pouvez configurer le Crawler pour qu'il utilise les événements Amazon S3 pour trouver les modifications éventuelles. Cette fonction améliore le temps de nouvelle analyse en utilisant les événements Amazon S3 pour identifier les changements entre deux analyses. Ce processus s'effectue en répertoriant tous les fichiers du sous-dossier qui a déclenché l'événement au lieu de répertorier la cible Amazon S3 ou du Catalogue de données complète.

La première analyse répertorie tous les objets Amazon S3 de la cible. Après la première analyse réussie, vous pouvez choisir de faire une nouvelle analyse manuellement ou selon un calendrier défini. L'crawler indiquera uniquement les objets de ces événements au lieu de répertorier tous les objets.

Lorsque la cible est une table du catalogue de données, le robot met à jour les tables existantes du catalogue de données avec les modifications (par exemple, des partitions supplémentaires dans une table).

Passer à un crawler basé sur les événements Amazon S3 a les avantages suivants :

  • Une nouvelle analyse plus rapide, car la liste de tous les objets de la cible n'est pas nécessaire ; toutefois, la liste de dossiers spécifiques est effectuée là où des objets sont ajoutés ou supprimés.

  • Une réduction du coût global d'analyse étant donné que la liste de dossiers spécifiques est effectuée lorsque des objets sont ajoutés ou supprimés.

L'analyse des événements Amazon S3 s'exécute en consommant des événements Amazon S3 depuis la file d'attente SQS en fonction de la planification de l'crawler. Il n'y aura aucun coût s'il n'y a pas d'événements dans la file d'attente. Les événements Amazon S3 peuvent être configurés pour accéder directement à la file d'attente SQS ou, dans les cas où plusieurs consommateurs ont besoin du même événement, une combinaison de SNS et de SQS. Pour de plus amples informations, veuillez consulter Configuration de votre compte pour les notifications d'événements Amazon S3.

Après avoir créé et configuré le Crawler en mode événement, la première analyse s'exécute en mode de liste en répertoriant la liste de la cible Amazon S3 ou du Catalogue de données complète. Le journal suivant confirme l'opération de l'analyse en consommant des événements Amazon S3 après la première analyse réussie : « L'analyse est exécutée en consommant des événements Amazon S3. »

Après avoir créé l'analyse des événements Amazon S3 et mis à jour les propriétés de l'crawler susceptibles d'avoir un impact sur l'analyse, l'analyse fonctionne en mode liste et le journal suivant est ajouté : « L'analyse n'est pas exécutée en mode événement S3 ».

Note

Le nombre maximum de messages à consommer est de 100 000 messages par crawl.

Considérations et restrictions

Les considérations et limitations suivantes s'appliquent lorsque vous configurez un robot d'exploration pour qu'il utilise les notifications d'événements Amazon S3 afin de détecter des modifications.

  • Comportement important avec les partitions supprimées

    Lorsque vous utilisez les robots d'exploration d'événements Amazon S3 avec les tables du catalogue de données :

    • Si vous supprimez une partition à l'aide de l'appel d'DeletePartitionAPI, vous devez également supprimer tous les objets S3 situés sous cette partition et sélectionner Tous les événements de suppression d'objets lorsque vous configurez vos notifications d'événements S3. Si les événements de suppression ne sont pas configurés, le robot d'exploration recrée la partition supprimée lors de sa prochaine exécution.

  • Seule une cible unique est prise en charge par le Crawler, que ce soit pour les cibles Amazon S3 ou du Catalogue de données.

  • Un SQS sur un VPC privé n'est pas pris en charge.

  • L'échantillonnage Amazon S3 n'est pas pris en charge.

  • La cible du crawler doit être un dossier pour une cible Amazon S3, ou une ou plusieurs AWS Glue Tables de catalogue de données pour une cible de catalogue de données.

  • Le caractère générique du chemin « tout » n'est pas pris en charge : s3://%

  • Pour une cible de Catalogue de données, toutes les tables du catalogue doivent pointer vers le même compartiment Amazon S3 pour le mode événement Amazon S3.

  • Pour une cible de Catalogue de données, une table de catalogue ne doit pas pointer vers un emplacement Amazon S3 au format Delta Lake (contenant des dossiers _symlink ou vérifiant le InputFormat de la table du catalogue).

Configuration de votre compte pour les notifications d'événements Amazon S3

Réalisez les tâches de configuration suivantes. Notez que les valeurs entre parenthèses font référence aux paramètres configurables du script.

  1. Vous devez configurer les notifications d'événements pour votre compartiment Amazon S3.

    Pour plus d'informations, consultez les notifications d'événements Amazon S3.

  2. Pour utiliser le robot basé sur les événements Amazon S3, vous devez activer la notification des événements sur le compartiment Amazon S3 avec des événements filtrés à partir du préfixe identique à la cible S3 et les stocker dans SQS. Vous pouvez configurer SQS et les notifications d'événements via la console en suivant les étapes décrites dans Procédure pas à pas : Configuration d'un compartiment pour les notifications.

  3. Ajoutez la politique SQS suivante au rôle utilisé par le robot d'exploration.

    { "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" } ] }