Självstudie: Bearbeta Apache Kafka för Event Hubs-händelser med Stream Analytics

Den här artikeln visar hur du strömmar data till Event Hubs och bearbetar dem med Azure Stream Analytics. Den vägleder dig genom följande steg:

  1. Skapa ett Event Hubs-namnområde.
  2. Skapa en Kafka-klient som skickar meddelanden till händelsehubben.
  3. Skapa ett Stream Analytics-jobb som kopierar data från händelsehubben till en Azure Blob Storage.

Du behöver inte ändra dina protokollklienter eller köra dina egna kluster när du använder Kafka-slutpunkten som exponeras av en händelsehubb. Azure Event Hubs stöder Apache Kafka version 1.0 och senare.

Förutsättningar

För att kunna slutföra den här snabbstarten behöver du följande:

Skapa ett Event Hubs-namnområde

När du skapar ett Event Hubs-namnområde aktiveras Kafka-slutpunkten för namnområdet automatiskt. Du kan strömma händelser från dina program som använder Kafka-protokollet till händelsehubbar. Följ stegvisa instruktioner i Skapa en händelsehubb med Azure Portal för att skapa ett Event Hubs-namnområde. Om du använder ett dedikerat kluster läser du Skapa ett namnområde och en händelsehubb i ett dedikerat kluster.

Anteckning

Event Hubs för Kafka stöds inte på basic-nivån .

Skicka meddelanden med Kafka i Event Hubs

  1. Klona Azure Event Hubs för Kafka-lagringsplatsen till datorn.

  2. Navigera till mappen: azure-event-hubs-for-kafka/quickstart/java/producer.

  3. Uppdatera konfigurationsinformationen för producenten i src/main/resources/producer.config. Ange namn och anslutningssträng för händelsehubbens namnområde.

    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. Gå till azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/och öppna filen TestDataReporter.java i valfri redigerare.

  5. Kommentera ut följande kodrad:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. Lägg till följande kodrad i stället för den kommenterade koden:

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

    Den här koden skickar händelsedata i JSON-format . När du konfigurerar indata för ett Stream Analytics-jobb anger du JSON som format för indata.

  7. Kör producenten och strömma till Event Hubs. När du använder en Node.js kommandotolk på en Windows-dator växlar du till azure-event-hubs-for-kafka/quickstart/java/producer mappen innan du kör dessa kommandon.

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

Kontrollera att händelsehubben tar emot data

  1. Välj Event Hubs under ENTiteter. Bekräfta att du ser en händelsehubb med namnet test.

    Händelsehubb – test

  2. Bekräfta att du ser meddelanden som kommer in till händelsehubben.

    Händelsehubb – meddelanden

Bearbeta händelsedata med ett Stream Analytics-jobb

I det här avsnittet skapar du ett Azure Stream Analytics-jobb. Kafka-klienten skickar händelser till händelsehubben. Du skapar ett Stream Analytics-jobb som tar händelsedata som indata och matar ut dem till en Azure Blob Storage. Om du inte har något Azure Storage-konto skapar du ett.

Frågan i Stream Analytics-jobbet skickar data utan att utföra någon analys. Du kan skapa en fråga som transformerar indata för att skapa utdata i ett annat format eller med insikter.

Skapa ett Stream Analytics-jobb

  1. Välj + Skapa en resurs i Azure Portal.
  2. Välj AnalysAzure Marketplace-menyn och välj Stream Analytics-jobb.
  3. Gör följande på sidan Ny Stream Analytics :
    1. Ange ett namn för jobbet.

    2. Välj din prenumeration.

    3. Välj Skapa ny för resursgruppen och ange namnet. Du kan också använda en befintlig resursgrupp.

    4. Välj en plats för jobbet.

    5. Välj Skapa för att skapa jobbet.

      Nytt Stream Analytics-jobb

Konfigurera jobbindata

  1. I aviseringsmeddelandet väljer du Gå till resurs för att se Stream Analytics-jobbsidan .

  2. Välj Indata i avsnittet JOBBTOPOLOGI på den vänstra menyn.

  3. Välj Lägg till strömindata och välj sedan Händelsehubb.

    Lägga till händelsehubb som indata

  4. Gör följande på konfigurationssidan för Event Hub-indata :

    1. Ange ett alias för indata.

    2. Välj din Azure-prenumeration.

    3. Välj händelsehubbens namnområde som du skapade tidigare.

    4. Välj test för händelsehubben.

    5. Välj Spara.

      Konfiguration av händelsehubbindata

Konfigurera jobbutdata

  1. Välj Utdata i avsnittet JOBBTOPOLOGI på menyn.
  2. Välj + Lägg till i verktygsfältet och välj Blob Storage
  3. Gör följande på sidan Inställningar för Blob Storage-utdata:
    1. Ange ett alias för utdata.

    2. Välj din Azure-prenumeration.

    3. Välj ditt Azure Storage-konto.

    4. Ange ett namn för containern som lagrar utdata från Stream Analytics-frågan.

    5. Välj Spara.

      Konfiguration av Blob Storage-utdata

Definiera en fråga

När du har en Stream Analytics-jobbkonfiguration för att läsa en inkommande dataström är nästa steg att skapa en omvandling som analyserar data i realtid. Du definierar transformationsfrågan med Stream Analytics-frågespråket. I den här genomgången definierar du en fråga som skickar data utan att utföra någon transformering.

  1. Välj Fråga.

  2. I frågefönstret ersätter du [YourOutputAlias] med det utdataalias som du skapade tidigare.

  3. Ersätt [YourInputAlias] med det indataalias som du skapade tidigare.

  4. Välj Spara i verktygsfältet.

    Skärmbild som visar frågefönstret med värden för indata- och utdatavariabler.

Köra Stream Analytics-jobbet

  1. Välj Översikt på den vänstra menyn.

  2. Välj Starta.

    Start-menyn

  3. På sidan Starta jobb väljer du Start.

    Sidan Starta jobb

  4. Vänta tills jobbets status ändras från Start till körning.

    Jobbstatus – körs

Testa scenariot

  1. Kör Kafka-producenten igen för att skicka händelser till händelsehubben.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Kontrollera att utdata genereras i Azure Blob Storage. Du ser en JSON-fil i containern med 100 rader som ser ut som följande exempelrader:

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

    Azure Stream Analytics-jobbet tog emot indata från händelsehubben och lagrade dem i Azure Blob Storage i det här scenariot.

Nästa steg

I den här artikeln har du lärt dig att strömma till Event Hubs utan att ändra dina protokollklienter eller köra dina egna kluster. Mer information om Event Hubs för Apache Kafka finns i Utvecklarguide för Apache Kafka för Azure Event Hubs.