Tutoriel : Processus Apache Kafka pour les événements Event Hubs à l’aide de Stream AnalyticsTutorial: Process Apache Kafka for Event Hubs events using Stream analytics

Cet article montre comment diffuser en streaming des données dans Event Hubs et les traiter avec Azure Stream Analytics.This article shows how to stream data into Event Hubs and process it with Azure Stream Analytics. Il vous guide dans les étapes suivantes :It walks you through the following steps:

  1. Créez un espace de noms Event Hubs.Create an Event Hubs namespace.
  2. Créer un client Kafka qui envoie des messages au hub d’événements.Create a Kafka client that sends messages to the event hub.
  3. Créer un travail Stream Analytics qui copie les données du hub d’événements dans un stockage blob Azure.Create a Stream Analytics job that copies data from the event hub into an Azure blob storage.

Vous n’avez pas besoin de changer vos clients de protocole ou d’exécuter vos propres clusters quand vous utilisez le point de terminaison Kafka exposé par un hub d’événements.You do not need to change your protocol clients or run your own clusters when you use the Kafka endpoint exposed by an event hub. Azure Event Hubs prend en charge Apache Kafka version 1.0.Azure Event Hubs supports Apache Kafka version 1.0. et versions ultérieures.and above.

PrérequisPrerequisites

Pour suivre ce démarrage rapide, vérifiez que vous avez :To complete this quickstart, make sure you have the following prerequisites:

Créer un espace de noms Event HubsCreate an Event Hubs namespace

Quand vous créez un espace de noms Event Hubs de niveau Standard, le point de terminaison Kafka pour l’espace de noms est automatiquement activé.When you create a standard tier Event Hubs namespace, the Kafka endpoint for the namespace is automatically enabled. Vous pouvez alors transmettre les événements de vos applications qui utilisent le protocole Kafka vers l’espace de noms Event Hubs de niveau Standard.You can stream events from your applications that use the Kafka protocol into standard tier Event Hubs. Suivez les instructions pas à pas de l’article Créer un hub d’événements avec le portail Azure pour créer un espace de noms Event Hubs de niveau Standard.Follow step-by-step instructions in the Create an event hub using Azure portal to create a standard tier Event Hubs namespace.

Notes

Event Hubs pour Kafka est disponible uniquement avec le niveau Standard et les niveaux dédiés.Event Hubs for Kafka is available only on standard and dedicated tiers. Le niveau De base ne prend pas en charge Kafka sur Event Hubs.The basic tier doesn't support Kafka on Event Hubs.

Envoyer des messages avec Kafka dans Event HubsSend messages with Kafka in Event Hubs

  1. Clonez le dépôt Azure Event Hubs pour Kafka sur votre machine.Clone the Azure Event Hubs for Kafka repository to your machine.

  2. Accédez au dossier azure-event-hubs-for-kafka/quickstart/java/producer.Navigate to the folder: azure-event-hubs-for-kafka/quickstart/java/producer.

  3. Mettez à jour les détails de configuration du producteur dans src/main/resources/producer.config.Update the configuration details for the producer in src/main/resources/producer.config. Spécifiez le nom et la chaîne de connexion de l’espace de noms du hub d’événements.Specify the name and connection string for the event hub namespace.

    bootstrap.servers={EVENT HUB NAMESPACE}.servicebus.windows.net:9093
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{CONNECTION STRING for EVENT HUB NAMESPACE}";
    
  4. Accédez à azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/, puis ouvrez le fichier TestDataReporter.java dans un éditeur de votre choix.Navigate to azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/, and open TestDataReporter.java file in an editor of your choice.

  5. Commentez la ligne de code suivante :Comment out the following line of code:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. Ajoutez la ligne de code suivante à la place du code commenté :Add the following line of code in place of the commented code:

                final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "{ \"eventData\": \"Test Data " + i + "\" }");            
    

    Ce code envoie les données d’événement au format JSON.This code sends the event data in JSON format. Quand vous configurez une entrée pour un travail Stream Analytics, vous spécifiez un format JSON pour les données d’entrée.When you configure input for a Stream Analytics job, you specify JSON as the format for the input data.

  7. Exécutez le producteur et diffusez en continu dans Event Hubs.Run the producer and stream into Event Hubs. Sur une machine Windows, quand vous utilisez une invite de commandes Node.js, basculez sur le dossier azure-event-hubs-for-kafka/quickstart/java/producer avant d’exécuter ces commandes.On a Windows machine, when using a Node.js command prompt, switch to the azure-event-hubs-for-kafka/quickstart/java/producer folder before running these commands.

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    

