Comment puis-je optimiser les tâches de streaming AWS Glue ?

Lecture de 3 minute(s)
0

Je souhaite optimiser ma tâche de streaming AWS Glue.

Résolution

Pour optimiser votre tâche de streaming AWS Glue, respectez les bonnes pratiques suivantes :

  • Utilisez Amazon CloudWatch pour surveiller les métriques de tâche de streaming AWS Glue. Vérifiez que la tâche dispose d’un processeur, d’une mémoire et d’exécuteurs suffisants pour gérer le débit de données entrant.
  • Assurez-vous que l'intervalle entre les lots est supérieur au temps de traitement par lots. Pour obtenir des instructions sur la procédure de réduction du temps de traitement par lots, consultez la page Réduction des temps de traitement par lots sur le site Web d'Apache Spark.
  • Utilisez le catalogue de données AWS Glue pour stocker et gérer votre schéma de données.
  • Utilisez un format de sérialisation de données efficace, tel qu'Apache Parquet. Pour plus d'informations sur Apache Parquet, consultez la page Fichiers Parquet sur le site Web d'Apache Spark.
  • Activez le contrôle sélectif. Pour plus d'informations, consultez la page Contrôle sélectif sur le site Web d'Apache Spark.
  • Utilisez un format de table ouvert, tel qu'Apache Iceberg. Si la tâche de streaming n'utilise pas de tables de lac de données, migrez les tables vers Iceberg. Veillez à affiner les validations, à faire expirer les anciens instantanés et à utiliser le compactage pour nettoyer les fichiers de métadonnées. Pour plus d'informations sur la procédure de gestion des tables Iceberg, consultez la page Maintenance recommandée sur le site Web d'Apache Iceberg.
  • Activez Auto Scaling.
    Remarque : Auto Scaling est disponible uniquement pour AWS Glue version 3.0 ou ultérieure.
  • Respectez les bonnes pratiques lorsque vous utilisez ou créez des tâches d'extraction, de transformation et de chargement (ETL).

Régler Spark Streaming

Utilisez les configurations suivantes pour régler Spark Streaming pour le streaming :

  • Pour activer la contre-pression afin de contrôler le taux de réception de la tâche de streaming et de compenser les retards de planification et les temps de traitement, utilisez spark.streaming.backpressure.enabled.
  • Pour augmenter la vitesse maximale à laquelle les récepteurs peuvent recevoir des données, utilisez spark.streaming.receiver.maxRate. Définissez cette valeur en enregistrements par seconde.
  • Pour activer les journaux de transactions (WAL) pour les récepteurs, utilisez spark.streaming.receiver.writeAheadLog.enable. Vous pouvez utiliser des WAL pour récupérer des données après des échecs de pilote.
  • Pour définir une fenêtre de taille qui crée un petit nombre de fichiers, utilisez windowSize. Pour plus d'informations, consultez la section Échantillonnage du flux d'entrée pour un développement interactif.
  • Pour régler les partitions aléatoires afin de mélanger efficacement les données pour des transformations étendues, utilisez spark.sql.shuffle.partition.

Pour plus d'informations, consultez la page Optimisation des performances sur le site Web d'Apache Spark.

Informations connexes

Comment puis-je résoudre les problèmes liés aux tâches de streaming AWS Glue ?

Connexions Amazon Kinesis

Connexions Kafka

Développement à l'aide d'une image Docker

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 mois