Delen via


Zelfstudie: Apache Kafka verwerken voor Event Hubs-gebeurtenissen met behulp van Stream Analytics

In dit artikel wordt beschreven hoe u gegevens naar Event Hubs streamt en verwerkt met Azure Stream Analytics. U wordt begeleid bij de volgende stappen:

  1. Maak een Event Hubs-naamruimte.
  2. Maak een Kafka-client waarmee berichten naar de Event Hub worden verzonden.
  3. Maak een Stream Analytics-taak waarmee gegevens van de Event Hub worden gekopieerd naar een Azure Blob-opslag.

U hoeft uw protocolclients niet te wijzigen of uw eigen clusters uit te voeren wanneer u het Kafka-eindpunt gebruikt dat wordt weergegeven door een Event Hub. Azure Event Hubs ondersteunt Apache Kafka versie 1.0. en hoger.

Vereiste voorwaarden

Zorg ervoor dat u aan de volgende vereisten voldoet om deze snelstart uit te voeren:

Een Event Hubs-naamruimte maken

Wanneer u een Event Hubs-naamruimte maakt, wordt het Kafka-eindpunt voor de naamruimte automatisch ingeschakeld. U kunt gebeurtenissen streamen vanuit uw toepassingen die gebruikmaken van het Kafka-protocol naar Event Hubs. Volg stapsgewijze instructies in Een evenementhub maken met behulp van de Azure Portal om een Event Hubs-naamruimte te maken. Als u een dedicated cluster gebruikt, raadpleeg Een naamruimte en event hub maken in een dedicated cluster.

Opmerking

Event Hubs voor Kafka wordt niet ondersteund in de basic-laag .

Berichten verzenden met Kafka in Event Hubs

  1. Kloon de Azure Event Hubs voor Kafka-opslagplaats naar uw computer.

  2. Navigeer naar de map: azure-event-hubs-for-kafka/quickstart/java/producer.

  3. Werk de configuratiedetails voor de producent bij in src/main/resources/producer.config. Geef de naam en verbindingsreeks op voor de Event Hub-naamruimte.

    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. Navigeer naar azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/en open TestDataReporter.java bestand in een editor van uw keuze.

  5. Markeer de volgende regel code als commentaar:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. Voeg de volgende regel code toe in plaats van de commentaarcode:

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

    Met deze code worden de gebeurtenisgegevens in JSON-indeling verzonden. Wanneer u invoer voor een Stream Analytics-taak configureert, geeft u JSON op als de indeling voor de invoergegevens.

  7. Voer de producent uit en stream naar Event Hubs. Wanneer u op een Windows-computer een Node.js opdrachtprompt gebruikt, schakelt u over naar de azure-event-hubs-for-kafka/quickstart/java/producer map voordat u deze opdrachten uitvoert.

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

Controleer of event hub de gegevens ontvangt

  1. Selecteer Event Hubs onder ENTITEITEN. Controleer of u een event hub met de naam test ziet.

    Event Hub - testen

  2. Controleer of u berichten ziet die binnenkomen in de Event Hub.

    Event Hub - berichten

Gebeurtenisgegevens verwerken met behulp van een Stream Analytics-taak

In deze sectie maakt u een Azure Stream Analytics-taak. De Kafka-client verzendt gebeurtenissen naar de Event Hub. U maakt een Stream Analytics-taak die gebeurtenisgegevens als invoer gebruikt en uitvoert naar een Azure Blob-opslag. Als u geen Azure Storage-account hebt, maakt u er een.

De query in de Stream Analytics-taak passeert de gegevens zonder analyses uit te voeren. U kunt een query maken waarmee de invoergegevens worden getransformeerd om uitvoergegevens in een andere indeling te produceren of met verkregen inzichten.