Vérifier que cet hub d’événements reçoit les donnéesVerify that event hub receives the data

  1. Sélectionnez Event Hubs sous ENTITÉS.Select Event Hubs under ENTITIES. Vérifiez que vous voyez un hub d’événements nommé test.Confirm that you see an event hub named test.

    Hub d’événements - test

  2. Vérifiez que des messages entrent dans le hub d’événements.Confirm that you see messages coming in to the event hub.

    Hub d’événements - messages

Traiter les données d’événement à l’aide d’un travail Stream AnalyticsProcess event data using a Stream Analytics job

Dans cette section, vous créez un travail Azure Stream Analytics.In this section, you create an Azure Stream Analytics job. Le client Kafka envoie des événements au hub d’événements.The Kafka client sends events to the event hub. Vous créez un travail Stream Analytics qui accepte des données d’événement en entrée et les envoie dans un stockage blob Azure.You create a Stream Analytics job that takes event data as input and outputs it to an Azure blob storage. Si vous n’avez pas de compte de stockage Azure, créez-en un.If you don't have an Azure Storage account, create one.

La requête dans le travail Stream Analytics parcourt les données sans effectuer d’analyse.The query in the Stream Analytics job passes through the data without performing any analytics. Vous pouvez créer une requête qui transforme les données d’entrée en données de sortie dans un format différent ou avec des insights en plus.You can create a query that transforms the input data to produce output data in a different format or with gained insights.

Création d’un travail Stream AnalyticsCreate a Stream Analytics job

  1. Sélectionnez + Créer une ressource dans le portail Azure.Select + Create a resource in the Azure portal.
  2. Sélectionnez Analytics dans le menu Place de marché Azure, puis sélectionnez Travail Stream Analytics.Select Analytics in the Azure Marketplace menu, and select Stream Analytics job.
  3. Dans la page Nouveau Stream Analytics, effectuez les actions suivantes :On the New Stream Analytics page, do the following actions:
    1. Entrez un nom pour le travail.Enter a name for the job.

    2. Sélectionnez votre abonnement.Select your subscription.

    3. Sélectionnez Créer pour le groupe de ressources et entrez le nom.Select Create new for the resource group and enter the name. Vous pouvez aussi utiliser un groupe de ressources existant.You can also use an existing resource group.

    4. Sélectionnez un emplacement pour le travail.Select a location for the job.

    5. Sélectionnez Créer pour créer le travail.Select Create to create the job.

      Nouveau travail Stream Analytics

Configurer les entrées du travailConfigure job input

  1. Dans le message de notification, sélectionnez Atteindre la ressource pour voir la page Travail Stream Analytics.In the notification message, select Go to resource to see the Stream Analytics job page.

  2. Sélectionnez Entrées dans la section TOPOLOGIE DU TRAVAIL dans le menu de gauche.Select Inputs in the JOB TOPOLOGY section on the left menu.

  3. Sélectionnez Ajouter une entrée de flux, puis sélectionnez Hub d’événements.Select Add stream input, and then select Event Hub.

    Ajouter un hub d’événements comme entrée

  4. Dans la page de configuration Entrée de hub d’événements, effectuez les actions suivantes :On the Event Hub input configuration page, do the following actions:

    1. Spécifiez un alias pour l’entrée.Specify an alias for the input.

    2. Sélectionnez votre abonnement Azure.Select your Azure subscription.

    3. Sélectionnez l’espace de noms du hub d’événements créé précédemment.Select the event hub namespace your created earlier.

    4. Sélectionnez test pour le hub d’événements.Select test for the event hub.

    5. Sélectionnez Enregistrer.Select Save.

      Configuration de l’entrée de hub d’événements

