Utiliser HDInsight Spark et Kafka

Effectué

En tant qu’ingénieur de données, vous devez déterminer le type de cluster HDInsight le plus approprié à créer pour générer votre solution. Lorsqu’ils sont utilisés ensemble, les clusters Spark et Kafka fournissent un excellent moyen d’ingérer et de traiter des flux de données en temps réel ou quasiment en temps réel.

Utiliser Kafka pour la réception de données en temps réel

Apache Kafka peut être utilisé comme système de messagerie, système d’abonnement de publication ou comme plateforme de traitement de streaming. Il stocke des données dans un journal qui peut être lu en temps réel, après traitement et peut être lu par plusieurs consommateurs en même temps.

Utiliser Spark Structured streaming pour traiter les événements en temps réel

Apache Spark est un moteur de traitement de données distribué Open source qui peut être utilisé dans de nombreux cas pour traiter, interroger, analyser et transformer rapidement des données à grande échelle. Spark est couramment utilisé pour effectuer des tâches ETL et SQL sur Big Data, le traitement des données de diffusion en continu et l’exécution d’apprentissage automatique.

Spark Structured Streaming offre des fonctionnalités indisponibles sur d’autres plateformes, telles que les garanties de tolérance de pannes, la possibilité de joindre des données par lots et de diffusion en continu, la possibilité de gérer les données arrivant en retard, et bien plus encore plus loin dans ce module. En outre, avec Azure HDInsight, vous pouvez créer un réseau virtuel qui héberge à la fois votre cluster Spark et Kafka. Avec les deux clusters dans un réseau virtuel, le cluster Spark peut accéder à des partitions de données individuelles au sein du cluster Kafka, au lieu de communiquer entre des clusters ou des points de terminaison. En fournissant un accès à des partitions de données individuelles, vous augmentez le parallélisme que vous avez dans la tâche de traitement en temps réel, ce qui vous offre un meilleur débit.

Scénarios d’utilisation de Kafka avec Spark

Il existe de nombreux scénarios d’analyse en temps réel qui pourraient tirer parti de la diffusion en temps réel qu’Apache Kafka et Spark activent. Tous ces scénarios ont un composant d’ingestion de données en continu, qui est le composant Kafka, et un processus analytique s’exécutant sur les données, qui est le composant Spark.

Scénarios d’utilisation de Kafka avec Spark

  • détection des fraudes en temps réel pour ingérer les données de transaction financière et les comparer à des modèles historiques de comportements frauduleux.
  • La gestion des flottes et les voitures connectées dans lesquelles vous transformez les données de l’appareil IoT, et réagissez lorsque certaines données de capteur, telles que le kilométrage, la vitesse, l’emplacement ou les données de température, atteignent un seuil.
  • Analyse du flux de clics sur les solutions de commerce électronique, afin d'analyser comment le placement des produits sur les pages peut influencer les achats impulsifs et les clics.
  • La surveillance en temps réel des patients pour surveiller les informations relatives à la sollicitation du sang et au rythme cardiaque et notifier les médecins lorsqu’un patient est dans un état critique.
  • Des solutions Smart Grid qui surveillent l’utilisation électrique et répondent à l’évolution des exigences.
  • Le comportement des clients dans les magasins, pour savoir quels achats sont effectués à certains moments de la journée, afin de programmer le réapprovisionnement et de modifier le personnel aux caisses.
  • L’infrastructure informatique et la surveillance réseau pour surveiller la disponibilité et la bande passante du serveur et rerouter le trafic en cas de besoin.
  • gestion des stocks et des demandes en temps réel pour surveiller les niveaux de stock faible et demander un nouvel ordre ou un nouveau stockage de ces éléments.

Migration simple du traitement par lots vers la diffusion en continu

Dans de nombreux cas, ces scénarios démarrent localement, ou avec le traitement par lots des données, mais à mesure que les solutions se développent et doivent évoluer, le traitement par lots passe à la diffusion en continu, et les applications locales se déplacent vers le Cloud. Comme indiqué ci-dessus, Spark Structured Streaming est unique de par sa capacité à gérer à la fois les tâches en lots et de diffusion en continu, ce qui facilite la transition d’un traitement par lots en tâches en temps réel, car vous pouvez passer de l’un à l’autre, ou les utiliser en même temps, en utilisant les mêmes applications et infrastructures.