Een Stream Analytics-taak maken

  1. Selecteer + Een resource maken in Azure Portal.
  2. Selecteer Analytics in het menu Azure Marketplace en selecteer Stream Analytics-taak.
  3. Voer op de pagina Nieuwe Stream Analytics de volgende acties uit:
    1. Voer een naam in voor de taak.

    2. Selecteer uw abonnement.

    3. Selecteer Nieuwe aanmaken voor de Resourcegroep en voer de naam in. U kunt ook een bestaande resourcegroep gebruiken.

    4. Selecteer een locatie voor de taak.

    5. Selecteer Maken om de taak te maken.

      Nieuwe Stream Analytics-taak

Taakinvoer configureren

  1. Selecteer in het meldingsbericht Naar de resource gaan om de stream analytics-taakpagina weer te geven.

  2. Selecteer Invoer in de sectie TAAKTOPOLOGIE in het menu links.

  3. Selecteer Stroominvoer toevoegen en selecteer vervolgens Event Hub.

    Event Hub toevoegen als invoer

  4. Voer de volgende acties uit op de configuratiepagina van de Event Hub-invoer :

    1. Geef een alias op voor de invoer.

    2. Selecteer uw Azure-abonnement.

    3. Selecteer de Event Hub-naamruimte die u eerder hebt gemaakt.

    4. Selecteer test voor de Event Hub.

    5. Selecteer Opslaan.

      Event Hub-invoerconfiguratie

Taakuitvoer configureren

  1. Selecteer Uitvoer in de sectie TAAKTOPOLOGIE in het menu.
  2. Selecteer + Toevoegen op de werkbalk en selecteer Blob Storage
  3. Voer op de pagina uitvoerinstellingen voor Blob Storage de volgende acties uit:
    1. Geef een alias op voor de uitvoer.

    2. Selecteer uw Azure-abonnement.

    3. Selecteer uw Azure Storage-account.

    4. Voer een naam in voor de container waarin de uitvoergegevens van de Stream Analytics-query worden opgeslagen.

    5. Selecteer Opslaan.

      Uitvoerconfiguratie van Blob Storage

Een query definiƫren

Nadat u een Stream Analytics-taak hebt ingesteld om een binnenkomende gegevensstroom te lezen, is de volgende stap het maken van een transformatie waarmee gegevens in realtime worden geanalyseerd. U definieert de transformatiequery met behulp van Stream Analytics Query Language. In dit scenario definieert u een query die de gegevens doorloopt zonder transformatie uit te voeren.

  1. Selecteer Query.

  2. Vervang in het queryvenster door [YourOutputAlias] de uitvoeralias die u eerder hebt gemaakt.

  3. Vervang door [YourInputAlias] de invoeralias die u eerder hebt gemaakt.

  4. Selecteer Opslaan op de werkbalk.

    Schermopname toont het queryvenster met waarden voor invoer- en uitvoervariabelen.

Voer de Stream Analytics-taak uit

  1. Selecteer Overzicht in het linkermenu.

  2. Kies Start.

    Het menu Start

  3. Selecteer Start op de pagina Starttaak.

    Start werkpagina

  4. Wacht totdat de status van de taak wordt gewijzigd van Starten tot actief.

    Taakstatus - wordt uitgevoerd

Het scenario testen

  1. Voer de Kafka-producent opnieuw uit om gebeurtenissen naar de Event Hub te verzenden.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Controleer of je ziet dat de uitvoergegevens worden gegenereerd in de Azure Blob Storage. U ziet een JSON-bestand in de container met 100 rijen die eruitzien als de volgende voorbeeldrijen:

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

    De Azure Stream Analytics-taak heeft invoergegevens ontvangen van de Event Hub en opgeslagen in de Azure Blob Storage in dit scenario.

Volgende stappen

In dit artikel hebt u geleerd u hoe u kunt streamen naar Event Hubs zonder uw protocolclients te wijzigen of uw eigen clusters uit te voeren. Zie de Ontwikkelaarshandleiding voor Apache Kafka voor Azure Event Hubs voor meer informatie over Event Hubs voor Apache Kafka.