Configurer la sortie du travailConfigure job output

  1. Sélectionnez Sorties dans la section TOPOLOGIE DU TRAVAIL du menu.Select Outputs in the JOB TOPOLOGY section on the menu.
  2. Sélectionnez + Ajouter dans la barre d’outils, puis Stockage BlobSelect + Add on the toolbar, and select Blob storage
  3. Dans la page Paramètres de sortie du stockage Blob, effectuez les actions suivantes :On the Blob storage output settings page, do the following actions:
    1. Spécifiez un alias pour la sortie.Specify an alias for the output.

    2. Sélectionnez votre abonnementAzure.Select your Azure subscription.

    3. Sélectionnez votre compte de stockage Azure.Select your Azure Storage account.

    4. Entrez un nom pour le conteneur qui stocke les données de sortie de la requête Stream Analytics.Enter a name for the container that stores the output data from the Stream Analytics query.

    5. Sélectionnez Enregistrer.Select Save.

      Configuration de la sortie de stockage Blob

Définir une requêteDefine a query

Lorsque vous disposez d’un travail Stream Analytics configuré pour lire un flux de données entrantes, l’étape suivante consiste à créer une transformation qui analyse les données en temps réel.After you have a Stream Analytics job setup to read an incoming data stream, the next step is to create a transformation that analyzes data in real time. Vous définissez la requête de transformation à l’aide du Langage de requête Stream Analytics.You define the transformation query by using Stream Analytics Query Language. Dans cette procédure pas à pas, vous définissez une requête qui parcourt les données sans aucune transformation.In this walkthrough, you define a query that passes through the data without performing any transformation.

  1. Sélectionnez Requête.Select Query.

  2. Dans la fenêtre de requête, remplacez [YourOutputAlias] par l’alias de sortie que vous avez créé précédemment.In the query window, replace [YourOutputAlias] with the output alias you created earlier.

  3. Remplacez [YourInputAlias] par l’alias d’entrée que vous avez créé précédemment.Replace [YourInputAlias] with the input alias you created earlier.

  4. Sélectionnez Enregistrer dans la barre d’outils.Select Save on the toolbar.

    Capture d’écran montrant la fenêtre de requête avec des valeurs pour les variables d’entrée et de sortie.

Exécuter la tâche Stream AnalyticsRun the Stream Analytics job

  1. Sélectionnez Vue d’ensemble dans le menu de gauche.Select Overview on the left menu.

  2. Sélectionnez Démarrer.Select Start.

    Menu Démarrer

  3. Dans la page Démarrer le travail, sélectionnez Démarrer.On the Start job page, select Start.

    Page Démarrer le travail

  4. Attendez que l’état du travail passe de Démarrage à En cours d’exécution.Wait until the status of the job changes from Starting to running.

    État du travail - en cours d'exécution

Test du scénarioTest the scenario

  1. Réexécutez le producteur Kafka pour envoyer des événements au hub d’événements.Run the Kafka producer again to send events to the event hub.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Vérifiez que vous voyez les données de sortie générées dans le stockage blob Azure.Confirm that you see output data is generated in the Azure blob storage. Vous voyez un fichier JSON dans le conteneur avec 100 lignes qui ressemblent aux exemples de ligne suivants :You see a JSON file in the container with 100 rows that look like the following sample rows:

    {"eventData":"Test Data 0","EventProcessedUtcTime":"2018-08-30T03:27:23.1592910Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    {"eventData":"Test Data 1","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    {"eventData":"Test Data 2","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    

    Dans ce scénario, le travail Azure Stream Analytics a reçu des données d’entrée du hub d’événements et les a stocké dans le stockage blob Azure.The Azure Stream Analytics job received input data from the event hub and stored it in the Azure blob storage in this scenario.

Étapes suivantesNext steps

Dans cet article, vous avez appris à diffuser en streaming dans Event Hubs sans changer vos clients de protocole ni exécuter vos propres clusters.In this article, you learned how to stream into Event Hubs without changing your protocol clients or running your own clusters. Pour en savoir plus sur Event Hubs pour Apache Kafka, consultez Guide du développeur Apache Kafka pour Azure Event Hubs.To learn more about Event Hubs for Apache Kafka, see Apache Kafka developer guide for Azure Event Hubs.